OpenBIM
Das IFC-Schema: Ein Blick ins Innere einer IFC-Datei – Eigenschaften und Beziehungen (Teil 3)
Grigorios Anagnostopoulos
Grigorios Anagnostopoulos
October 02, 2025
4 min

Inhaltsverzeichnis

01
Eigenschaften im IFC-Schema
02
Beziehungen im IFC-Schema
03
Räumliche Anordnung und Beziehungen miteinander
04
Warum Eigenschaften und Beziehungen in IFC wichtig sind
05
Fazit (Teil 3)

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.

Eigenschaften im IFC-Schema

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.

Property Sets (Psets)

IFC verwendet Property Sets (Psets), um verwandte Attribute zu gruppieren.

  • Für gängige Elemente gibt es standardisierte Psets, z. B.:
  • Pset_WallCommon: Brandschutzklasse, Schallschutzklasse, Tragfähigkeit.
  • Pset_DoorCommon: Funktionsweise, Feuerwiderstand, Wärmedurchgangskoeffizient.
  • Eigenschaften können einfach (Zahlen, Text) oder komplex (Listen, Referenzen) sein.

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.

Materialien als Eigenschaften

Obwohl sie nicht in Psets gespeichert sind, spielen Materialien in IFC-Dateien eine ähnliche Rolle: Sie bereichern Elemente um wesentliche physikalische Eigenschaften.

  • IfcMaterial definiert ein einzelnes Material (z. B. Beton, Stahl, Ziegel).
  • IfcMaterialLayerSet beschreibt mehrschichtige Konstruktionen (z. B. Putz + Dämmung + Beton).
  • IfcMaterialConstituentSet behandelt Materialien, die für Teile einer Komponente gelten (z. B. Rahmen vs. Füllung eines Fensters).

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.

Benutzerdefinierte Eigenschaften in IFC

Nicht jedes Projekt passt in die Standard-Psets. Aus diesem Grund erlaubt IFC auch benutzer- oder organisationsspezifische Property Sets.

  • Diese folgen derselben Struktur, sind jedoch nicht standardisiert.
  • Nützlich für projektspezifische Daten (z. B. Kundenanforderungen, Nachhaltigkeitskennzahlen).
  • Risiko: Ohne Vereinbarung können benutzerdefinierte Eigenschaften die Interoperabilität beeinträchtigen.

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.

Beziehungen im IFC-Schema

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).

ifcRelationship and childs
Abbildung 1: Die Entität „IfcRelationship“ und ihre untergeordneten Entitäten im IFC-Datenschema. (Quelle: BIMcert-Handbuch, Ausgabe 2024)

Einkapselung und Aggregation

  • IfcRelContainedInSpatialStructure → verknüpft Elemente mit räumlichen Ebenen (Wände in Stockwerken, Stockwerke in Gebäuden).
  • IfcRelAggregates → gruppiert Komponenten zu grösseren Einheiten (ein Gebäude aus Stockwerken, eine Treppe aus Treppenläufen).

spatial relation in building construction
Abbildung 2: Räumliche Beziehung im Hochbau, die zeigt, wie Elemente in Stockwerken enthalten sind, die wiederum in Gebäuden enthalten sind. (Quelle: BIMcert-Handbuch, Ausgabe 2024)

Konnektivität

  • IfcRelConnectsElements → definiert physikalische Verbindungen (Balken zu Stütze, Wand zu Decke).
  • IfcRelVoidsElement / IfcRelFillsElement → repräsentiert Öffnungen und deren Füllungen (Wand → Öffnung → Fenster).
#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.

Zuweisungen

  • IfcRelAssociatesMaterial → verknüpft Elemente mit Materialien.
  • IfcRelDefinesByType → ordnet ein Element einem Typobjekt zu (z.B. alle Türen vom Typ D01).
  • IfcRelDefinesByProperties → ordnet einen Eigenschaftssatz zu.

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.

Räumliche Anordnung und Beziehungen miteinander

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:

  • Eine Wand wird relativ zu einem Stockwerk platziert.
  • Das Stockwerk wird relativ zum Gebäude platziert.
  • Das Gebäude wird relativ zum Standort platziert.
  • Der Standort kann mit IfcMapConversion in globalen Koordinaten platziert werden, wodurch das Modell mit GIS- oder Vermessungsdaten abgeglichen wird.

👉 Diese Kombination aus relativer und absoluter Platzierung stellt sicher, dass eine Wand sowohl

  • eine logische Position in der Gebäudehierarchie (Erdgeschoss, Ostflügel) als auch
  • eine reale Position (X/Y/Z-Koordinaten, manchmal mit Breiten-/Längengrad oder projiziertem CRS) hat.

Warum das wichtig ist:

  • Kollisionserkennung 🛑 – Platzierungen stellen sicher, dass Elemente aus verschiedenen Disziplinen im gleichen Koordinatenraum ausgerichtet sind.
  • Mengenermittlung 📏 – räumliche Beziehungen ermöglichen automatisierte Berechnungen der Grundfläche und des Volumens nach Stockwerk oder Zone.
  • Standortlayout 📍 – Die absolute Platzierung (mit IfcMapConversion) ermöglicht den Export von Modellen in GIS- oder Vermessungssysteme.
  • Zusammenführung 🏗️ – Mehrere IFC-Dateien (Architektur, Statik, MEP) können in einem gemeinsamen Koordinatensystem korrekt ausgerichtet werden.

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.

spatial placement
Abbildung 3: Räumliche Platzierung im Hochbau, die zeigt, wie lokale Platzierungen relative Positionen definieren. (Quelle: BIMcert-Handbuch, Ausgabe 2024)

👉 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.

Warum Eigenschaften und Beziehungen in IFC wichtig sind

Eigenschaften und Beziehungen verwandeln IFC in mehr als nur ein 3D-Geometrieformat: ⚙️

  • Hierarchie: Projekte → Standorte → Gebäude → Stockwerke → Elemente.
  • Details: Attribute wie Brandschutzklasse und Kohlenstoffgehalt bereichern die Geometrie.
  • Konnektivität: Öffnungen, Füllungen und Verbindungen definieren, wie Komponenten interagieren.
  • Wiederverwendbarkeit: Gemeinsame Materialien und Typobjekte reduzieren Doppelarbeit.
  • Interoperabilität: Explizite Beziehungen verhindern Datenverluste zwischen Softwareprogrammen.

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.

Fazit (Teil 3)

In diesem Artikel haben wir gesehen, wie das IFC-Schema über die Geometrie hinausgeht, indem es: ✅📌

  • Property Sets zur Definition von Attributen verwendet.
  • Materialien als strukturierte Eigenschaftszuweisungen verwendet.
  • Benutzerdefinierte Eigenschaften verwendet, um projektspezifische Anforderungen (wie Nachhaltigkeit) zu erfassen.
  • Typojekte verwendet, um die Konsistenz über mehrere Instanzen hinweg sicherzustellen.
  • Beziehungen verwendet, um Komponenten zu einem kohärenten Modell zu verbinden.

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.


Tags

#IFC#BIM

Teilen


Ähnliche Beiträge

Anwendung von openBIM in der Praxis: Von IFC-Workflows zur digitalen Zusammenarbeit
October 20, 2025
4 min

Lassen Sie uns in Kontakt bleiben

Folgen Sie uns und informieren Sie sich über unsere Produkte, Blogartikel und Sonderangebote.