Ifd pset in 2x2

Even though the XM-7 harmonisation project has reached consensus and support for IFD most likely will be added in Ifc 2x4 there is already a need for exchange of IFD data in the current (2x2) version of the Ifc model. Such support can be achieved with the current schema but implies a certain set of rules to be followed. This document is an attempt to document those rules.

As an example we use an inner wall consisting of several layers and with a door placed in the wall.

The testwall named 'innerwall type A is a simple wall consisting of:


 * 13 mm gypsum plaster board
 * 98 mm wood framework
 * 13 mm gypsum plaster board

Creating the wall in the Ifc model
Creating the Ifc represenation of the wall in the BIM is done as following:

In order to create the wall the following EXPRESS entities will be used:


 * 2 instances of:

ENTITY IfcMaterial; Name  :   IfcLabel; -> gypsum, wood INVERSE ClassifiedAs  :   SET [0:1] OF IfcMaterialClassificationRelationship FOR ClassifiedMaterial;  not used this time END_ENTITY;

ENTITY IfcMaterialLayer; Material  :   OPTIONAL IfcMaterial;  -> points two times to IfcMaterial(gypsum) and once to IfcMaterial(wood) LayerThickness  :   IfcPositiveLengthMeasure;  -> 13, 98, 13 IsVentilated  :   OPTIONAL IfcBoolean;  -> FALSE, FALSE, FALSE INVERSE ToMaterialLayerSet  :   IfcMaterialLayerSet FOR MaterialLayers; END_ENTITY;
 * 3 instances of:

ENTITY IfcMaterialLayerSet; MaterialLayers  :   LIST [1:?] OF IfcMaterialLayer; -> points to the 3 instances of IfcMaterialLayer LayerSetName  :   OPTIONAL IfcLabel; -> innerwall type A DERIVE TotalThickness  :   IfcLengthMeasure :=  IfcMlsTotalThickness(SELF); END_ENTITY; ENTITY IfcMaterialLayerSetUsage; ForLayerSet  :   IfcMaterialLayerSet;  -> points to the IfcMaterialLayerSet LayerSetDirection  :   IfcLayerSetDirectionEnum;  -> AXIS 2 (Y axis as example) DirectionSense  :   IfcDirectionSenseEnum;  -> POSITIVE (going up the Y axis) OffsetFromReferenceLine  :   IfcLengthMeasure; -> 0 (reference line at wall edge) END_ENTITY;
 * 1 instance of:
 * 1 instance of:

ENTITY IfcWallStandardCase; ENTITY IfcRoot; GlobalId  :   IfcGloballyUniqueId; OwnerHistory  :   IfcOwnerHistory; Name  :   OPTIONAL IfcLabel; Description  :   OPTIONAL IfcText; ENTITY IfcObject; ObjectType  :   OPTIONAL IfcLabel; INVERSE IsDefinedBy  :   SET OF IfcRelDefines FOR RelatedObjects; HasAssociations  :   SET OF IfcRelAssociates FOR RelatedObjects; HasAssignments  :   SET OF IfcRelAssigns FOR RelatedObjects; Decomposes  :   SET [0:1] OF IfcRelDecomposes FOR RelatedObjects; IsDecomposedBy  :   SET OF IfcRelDecomposes FOR RelatingObject; ENTITY IfcProduct; ObjectPlacement  :   OPTIONAL IfcObjectPlacement; Representation  :   OPTIONAL IfcProductRepresentation; INVERSE ReferencedBy  :   SET OF IfcRelAssignsToProduct FOR RelatingProduct; ENTITY IfcElement; Tag  :   OPTIONAL IfcIdentifier; INVERSE FillsVoids  :   SET [0:1] OF IfcRelFillsElement FOR RelatedBuildingElement; ConnectedTo  :   SET OF IfcRelConnectsElements FOR RelatingElement; HasCoverings  :   SET OF IfcRelCoversBldgElements FOR RelatingBuildingElement; HasProjections  :   SET OF IfcRelProjectsElement FOR RelatingElement; HasPorts  :   SET OF IfcRelConnectsPortToElement FOR RelatedElement; HasOpenings  :   SET OF IfcRelVoidsElement FOR RelatingBuildingElement; IsConnectionRealization  :   SET OF IfcRelConnectsWithRealizingElements FOR RealizingElements; ProvidesBoundaries  :   SET OF IfcRelSpaceBoundary FOR RelatedBuildingElement; ConnectedFrom  :   SET OF IfcRelConnectsElements FOR RelatedElement; ContainedInStructure  :   SET [0:1] OF IfcRelContainedInSpatialStructure FOR RelatedElements; ENTITY IfcBuildingElement; ENTITY IfcWall; ENTITY IfcWallStandardCase; END_ENTITY;
 * and finally 1 instance of:

MaterialLayer_1
Propertyset to classify or define the product(s) in material layer 1. There will be one property for each product in the material layer. E.g: for a painted gypsum plaster board: ENTITY IfcPropertySet; ENTITY IfcRoot; GlobalId  :   IfcGloballyUniqueId; OwnerHistory  :   IfcOwnerHistory; Name  :   OPTIONAL IfcLabel; Description  :   OPTIONAL IfcText; ENTITY IfcPropertyDefinition; INVERSE HasAssociations  :   SET OF IfcRelAssociates FOR RelatedObjects; ENTITY IfcPropertySetDefinition; INVERSE PropertyDefinitionOf  :   SET [0:1] OF IfcRelDefinesByProperties FOR RelatingPropertyDefinition; DefinesType  :   SET [0:1] OF IfcTypeObject FOR HasPropertySets; ENTITY IfcPropertySet; HasProperties  :   SET [1:?] OF IfcProperty; END_ENTITY

ENTITY IfcPropertySingleValue; ENTITY IfcProperty; Name  :   IfcIdentifier;  -> 46FC6BC19BCE485BBE160470D65D9C1B (guid of gypsmum plaster board) Description  :   OPTIONAL IfcText;  -> gypsum plaster board (+ optional description of gypsum plaster board in ) INVERSE PropertyForDependance  :   SET OF IfcPropertyDependencyRelationship FOR DependingProperty; PropertyDependsOn  :   SET OF IfcPropertyDependencyRelationship FOR DependantProperty; PartOfComplex  :   SET [0:1] OF IfcComplexProperty FOR HasProperties; ENTITY IfcSimpleProperty; ENTITY IfcPropertySingleValue; NominalValue  :   IfcValue;  ->  2 number of layer within layer going the same direction as for IfcMaterialLayerUsage. Unit  :   OPTIONAL IfcUnit;  -> unset END_ENTITY;

ENTITY IfcPropertySingleValue; ENTITY IfcProperty; Name  :   IfcIdentifier;  -> 59D4D0A30022435091DB2888E5B7EB85 (guid of painted surface) Description  :   OPTIONAL IfcText;  -> painted surface (+ optional description of paint in ) INVERSE PropertyForDependance  :   SET OF IfcPropertyDependencyRelationship FOR DependingProperty; PropertyDependsOn  :   SET OF IfcPropertyDependencyRelationship FOR DependantProperty; PartOfComplex  :   SET [0:1] OF IfcComplexProperty FOR HasProperties; ENTITY IfcSimpleProperty; ENTITY IfcPropertySingleValue; NominalValue  :   IfcValue;  ->  1 number of layer within layer going the same direction as for IfcMaterialLayerUsage. Unit  :   OPTIONAL IfcUnit;  -> unset END_ENTITY;

MaterialLayer_1_46FC6BC19BCE485BBE160470D65D9C1B
Propertyset to give properties for the object carrying the guid in the name of the Dset. The propertyset contains IfdProperty instances for each of the Ifd properties needed.

ENTITY IfcPropertySingleValue; ENTITY IfcProperty; Name  :   IfcIdentifier;  -> DF0931DEF7E64A05BFF7359951F15EA5 Description  :   OPTIONAL IfcText;  -> bending strength crosswise the plate (name of property in selcted language  INVERSE    PropertyForDependance   :   SET OF IfcPropertyDependencyRelationship FOR DependingProperty;    PropertyDependsOn   :   SET OF IfcPropertyDependencyRelationship FOR DependantProperty;    PartOfComplex   :   SET [0:1] OF IfcComplexProperty FOR HasProperties;    ENTITY IfcSimpleProperty;    ENTITY IfcPropertySingleValue;    NominalValue   :   IfcValue;  -> value of the bending strenght for the particular plate on the particular wall  Unit   :   OPTIONAL IfcUnit;   END_ENTITY;