IDS Entity Facet
Finde heraus, wie man mit der IDS Entity Facet Anforderungen abhängig von der IfcClass definiert.
Die IDS Entity Facet ist eine von 6 verschiedenen Facets aus der Information Delivery Specification. Die Entity Facet wird genutzt, um entweder die IFC-Klasse eines Elements zu überprüfen oder für andere Überprüfungen vorrauszusetzen.
Innerhalb des Applicability Abschnittes einer IDS-Datei kann die Entity Facet also genutzt werden, um festzulegen, dass Anforderungen nur für Elemente mit bestimmten IFC-Klassen gelten.
Beispiel
Hier ist unser Ziel zu definieren, dass jede modellierte Wand einen angegebenen Feuerwiderstand hat. Um diese Regel festzulegen, können wir zwei Informationen aus dem IFC-Schema nutzen:
IfcWall | Die Standard IFC-Klasse für Wandelemente. |
FireRating | IFC-Eigenschaft zur Beschreibung des Feuerwiderstands |
<ids:applicability>
<ids:entity>
<ids:name>
<ids:simpleValue>IFCWALL</ids:simpleValue>
</ids:name>
</ids:entity>
</ids:applicability>
<ids:requirements>
<ids:property datatype="IFCLABEL" minOccurs="1" maxOccurs="unbounded">
<ids:propertySet>
<ids:simpleValue>Pset_WallCommon</ids:simpleValue>
</ids:propertySet>
<ids:name>
<ids:simpleValue>FireRating</ids:simpleValue>
</ids:name>
</ids:property>
</ids:requirements>
In diesem IDS-Beispiel, nutzen wir als Applicability
die Entity Facet, um festzulegen, dass diese Anforderung für jede IfcWall
gilt. Innerhalb der Requirements
ist mit einer Property Facet festgelegt, dass die Eigenschaft FireRating
aus dem Eigenschaftenset Pset_FireRatingProperties
vorhanden sein muss.
Predefined Type
Zusätzlich kann auch ein Predefined Type festgelegt werden, um die Entität noch genauer, als nur mit IfcClass
zu beschreiben. Zum Beispiel können wir unsere vorherigen Anforderungen erweitern und festlegen, dass sie ausschließlich für bewegbare Wände gilt. Dafür können wir den Wert MOVEABLE
des IfcWallTypeEnum
nutzen, der als Predefined Type verwendet wird.
<ids:applicability>
<ids:entity>
<ids:name>
<ids:simpleValue>IFCWALL</ids:simpleValue>
</ids:name>
<!-- Hier wurde der Predefined Type eingefügt. -->
<ids:predefinedType>
<ids:simpleValue>MOVABLE</ids:simpleValue>
</ids:predefinedType>
</ids:entity>
</ids:applicability>
Achtung: Der ids:predefinedType
muss zwingend nach ids:name
kommen. Ist die Reihenfolge vertauscht, ist die Datei keine gültige IDS-Datei.
Fortgeschrittene Anwendung
Für die Werte der Entity Facet können auch komplexere Bedingungen anstatt eines simplen Wertevergleichs genutzt werden. Häufig genutzt werden Enumerationen, um festzulegen, dass die Anforderung für eine Auswahl an IFC-Klassen gilt.
<ids:applicability>
<ids:entity>
<ids:name>
<xs:restriction>
<xs:enumeration value="IFCWALL" />
<xs:enumeration value="IFCWINDOW" />
<xs:enumeration value="IFCDOOR" />
</xs:restriction>
</ids:name>
</ids:entity>
</ids:applicability>
<ids:requirements>
<ids:property datatype="IFCLABEL" minOccurs="1" maxOccurs="unbounded">
<ids:propertySet>
<ids:simpleValue>Pset_WallCommon</ids:simpleValue>
</ids:propertySet>
<ids:name>
<ids:simpleValue>FireRating</ids:simpleValue>
</ids:name>
</ids:property>
</ids:requirements>
Um eine Enumeration mit der Entity Facet zu nutzen, kannst du ein xs:enumeration
Tag nutzen, um verschiedene Werte festzulegen. Die Anforderung in diesem Beispiel gilt für die Entities: IfcWall
, IfcWindow
oder IfcDoor
.
Zusammenfassend ist die Entity Facet eine der simpleren Funktionen des IDS Standards. Besonders nützlich ist sie bei der Definition der Applicabilities, um basierend auf einer IfcClass
Anforderungen zu definieren.