vor einer Woche
Hallo zusammen,
Ich stehe vor folgendem Problem:
Ich habe hier eine recht umfangreiche Quartiersbebauung, in der die Brandschutz Eigenschaften für die einzelnen Bauteile angegeben werden müssen.
Mir liegt im Eigenschaftenmanager die Eigenschaft "Feuerwiderstandsklasse 4102-2" sowie die "Feuerwiderstandsklasse 13501-2" vor. Dabei bin ich mir nicht sicher, ob diese Eigenschaften von ArchiCAD vorangelegt sind oder aus unserer eigenen Vorlage kommen. Ich habe in der Eigenschaft "... 4102-2" ein Optionen-Set was F30, F60, usw. angibt. Die Eigenschaft "... 13501-2 ist eine nicht definierte Zeichenfolge.
Da ich nun als fauler Mensch eigentlich nicht erst die "...4102-2" auswählen und dann auch noch händisch die "...13501-2" ausfüllen möchte dachte ich mir das muss bestimmt mit einer Batterie an verschachtelten IF-Abfragen funktionieren.
Ich möchte also der Reihenfolge der DIN 13501-2 nach folgendes abfragen und dann als Zeichenfolge ausgeben:
1. tragende Funktion für "R" funktioniert
IF ( {Property:CategoryPropertyDefinitionGroup/Tragende Funktion} = "Tragende Elemente"; "R"; "" )
2. Raumabschluss (ist eine bestehende TRUE/FALSE Eigenschaft) für "E" funktioniert
IF ( {Property:Allgemeine Werte/Raumbegrenzung} = TRUE; "E"; "" )
3. Wärmedämmung für "I" Hier besteht das Problem
Ich würde eigentlich gerne abfragen, ob das mehrschichtige Bauteil oder Profil eine Dämmung enthält. Alle Dämmungen sind in der Baustoff-ID als Dämmstoff gekennzeichnet. Bisher habe ich keinen Weg gefunden da ran zu kommen. Weder an die Abfrage für die Baustoff-ID noch überhaupt irgendwie an die Baustoffe eines mehrschichtigen Bauteils.
Kann es sein, dass es tatsächlich nur für monolithische Bauteile geht den Baustoff abzufragen?
Meine Idee für ein Workaround wäre eine eigene Eigenschaft mit True/False, die dann halt auch wieder wie die anderen händisch eingestellt werden muss. Aber das ist wieder ein unnötiger klick mehr und natürlich auch fehleranfällig.
4. Feuerwiderstandsklasse 41022 für die Klassifizierungszeit funktioniert
IF ( {Property:Allgemeine Werte/Feuerwiderstandsklasse 4102-2} = "F 30"; "30"; IF ( {Property:Allgemeine Werte/Feuerwiderstandsklasse 4102-2} = "F 60"; "60"; IF ( {Property:Allgemeine Werte/Feuerwiderstandsklasse 4102-2} = "F 60 M"; "60"; IF ( {Property:Allgemeine Werte/Feuerwiderstandsklasse 4102-2} = "F 90"; "90"; IF ( {Property:Allgemeine Werte/Feuerwiderstandsklasse 4102-2} = "F 120"; "120"; IF ( {Property:Allgemeine Werte/Feuerwiderstandsklasse 4102-2} = "F 180"; "180"; "" ) ) ) ) ) )
5. Brandwand (ist eine bestehende TRUE/FALSE Eigenschaft) für "M" funktioniert
IF ( {Property:Allgemeine Werte/Brandwand} = TRUE; "M"; "" )
Zusammengeklöppelt sieht die Formel dann so aus und funktioniert:
CONCAT ( IF ( {Property:CategoryPropertyDefinitionGroup/Tragende Funktion} = "Tragende Elemente"; "R"; "" ); IF ( {Property:Allgemeine Werte/Raumbegrenzung} = TRUE; "E"; "" ); IF ( {Property:Allgemeine Werte/Feuerwiderstandsklasse 4102-2} = "F 30"; " 30"; IF ( {Property:Allgemeine Werte/Feuerwiderstandsklasse 4102-2} = "F 60"; " 60"; IF ( {Property:Allgemeine Werte/Feuerwiderstandsklasse 4102-2} = "F 60 M"; " 60"; IF ( {Property:Allgemeine Werte/Feuerwiderstandsklasse 4102-2} = "F 90"; " 90"; IF ( {Property:Allgemeine Werte/Feuerwiderstandsklasse 4102-2} = "F 120"; " 120"; IF ( {Property:Allgemeine Werte/Feuerwiderstandsklasse 4102-2} = "F 180"; " 180"; "" ) ) ) ) ) ); IF ( {Property:Allgemeine Werte/Brandwand} = TRUE; " M"; "" ) )
Habt ihr eine Idee, wie ich die 3. Abfrage Wärmedämmung für "I" elegant lösen kann?
Liebe Grüße,
Jasmin
vor einer Woche
Ich finde tatsächlich auch keine Baustoff Filterung in den berechneten Eigenschaften. Ein sehr unbefriedigender Lösungsansatz:
Einrichten:
- Eigene Eigenschaft "Dämmung" als bool (True/False) anlegen
- Ausschnitt des 3D-Modells als Perspektive mit allen zu errichtenden Bauteilen speichern
- Im 3D-Ausschnitt Suchen und Aktivieren (Strg+Shift+A) und nach Baustoff suchen (Dort geht es, z.B. Elementtyp "3D Typen" und Baustoff-ID enthält "Dämmung" - angenommen die Baustoffe sind so definiert)
- Kriterien-Set speichern
Anwenden:
- Kriterien Set in Perspektive anwenden und "Dämmung = True" definieren
- Kriterien Set umkehren (alle anderen Bauteile) und "Dämmung = False" definieren
Kontrolle:
- Grafische Überschreibung anlegen: Wenn "Dämmung = True", dann Farbig überschreiben, alles andere glasig machen.
Freitag - zuletzt bearbeitet Freitag
Ich finde in den berechneten Eigenschaften auch nichts, womit sich das lösen lässt.
Aber es gibt das Add-On "SomeStuff" auf Github. Wenn ich es richtig verstehe lässt sich hiermit einen Eigenschaft einrichten, die die Baustoffe ausl....
Es gab hier im Forum auch schon Beiträge (dieser und dieser) dazu, der erste sogar genau zu dem Thema mehrschichtige Bauteile.
Freitag
@Jasmin Schulz schrieb:
... Batterie an verschachtelten IF-Abfragen...
4. Feuerwiderstandsklasse 41022 für die Klassifizierungszeit funktioniert
IF ( {Property:Allgemeine Werte/Feuerwiderstandsklasse 4102-2} = "F 30"; "30"; IF ( {Property:Allgemeine Werte/Feuerwiderstandsklasse 4102-2} = "F 60"; "60"; IF ( {Property:Allgemeine Werte/Feuerwiderstandsklasse 4102-2} = "F 60 M"; "60"; IF ( {Property:Allgemeine Werte/Feuerwiderstandsklasse 4102-2} = "F 90"; "90"; IF ( {Property:Allgemeine Werte/Feuerwiderstandsklasse 4102-2} = "F 120"; "120"; IF ( {Property:Allgemeine Werte/Feuerwiderstandsklasse 4102-2} = "F 180"; "180"; "" ) ) ) ) ) )
... elegant...
Zum Thema Eleganz: Seit AC23 gibts es neben IF auch IFS.
Damit steigert man die Eleganz von:
IF (
{Property:Allgemeine Werte/Feuerwiderstandsklasse 4102-2} = "F 30"; "30";
IF (
{Property:Allgemeine Werte/Feuerwiderstandsklasse 4102-2} = "F 60"; "60";
IF (
{Property:Allgemeine Werte/Feuerwiderstandsklasse 4102-2} = "F 60 M"; "60";
IF (
{Property:Allgemeine Werte/Feuerwiderstandsklasse 4102-2} = "F 90"; "90";
IF (
{Property:Allgemeine Werte/Feuerwiderstandsklasse 4102-2} = "F 120"; "120";
IF (
{Property:Allgemeine Werte/Feuerwiderstandsklasse 4102-2} = "F 180"; "180";
""
)
)
)
)
)
)
zu ungeahnten Höhenflügen:
IFS (
{Property:Allgemeine Werte/Feuerwiderstandsklasse 4102-2} = "F 30"; "30";
{Property:Allgemeine Werte/Feuerwiderstandsklasse 4102-2} = "F 60"; "60";
{Property:Allgemeine Werte/Feuerwiderstandsklasse 4102-2} = "F 60 M"; "60";
{Property:Allgemeine Werte/Feuerwiderstandsklasse 4102-2} = "F 90"; "90";
{Property:Allgemeine Werte/Feuerwiderstandsklasse 4102-2} = "F 120"; "120";
{Property:Allgemeine Werte/Feuerwiderstandsklasse 4102-2} = "F 180"; "180";
TRUE; ""
)
Ob es sich lohnt, die Zahl direkt rauszukitzeln?
IFS (
STRTONUM ( MID ( {Property:Allgemeine Werte/Feuerwiderstandsklasse 4102-2}; 3; 3 ) ) > 0; STR ( MID ( {Property:Allgemeine Werte/Feuerwiderstandsklasse 4102-2}; 3; 3 ); 0 ) ;
TRUE; ""
)
Auf deutsch: Wenn der Wert der FW-Klasse ab der dritten Stelle eine Zahl größer Null enthält, gib' mir die als Zeichenfolge zurück.
Sorry für den Kurz-vor-Wochenende-Spielkram.
Bei uns im Verein:
- das Leerzeichen zwischen F und Zahl nimmt zuviel Platz weg
- für alle in unserer Praxis vorkommenden Werte gibt es zueinander passende Entsprechungen
- wir müssen verschiedenen Herren dienen
- demnach heißt die Eigenschaft nur noch 'Feuerwiderstandsklasse'
- demnach sehen die Werte im Optionen-Set so aus (mit Hinweisen zur Darstellung in der grafischen Überschreibung):
- über eine berechnete Eigenschaft pickt man sich den gewünschten Teil zur Ausgabe raus:
SPLIT ( {Property:Allgemeine Werte/Feuerwiderstandsklasse}; " - "; {Property:Berechnungen Hintergrund/Brandschutz-Etikett Index} )
- indem man den 'Brandschutz-Etikett Index' auf 1, 2 oder 3 setzt
Nochmal Sorry, an Deinem Dämmungsproblem geht auch das vollständig vorbei... 😇