Über Attribute und Merkmale in IFC

Alle paar Monate taucht im europäischen Raum – gerade in den deutschsprachigen, skandinavischen und BENELUX-Ländern – die Idee auf, die Bezeichnungen und Datentypen von Bauteilmerkmalen (genauer gesagt von Objektmerkmalen) standardisieren zu wollen. Wenn dies endlich geschafft sei, so versprechen es zumindest die jeweiligen Initiatoren, dann wird BIM endlich zum Durchbruch verholfen. Aus gegebenen Anlass werden wir daher die Systematik von Attributen und Eigenschaften im IFC-Schema sowie die Möglichkeiten in Autodesk Revit etwas genauer durchleuchten.

Attribute

Unter Attibuten versteht man in erster Linie jene „Eigenschaften“, welche im IFC-Schema direkt am jeweiligen Objekt „angeheftet“ sind, sich also in der selben Zeile befinden. Die Position, an der sie innerhalb der Klammer angeführt werden, definiert die Bedeutung. DIese muss nicht explizit angeführt werden, die Reihenfolge ist das wesentliche Kriterium. Bei einer Wand ist eindeutig festgelegt, dass etwa an erster Stelle die GlobalID steht, an dritter Stelle der Name und an sechster Stelle die Position (siehe auch hier). Je nach Datentyp wird der Wert selbst (wie bei der ID) oder ein Verweis zu einer anderen Stelle in der IFC-Datei angegeben.

Property Sets

Im Gegensatz zu Attributen sind Merkmale (Properties) grundsätzlich nicht erforderlich. Es ist zu beachten, dass zwar die Angabe von vielen Attributen nicht erfoderlich ist, in diesem Fall jedoch ein Platzhalter eingefügt werden muss („$“), um die Stelle „freizuhalten“, und nicht Kommata zählen zu müssen.

Properties werden im IFC-Schema nicht einzeln verwaltet (sie erhalten also keine eigene ID) sondern in sogenannten PropertySets. Über diese Einschränkung wird zwar in der Community immer wieder diskutiert, ist aber im Moment (IFC 4.0.2.1) Stand der Dinge.

Properties

Es wäre etwas einfach zu sagen, Merkmale entsprächen den Parametern in Autodesk Revit. Das IFC-Schema lässt hier eine weitaus vielschichtigere Verwendung zu. Dazu betrachten wir zunächst die „Vererbungslinie“ dieses Objekttyps.

An der obersten Stelle steht hier die Klasse IfcPropertyAbstraction. Da somit die Basisklasse nicht IfcRoot lautet wird auch keine GlobalID angelegt. Neben anderen Unterklassen wird in weiterer Folge IfcProperty abgleitet – als abstrakte Klasse kann diese jedoch nicht direkt verwendet werden; von den beiden Unterklassen ist IfcSimpleProperty wiederum selbst abstrakt, nur IfcComplexProperty kann konkret verwendet werden.

Beginnen wir mit dem einzigen Eigenschaftstyp, welcher auch von Autodesk Revit (beim Export) unterstützt wird, nämlich IfcPropertySingleValue, einem Untertypen von IfcSImpleProperty. Dieser Eintrag definiert eine einzelne Eigenschaft, indem ein Name (erforderlich), eine Description, ein Wert (NominalValue) und eine Einheit (Unit) festgelegt werden. Die letzten drei Angaben sind nicht zwingend erforderlich. Diese 1:1-Zuordnung ist der einfachste Fall, wie Informationen in einem PropertySet gespeichert und in weiterer Folge an ein Objekt „angehängt“ werden können. Für Revit-User endet hier die Geschichte.

IfcSimpleProperty weist allerdings noch zahlreiche andere Unterklassen auf, mit welchen genauere Aussagen getroffen werden können.

IfcPropertyBoundedValue erlaubt die Angabe eines gültigen Bereiches mittels Minimum/Maximum-Wertes. Interessanterweise können diese wiederum jeden Datentyp aufweisen, also auch Datumsangaben oder sogar Texte. Wird einer der beiden Werte (oder sogar beide) nicht angegeben, so bedeutet das einen nach oben und/oder unten offenen Bereich.

IfcPropertyEnumeratedValue bietet die Möglichkeit, genau einen Wert aus einer vordefinierten Liste („Enumeration“) auszuwählen. Die Liste kann natürlich an mehreren Stellen wiederverwendet werden. Somit werden Fehler wie unterschiedliche Schreibweisen vermieden.

IfcPropertyListValue wiederum erlaubt es, nicht nur einen, sondern beliebig viele gleichartige (im Sinne von gleichen Einheiten) Eigenschaften festzulegen. Beispielsweise können verfügbare Größen von Möbelstücken (Ausziehtisch) mit dem Objekt verknüpft werden.

Ein Eigenschaftstyp, welcher in Revit leider nicht für den Endnutzer verfügbar ist, und somit auch nicht exportiert werden kann, ist der IfcPropertyReferenceValue. Dabei wird kein Wert, sondern eine Verknüpfung zu einem andern Objekt in der IFC-Datei abgespeichert. Nicht jede Art von Objekt ist hierbei verfügbar, aber beispielsweise können Personen, Organisationen, Materialien, externe Referenzen oder (und das werden wir in einem anderen Beitrag näher betrachten) sogenannte IfcTimeSeries angegeben werden. Für die Verknüpfung zu weiteren Objekte wie Räumen gibt es andere Konzepte (welche sich wieder von IfcRoot ableiten).

Der letzte „simple“ Merkmaltyp heißt IfcPropertyTableValue und ermöglicht es, eine ganze Tabelle als Eigenschaft abzuspeichern. Als Beispiel sei hier der Schallschutz genannt, da die Werte stark von der Frequenz abhängen. Ein einfacher Wert hätte daher nicht die gleiche Aussagekraft.

IfcComplexProperty ist ein etwas schwerer zu erfassendes Konzept. Grundsätzlich bietet es die Möglichkeit, verschiedene andere Merkmale zusammenzufassen, zu verschachteln, und so wie ein einzelnes Merkmal wiederzuverwenden. Für dieses Mal wollen wir es dabei belassen.

Conclusio

IFC biete ein weitaus höheres Maß an Flexibilität bei der Definition von Merkmalen als dies in z.B. Revit möglich ist. Eine direkte Implementierung eines gemeinsamen Standards kann daher nur durch eine starke Einschränkung geschehen. Wir werden uns einem späteren Beitrag noch mit anderen Aspekten der Merkmaldefinition beschäftigen, sei es auf der technischen (bsDD etc.) als auch auf der firmenpolitischen Seite. Es zeigt sich jedoch wieder einmal, dass die etablierten BIM-Programme noch einigen Nachholbedarf haben, um eine umfängliche und flexible Modell- und Datennutzung bewerkstelligen zu können.