abbrechen
Suchergebnisse werden angezeigt für 
Stattdessen suchen nach 
Meintest du: 
abbrechen
Suchergebnisse werden angezeigt für 
Stattdessen suchen nach 
Meintest du: 

Stimmen Sie für Ihre Archicad Wünsche!

Weitere Informationen
Projektdaten & BIM
BIM-basierte Verwaltung von Attributen, Zeitplänen, Vorlagen, Favoriten, Hotlinks, Projekten im Allgemeinen, Qualitätssicherung, usw.
GELÖST!

Eigenschaften-Berechnung: ISUNDEFINED und Eigenschaft "Baustoff" bei mehrschichtigen Bauteilen

Frank Beister
Advisor

Die ISUNDEFINED Funktion ist nicht vollständig, fehlerhaft oder ihr fehlt ein pendant oder es fehlt eine ISDEFINED Funktion:

 

IF ( ISUNDEFINED ( {Property:Allgemeine Parameter/Baustoff} ); "-"; {Property:Allgemeine Parameter/Baustoff} )

 

Funktioniert nur bei einschichtigen Bauteilen. Bei mehrschichtigen ist "Baustoff" anscheinend nicht definiert und erzeugt eine Fehlermeldung. (Obwohl sich AC offensichtlich auch bei mehrschichtigen Bauteilen einen einschichtigen Baustoff intern merkt.) Die Eigenschaft "Baustoff(Alle)" gibt es bei der Berechnung nicht. Die gleiche Formel-Konstruktion mit einer individuell definierten Eigenschaft funktioniert problemlos. 

 

Hat da jemand eine Lösung? Lukas vielleicht? 😏

bim author since 1994 | bim manager since 2018 | author of selfGDL.de | openGDL | skewed archicad user hall of fame | author of bim-all-doors.gsm
1 AKZEPTIERTE LÖSUNG

Akzeptierte Lösungen
Lösung

@Frank Beister  schrieb:

 

IF ( ISUNDEFINED ( {Property:OTTO WULFF Eigenschaften/Material ID} ); {Property:Allgemeine Parameter/Baustoff}; {Property:OTTO WULFF Eigenschaften/Material ID} )

 

Das erzeugt aber ein undefiniertes Attribut bei mehrschichtigen Bauteilen, weil mehrschichtige eben "Baustoff" nicht kennen.


Erzeuge doch eine Kopie von der gleichen Formel direkt dadrunter und schreibe statt Baustoff → "-"

IF ( ISUNDEFINED ( {Property:OTTO WULFF Eigenschaften/Material ID} ); "-"; {Property:OTTO WULFF Eigenschaften/Material ID} )

 

Xandros_0-1701186143243.png

 

Wenn er die erste Berechnung nicht durchführen kann, versucht er die zweite Berechnung. Ist ein Else If über Umwege

ArchiCAD 26 GER / Win10
Intel i9-9900K / 64GB RAM / nVidia GeForce RTX 2080 Ti

Lösung in ursprünglichem Beitrag anzeigen

6 ANTWORTEN 6
Xandros
Expert

Bin mir nicht ganz sicher, was du erreichen magst.

 

In beiden Beispielen sind je eine Einschicht-, Mehrschicht- und Profilwand ausgewählt.

 

Option 1: lehnt sich an deine Formel an. Du möchtest den Baustoff als Eigenschaft ausgeworfen haben, wenn es eine einschichtige Wand ist, ansonsten ein "-".

IFS ( {Property:Allgemeine Parameter/Struktur-Typ} = "Einfach"; {Property:Allgemeine Parameter/Baustoff} )
IFS ( {Property:Allgemeine Parameter/Struktur-Typ} <> "Einfach"; "-" )

Xandros_0-1701176269432.png

 

Option 2: Du möchtest je nach Strukturtyp entweder den Baustoffnamen, den mehrschichtigen Bauteilnamen oder den Profilnamen ausgeben.

Von dort aus könntest du umständlich einen Übersetzer für die verschiedenen Mehrschichtigen Bauteil- und Profil-Namen schreiben, damit im Ergebnis dann das steht, was du brauchst.

IFS ( {Property:Allgemeine Parameter/Struktur-Typ} = "Einfach"; {Property:Allgemeine Parameter/Baustoff} )
IFS ( {Property:Allgemeine Parameter/Struktur-Typ} = "Profil"; {Property:Allgemeine Parameter/Profil} )
IFS ( {Property:Allgemeine Parameter/Struktur-Typ} = "Mehrschicht"; {Property:Allgemeine Parameter/Mehrschichtige Bauteile} )

Xandros_1-1701176472662.png

 


@Frank Beister  schrieb:

Bei mehrschichtigen ist "Baustoff" anscheinend nicht definiert und erzeugt eine Fehlermeldung. (Obwohl sich AC offensichtlich auch bei mehrschichtigen Bauteilen einen einschichtigen Baustoff intern merkt.)


Wie du sagst, intern merkt er sich das - u.a. schön beim Suchen & Aktivieren zu beobachten.

Bei der Interaktiven Auswertung wirft er mir bei Baustoff allerdings auch "---" für mehrschichtige und Profilwände aus.

ArchiCAD 26 GER / Win10
Intel i9-9900K / 64GB RAM / nVidia GeForce RTX 2080 Ti

Was ist das Ziel?

*Pause* auf unbestimmte Zeit.
MacBook Pro M3 MAX
Frank Beister
Advisor

Ich möchte in einem eigenen IFC-Parameter unsere Material-ID stehen haben:

ow_material

 

(Lassen wir mal das Problem weg, dass ich bei mehrschichtigen Bauteilen nicht in jeder Schicht den richtigen Baustoff einzeln stehen haben kann.)

Dieses Attribut gibt es auch als Archichad-Eigenschaft, die der Planer ausfüllen soll. Tut er dies nicht, hätte ich im IFC gerne den Baustoff in ow_material stehen. Eine schlechte Information ist manchmal besser als gar keine. 

 

Da ich im IFC beim Mapping bei den Regeln aber keine Konditionen einstellen kann, (wieso eigentlich nicht), muss es vor dem Mapping bereits zusammengebastelt sein. Die Idee war eine weitere berechnete Eigenschaft anzulegen, die das per IF zusammenbaut:

 

IF ( ISUNDEFINED ( {Property:OTTO WULFF Eigenschaften/Material ID} ); {Property:Allgemeine Parameter/Baustoff}; {Property:OTTO WULFF Eigenschaften/Material ID} )

 

Das erzeugt aber ein undefiniertes Attribut bei mehrschichtigen Bauteilen, weil mehrschichtige eben "Baustoff" nicht kennen. Nun war die Idee zusätzlich zu prüfen, ob der Baustoff verfügbar ist und nur dann wird er ausgegeben. Jetzt gefällt AC aber bei der Formelprüfung generell nicht, dass im Ausgabefeld etwas steht, was nicht definiert ist. Auch wenn es per Kondition nicht ausgegebene wird. Und setzt dann lieber die Eigenschaft auf undefiniert.

 

 

bim author since 1994 | bim manager since 2018 | author of selfGDL.de | openGDL | skewed archicad user hall of fame | author of bim-all-doors.gsm
Lösung

@Frank Beister  schrieb:

 

IF ( ISUNDEFINED ( {Property:OTTO WULFF Eigenschaften/Material ID} ); {Property:Allgemeine Parameter/Baustoff}; {Property:OTTO WULFF Eigenschaften/Material ID} )

 

Das erzeugt aber ein undefiniertes Attribut bei mehrschichtigen Bauteilen, weil mehrschichtige eben "Baustoff" nicht kennen.


Erzeuge doch eine Kopie von der gleichen Formel direkt dadrunter und schreibe statt Baustoff → "-"

IF ( ISUNDEFINED ( {Property:OTTO WULFF Eigenschaften/Material ID} ); "-"; {Property:OTTO WULFF Eigenschaften/Material ID} )

 

Xandros_0-1701186143243.png

 

Wenn er die erste Berechnung nicht durchführen kann, versucht er die zweite Berechnung. Ist ein Else If über Umwege

ArchiCAD 26 GER / Win10
Intel i9-9900K / 64GB RAM / nVidia GeForce RTX 2080 Ti
Frank Beister
Advisor

Super, Danke, so funktioniert es. Ich hatte das mit 2 Regeln und verschiedenen Konstellationen auch probiert, aber offensichtlich  nicht die richtige durchgeprüft.

Es bleibt aber, dass ich mehrschichtige Bauteile, die nicht unser Attribut bekommen haben nicht mit einem (kumulierten) "Baustoff (alle)" versehen kann. Eine der vielen nickeligen Inkonsistenzen. 

Ich habe den dummy "-" rausgenommen, dann kommt es im IFC wenigstens korrekt als "undefiniert" gemäß unserer AIA an.

Danke!

bim author since 1994 | bim manager since 2018 | author of selfGDL.de | openGDL | skewed archicad user hall of fame | author of bim-all-doors.gsm

Es ist tatsächlich so, dass der Parameter „Baustoff, alle“ nur im IFC Übersetzer verfügbar ist und mit diesem nicht weiter operiert werden kann. 
man kann als normal Sterblicher also höchstens eine Auswertungs/Excel Krücke bauen. 
Oder man listet im Namen der Mahrschichtigen Bauteile einen Hinweis den man berechnen kann. 

Mac OSX - up to date

GER Archicad Full, Up to date

Keine Antwort gefunden?

Andere Beiträge
im Board ansehen

Zurück zum Board

Neueste Lösungen durchsuchen

Akzeptierte Lösungen zeigen

Eine neue Diskussion starten!

Neues Thema erstellen