In Teil 2 dieser Reihe haben wir die Struktur von IFC-Dateien und ihre Kernkomponenten untersucht: physikalische Elemente, die räumliche Hierarchie und Ressourcen. Dadurch haben wir ein solides Verständnis der Bausteine innerhalb des IFC-Schemas erhalten.
Nun wollen wir uns damit beschäftigen, wie diese Komponenten mit weiteren Eigenschaften ausgestattet werden und wie sie miteinander verbunden sind. An dieser Stelle geht das Industry Foundation Classes (IFC-Schema) über einfache Geometrie hinaus und wird zu einem echten Datenmodell für openBIM.
Entitäten allein sagen uns nicht viel. Eine IfcWall sagt „das ist eine Wand“, aber wir möchten auch wissen: Ist sie tragend, wie hoch ist ihre Feuerwiderstandsklasse, aus welchem Material besteht sie? Hier kommen die Eigenschaften in IFC-Dateien ins Spiel.
IFC verwendet Property Sets (Psets), um verwandte Attribute zu gruppieren.
Hier ist ein kleines Beispiel, bei dem Pset_WindowCommon einem IfcWindow zugewiesen wird:
// Window instance (geometry/placement omitted for brevity)#2000 = IFCWINDOW('2mQf1xG3bPp8wQK1f2', 'Window-001', $, $, $, #LP, #SHAPE, $);// Property set with typical window attributes#2010 = IFCPROPERTYSET('pset-win-1', $, 'Pset_WindowCommon', $, (#2011, #2012, #2013, #2014));// Single-value properties#2011 = IFCPROPERTYSINGLEVALUE('IsExternal', $, IFCBOOLEAN(.T.), $);#2012 = IFCPROPERTYSINGLEVALUE('FireRating', $, IFCLABEL('EI30'), $);#2013 = IFCPROPERTYSINGLEVALUE('ThermalTransmittance', $, IFCTHERMALTRANSMITTANCEMEASURE(1.10), $); // W/(m2·K)#2014 = IFCPROPERTYSINGLEVALUE('AcousticRating', $, IFCLABEL('Rw 38 dB'), $);// Link the window to its property set#2020 = IFCRELDEFINESBYPROPERTIES('rel-prop-win-1', $, $, (#2000), #2010);
Window (#2000) ist Pset_WindowCommon mit vier Attributen zugewiesen: Aussenbereich, Brandschutzklasse, Wärmedurchgangskoeffizient und Schalldämmung. Das obige Beispiel zeigt, wie Eigenschaften in IFC geometrische Objekte mit Funktions- und Leistungsdaten anreichern.
Obwohl sie nicht in Psets gespeichert sind, spielen Materialien in IFC-Dateien eine ähnliche Rolle: Sie bereichern Elemente um wesentliche physikalische Eigenschaften.
Materialien werden über IfcRelAssociatesMaterial mit Elementen verknüpft, was genau wie die Zuweisung von Eigenschaften funktioniert:
#1200 = IFCMATERIAL('Concrete');#1201 = IFCRELASSOCIATESMATERIAL('rel-mat', $, $, (#800), #1200);
Wall (#800) ist mit dem Material „Beton“ verknüpft. Durch die explizite Materialzuordnung wird sichergestellt, dass beim Austausch eines Modells keine Materialien verloren gehen, was für die Strukturanalyse, die Kostenschätzung und die Nachhaltigkeitsbewertung von entscheidender Bedeutung ist.
Nicht jedes Projekt passt in die Standard-Psets. Aus diesem Grund erlaubt IFC auch benutzer- oder organisationsspezifische Property Sets.
Beispiel: Benutzerdefinierte Nachhaltigkeitseigenschaft
#3000 = IFCPROPERTYSET('pset-sust-1', $, 'Pset_Sustainability', $, (#3001));#3001 = IFCPROPERTYSINGLEVALUE('EmbodiedCarbon', $, IFCMASSMEASURE(250.0), 'kgCO2e/m2');#3010 = IFCRELDEFINESBYPROPERTIES('rel-prop-sust', $, $, (#800), #3000);
Im obigen Beispiel wird der Wand (#800) eine benutzerdefinierte Nachhaltigkeitseigenschaft „EmbodiedCarbon = 250 kgCO₂e/m²” zugewiesen. Sie sehen, wie einfach IFC nicht standardisierte Projektdaten wie den Kohlenstoffgehalt übertragen kann, der für nachhaltige Bauabläufe immer wichtiger wird. Die einfache Hinzufügung neuer Eigenschaften ist jedoch ein zweischneidiges Schwert: Sie birgt Risiken für die Interoperabilität – wenn sich nicht alle Beteiligten einig sind, werden die Daten möglicherweise von nachgelagerter Software nicht erkannt.
👉 Aus diesem Grund zielen neue Standards wie IDS (Information Delivery Specification) darauf ab, solche benutzerdefinierten Anforderungen zu formalisieren.
Während Eigenschaften Details hinzufügen, bringen Beziehungen in IFC-Dateien Struktur hinein. Sie beschreiben, wie Komponenten miteinander verbunden sind: Was gehört wohin, was füllt was aus, welches Material wird wo verwendet? 🔗
Beziehungen sind im IFC-Schema von zentraler Bedeutung. Sie sind selbst Entitäten (z. B. IfcRelContainedInSpatialStructure).
#1100 = IFCOPENINGELEMENT('open-1', 'Wall Opening', $, $, #130, #geomOpening, $);#1101 = IFCRELVOIDSELEMENT('rel-void', $, $, #800, #1100); -- Wall has opening#1102 = IFCWINDOW('win-1', 'Window-001', $, $, #140, #geomWindow, $);#1103 = IFCRELFILLSELEMENT('rel-fill', $, $, #1100, #1102); -- Opening filled by window
Im obigen Beispiel enthält Wand (#800) eine Öffnung (#1100), die dann durch ein Fenster (#1102) ausgefüllt wird.
Beispiel: Typzuordnung mit Eigenschaften und Material
// Wall type with property set#4000 = IFCWALLTYPE('WallType-1', 'Generic 200mm Concrete Wall', $, $, $, $, $, .STANDARD.);#4001 = IFCPROPERTYSET('pset-type-1', $, 'Pset_WallCommon', $, (#4002, #4003));#4002 = IFCPROPERTYSINGLEVALUE('FireRating', $, IFCLABEL('EI120'), $);#4003 = IFCPROPERTYSINGLEVALUE('IsExternal', $, IFCBOOLEAN(.T.), $);// Relating the property set to the wall type#4005 = IFCRELDEFINESBYPROPERTIES('rel-prop-type', $, $, (#4000), #4001);// Material definition for the wall type#4010 = IFCMATERIAL('Concrete');#4011 = IFCMATERIALLAYER(#4010, 0.20, $); -- 200 mm thickness#4012 = IFCMATERIALLAYERSET((#4011), 'Concrete Layer');#4013 = IFCRELASSOCIATESMATERIAL('rel-mat-type', $, $, (#4000), #4012);// Two wall instances in the model#4020=IFCWALL('0Bc7i64YzANAdct5Rq_I3f',#20,$,$,$,#15622,#15636,'2414787',.NOTDEFINED.);#4021=IFCWALL('0Bc7i64YzANAdct5Rq_I3k',#20, $,$,$,#15676,#15717,'2414788',.NOTDEFINED.);// Relating both walls to their common wall type#4025 = IFCRELDEFINESBYTYPE('rel-type', $, $, (#4020, #4021), #4000);
Im obigen Beispiel sind zwei Wandinstanzen (#4020, #4021) mit einem gemeinsamen Wandtyp (#4000) verknüpft. Der Typ umfasst sowohl einen Eigenschaftssatz (Brandschutzklasse und Aussenwirkung) als auch einen Materialschichtsatz (200 mm Beton), wodurch die Konsistenz über alle Instanzen hinweg gewährleistet ist.
Geometrie allein reicht nicht aus – räumliche Platzierung und Beziehungen werden kombiniert, um jede Komponente im Kontext zu verankern. 📐🔗
Jedes Element hat eine lokale Platzierung (über IfcLocalPlacement), die seine Position und Ausrichtung definiert. Diese Platzierungen bilden eine Kette:
👉 Diese Kombination aus relativer und absoluter Platzierung stellt sicher, dass eine Wand sowohl
Warum das wichtig ist:
Beispiel: Platzierungskette
#200 = IFCCARTESIANPOINT((0.0,0.0,0.0));#201 = IFCAXIS2PLACEMENT3D(#200, $, $);#202 = IFCLOCALPLACEMENT($, #201); -- Site placement at origin#203= IFCSITE('20FpTZCqJy2vhVJYtjuIce',#12,'Gel',$,$,#202,$,$,$,(51,28,57,28),(0,0,27,11),90,$,$);#210 = IFCCARTESIANPOINT((100.0,200.0,0.0));#211 = IFCAXIS2PLACEMENT3D(#210, $, $);#212 = IFCLOCALPLACEMENT(#202, #211); -- Building placed 100m east, 200m north of site origin#213= IFCBUILDING('00tMo7QcxqWdIGvc4sMN2A',#12,‘Geb\E4\ude',$,$,#212,$,$,$,$,$,$);#220 = IFCCARTESIANPOINT((0.0,0.0,0.0));#221 = IFCAXIS2PLACEMENT3D(#220, $, $);#222 = IFCLOCALPLACEMENT(#212, #221); -- Storey placed relative to building#223= IFCBUILDINGSTOREY('2jkqT_bFr2PPoKaVDCZO3n',#12,‘1.OG',$,$,#222,$,$,$,0.);#230 = IFCCARTESIANPOINT((5000.0,2000.0,0.0));#231 = IFCAXIS2PLACEMENT3D(#230, $, $);#232 = IFCLOCALPLACEMENT(#222, #231); -- Wall placed relative to storey#233= IFCWALL('1dhyH71zv8Tf1O_s_jq3FI',#12,'Wand',$,$,#178,#232,’90-2',.NOTDEFINED.);
Im obigen Beispiel wird die Platzierungskette von Standort → Gebäude → Etage → Wand dargestellt. Jede lokale Platzierung verweist auf ihre übergeordnete Ebene und gewährleistet so eine kohärente räumliche Struktur.
👉 Aus diesem Grund sind IFC-Dateien so ausführlich: Selbst eine einfache Wand kann mehrere Platzierungs- und Beziehungsentitäten erfordern, bevor sie vollständig interpretierbar ist.
Eigenschaften und Beziehungen verwandeln IFC in mehr als nur ein 3D-Geometrieformat: ⚙️
Ohne diese Eigenschaften wäre IFC nur eine Kiste mit unzusammenhängenden Legosteinen. Mit ihnen wird es zu einem strukturierten Modell – dem Rückgrat der openBIM-Zusammenarbeit.
In diesem Artikel haben wir gesehen, wie das IFC-Schema über die Geometrie hinausgeht, indem es: ✅📌
Zusammen machen diese Eigenschaften IFC zu einem reichhaltigen Datenmodell, das Design, Koordination und Lebenszyklusmanagement unterstützen kann.
Dies ist der letzte Artikel zum IFC-Schema, in dem wir die inneren Abläufe von IFC-Dateien abgedeckt haben: von Entitäten und Platzierung bis hin zu Eigenschaften und Beziehungen. Wenn Sie sie verpasst haben, vergessen Sie nicht, auch Teil 1 und 2 anzuschauen.
Im nächsten Artikel werden wir einen Schritt zurücktreten und untersuchen, wie IFC mit anderen openBIM-Spezifikationen – MVD, IDS, bSDD und CDE – verbunden ist, dem breiteren Ökosystem, das IFC in realen Projekten nutzbar macht.