am 2026-01-29 12:53 PM
Hallo Forum ich habe mal wieder eine Frage,
es geht mir um den Öffnungstyp / Art eines Fensters. In Auswertungslisten kann ich diesen zumindest über die Bibliothekselementparameter
abfischen. Diese bekommt man ja bekanntlich nicht in berechnete Eigenschaften. ABER eigentlich ins IFC-Modell.
Nun habe ich diesen Parameter im IFC-Mapping eingestellt. Das spannende ist jedoch, dass ein komplett anderer Wert exportiert wird anstelle des in der Auswertungslisten dargestelltem Ergebnis:
AC Liste:
Solibri:
Und zwar werden mir Zahlen von 1-14 Verteilt. Damit kann man natürlich nichts anfangen. Und nun darf man händisch in einer Eigenschaft schön für jedes Fenster auswählen was eigentlich schon im Fenster eingestellt ist. Der Datentyp ist auf Text gestellt.
Hat hier jemand nen besseren Workflow gefunden das ins IFC Modell zu bringen? Ich bin ganz Ohr!
Grüße
am 2026-01-29 01:35 PM
Ich kann mir gerade ohne GDL-Modifikation nicht vorstellen, wie du das umstellen könntest, da sich das aus dem Parameter-Befehl values{2} ergibt. Dieser legt intern zur Definition die Zahl ab und nur in dem Befehl besteht die Textinterpretation. Da man im IFC Eigenschaften-Mapping nicht berechnen kann, sehe ich auch dort keine Möglichkeit das nachzubilden.
"Schnelle und dreckige" Methode:
Ist natürlich nicht dauerhaft. Muss man bei jedem Export wiederholen, wenn es die Zielsoftware nicht beim Import übersetzen kann.
2026-01-29 02:51 PM - bearbeitet 2026-01-29 02:56 PM
Ich verstehe noch nicht ganz wie die Auswertungsliste dann auf den Text Zugreift. Ist doch der selbe Parameter oder? Oder wird das nur für die Liste umgerechnet? Das ist mir noch nicht ganz klar.
Verhält sich das bei anderen Bibliothekselementparametern auch so?
Schön wäre es natürlich so einen Parameter als Elementparameter zu haben. Öffnungstyp ist ja nun nichts ganz uninteressantes bei Fenstern.
Das Problem an solchen "mehrfach" angelegten Attributen ist eben sie durchgehend mitzuziehen. Die Mitarbeiter stellen dann gerne die Fenster in der Planung in den Objektattributen um und dann hat man 2 Unterschiedliche Angaben.
Kann man höchstens in einer Liste abgleichen was im Parameter ist und was dann in der Eigenschaft eingestellt wurde. Suboptimal.
Es für den Export jedes mal einzustellen wäre bei einem oder 2 Parametern ne Lösung aber das sind dann doch meist mehrere und den Zeitpunkt des Exports sollen die Mitarbeiter ja frei wählen dürfen. Das geht Erfahrungsgemäß nach hinten los.
Mein Ziel ist auch nur der Export der Auftraggeberseitig geforderten Eigenschaft ins IFC. Ich denke ich gehe vorerst mal den Weg über eine händische Eigenschaft und einer Liste zum Abgleich.
2026-01-29 04:16 PM - bearbeitet 2026-01-29 04:17 PM
Redundante Daten sind fast immer unsichere Daten, weil man nicht weiß, was gilt. Wir prüfen in unserer Modellprüfung solche zweideutigen Informationen (Oberflächenmaterila Betongrau, Baustoff Ziegel). So kannst du dein Modell und deine Kollegen beim Output prüfen. Anders wäre schöner.
Andere Lösung: Verwende Typen(fenster). Ist ohnehin besser als in der Auswertung alle möglichen Kombinationen zu testen. Aber auch das ist am ende eine Information an zwei Stellen.
Zu der Ursache:
Der Befehl siehe selfgdl lautet besispielsweise so:
VALUES{2} "elemente", 1, "Wasser", 2, "Erde", 3, "Feuer", 4, "Luft"
Im Skript muss ich in der Folge nur die Zahl prüfen. Ändere ich später die Bezeichnung oder lokalisiere ich das sogar, muss ich nicht an jeder Stelle, wo ich den Parameter elemente verwende alle möglichen Inhalte prüfen, sondern nur meinen VALUES{2}-Befehl anpassen.
if elemente = 2 then print "Hier ist der Boden"
statt
if elemente = "Erde" or elemente = "earth" then print "Hier ist der Boden"
Man könnte jetzt den Klartext des Gewählten auch noch in einem zusätzlichen Parameter ablegen, aber das bedeutet doppelte Parameteranzahl und führt die Schlankheit der Programmierung ad absurdum. Außerdem: Isso. Wie gesagt ist das nur in GDL und mit guten Kenntnissen zu ergänzen.
Die Auswertungsliste erzeugt sich innerhalb von Archicad und hat somit Zugriff auf die Parameterskripte und kann damit den Klartext im Objekt "abfragen".
2026-01-29 05:46 PM - bearbeitet 2026-01-29 05:51 PM
Ok danke für die Info. Gibt es dann eine Möglichkeit den Parameter mit Python abzufischen und dann in eine Eigenschaft zu schreiben oder lande ich hier beim selben Thema, dass ich nur an die 1, 2, 3 Werte komme?
Und ich müsste irgendwo herausfinden welcher numerische Wert welchem Text zugeordnet wird....
Selbst wenn dem so ist könnte man diese dann zumindest ins Skript einbinden und die benötigten Werte von Zahlen in den Wortlaut umschreiben lassen und dann in eine eigene Eigenschaft.
Ich denke das wäre besser einzusetzen als jedes mal die IFC Datei umzuschreiben ;
Bei anderen Eigenschaften geht das ja und man kann daraus eine verkette ID erstellen. Nur als Beispiel.
am 2026-01-30 07:19 AM
Ich hab' das mal 'pragmatisch' gelöst.
IFC-Übersetzer:
BIMcollab:
2026-01-30 08:34 AM - bearbeitet 2026-01-30 08:52 AM
Wenn du mir jetzt noch sagst wie du an die Werte gekommen bist und wo der Rest bis zur 13 ist - denn die hatte ich auch - dann würde ich das glatt so übernehmen.
Ist die Legende einfach dahinter geschrieben im Mapping oder wie hast du das kombiniert?
Ich glaube damit könnte ich mich anfreunden. Ist ja kein Wertebereich definiert im LOIN. Von daher finde ich pragmatisch hier ganz gut 😉
Und wie ich hier auch sehe hast du das Material des Fenster gemapt bekommen. Könntest du mir auch hier noch verraten wie?
Denn Material ist irgendwie auch ein leidiges Thema im IFC.
Bei einschichtigen geht es. Bei Mehrschichtigen muss man auf nen anderen Parameter dass überhaupt was ankommt und beim Fenster und manch anderem Objekt hat selbst dieser kein Ergebnis geliefert.
Das würde auch noch ein anderes großes Thema von mir lösen.
Danke schonmal!
am 2026-01-30 10:02 AM
Das schöne an dem Projekt war, dass wir nur das simple 1-flügelige Fenster genutzt haben. 🙂
Die Zuordnung findest Du im Masterscript (27er 1-flg.):
! const values for parameter: iOpeningType_1
SASH_FIXED = 1
SASH_FIXED_SCREW = 2
SASH_SIDE_HUNG = 3
SASH_SIDE_HUNG_M = 4
SASH_TILT_TURN = 5
SASH_TILT_TURN_M = 6
SASH_BOTTOM_HUNG = 7
SASH_TOP_HUNG = 8
SASH_HOR_PIVOT = 9
SASH_VER_PIVOT = 10
SASH_TILT_SLIDE = 11
SASH_LEFT_SLIDING = 12
SASH_RIGHT_SLIDING = 13
Die Übersetzung im Parameterscript (mit äh - komischen Abhängigkeiten):
if (iOpeningType_1 <> SASH_SIDE_HUNG_M & iOpeningType_1 <> SASH_TILT_TURN_M) or bDefaultElem then
values{2} "iOpeningType_1" SASH_FIXED, `Festverglast`,
SASH_FIXED_SCREW, `Flügel verschraubt`,
SASH_SIDE_HUNG, `Drehflügel`,
SASH_TILT_TURN, `Drehkippflügel`,
SASH_BOTTOM_HUNG, `Kippfenster`,
SASH_TOP_HUNG, `Klappflügel`,
SASH_HOR_PIVOT, `Schwingflügel`,
SASH_VER_PIVOT, `Wendeflügel`
Aber muss ja in der "Legende" nicht genauso heißen.
Lustig wird das bestimmt bei mehrfeldrigen Fenster... 🙂
Das Fenster-Material war letztlich zu Fuß eingegeben, gucksdu Optionenset.
Bei anderen Elementen ging das automatisch, und diese Ergebnisse wurden dann gucksdu roter Kasten zusammengeführt.
am 2026-01-30 10:15 AM
Ah super. Ja das hätte ich mir auch denken können dass es im skript des objekts zu finden ist... Danke für den Hinweis!
Darf ich fragen wie du das beim IFC-Export dann zusammengebracht hast? Im Übersetzer nimmst du den Bibliothekselementparameter und wie bekommst du die Legende dran? Zahl (Bibliotheksparameter) + Legende? Über ne Eigenschaft kann es ja nicht sein --> Sonst fehlt die Zahl.
Für die 2 Flügelfenster muss man vermutlich 2 IFC-Parameter rauschreiben. Haupt und Hauptflügel 2 so anlegen wie du das gemacht hast.
Ein anderer Workaround - Eigenschaftenliste Exportieren mit einer leeren Spalte fürs die Öffnungsart und dann in Excel copy paste und die Eigenschaft wieder Rückspielen. Damit dürfte es auch in einem großen Projekt schnell gehen.
Material:
Ach wie Schade ich dachte schon du hättest da was gefunden wie man es automatisch dran bringt. Aber klar das Optionenset macht es zumindest einfacher.
Trifft eben Fenster, Türen und viele Objekte. Bei manchen geht es automatisch bei manchen nicht.
am 2026-01-30 10:28 AM
Statischer Text....
Manchmal muss man auch einfach nur die Augen aufmachen.
Danke euch. Damit bekomm ichs hin.