The IfcPropertySet defines all dynamically extensible properties. The property set is a container class that holds properties within a property tree. These properties are interpreted according to their name attribute.
Property sets, defining a particular type of object, can be assigned an object type (IfcTypeObject). Property sets are assigned to objects (IfcObject) through an objectified relationship (IfcRelDefinedByProperties). If the same set of properties applies to more than one object, it should be assigned by a single instance of IfcRelDefinedByProperties to a set of related objects. Those property sets are referred to as shared property sets.
HISTORY New Entity in IFC Release 1.0
Use Definition
Instances of IfcPropertySet are used to assign named sets of individual properties (complex or single properties). Each individual property has a significant name string. Some property sets have predefined instructions on assigning those significant name, these are listed under "property sets" main menu item within this specification. The naming convention "Pset_Xxx" applies to those property sets and shall be used as the value to the Name attribute.
In addition any user defined property set can be captured, those property sets shall have a Name value not including the "Pset_" prefix.
# | Attribute | Type | Cardinality | Description | A |
---|---|---|---|---|---|
5 | HasProperties | IfcProperty | S[1:?] | Contained set of properties. For property sets defined as part of the IFC Object model, the property objects within a property set are defined as part of the standard. If a property is not contained within the set of predefined properties, its value has not been set at this time. | X |
Rule | Description |
---|---|
WR31 | The Name attribute has to be provided. The attribute is used to specify the type of the property set definition. The property set structure for particular property sets may be given within the property set definition part of the IFC specification. |
WR32 | Every property within the property set shall have a unique name attribute value. |
# | Attribute | Type | Cardinality | Description | A |
---|---|---|---|---|---|
IfcRoot | |||||
1 | GlobalId | IfcGloballyUniqueId | [1:1] | Assignment of a globally unique identifier within the entire software world. | X |
2 | OwnerHistory | IfcOwnerHistory | [1:1] | Assignment of the information about the current ownership of that object, including owning actor, application, local identification and information captured about the recent changes of the object, NOTE: only the last modification in stored. | X |
3 | Name | IfcLabel | [0:1] | Optional name for use by the participating software systems or users. For some subtypes of IfcRoot the insertion of the Name attribute may be required. This would be enforced by a where rule. | X |
4 | Description | IfcText | [0:1] | Optional description, provided for exchanging informative comments. | X |
IfcPropertyDefinition | |||||
HasAssociations | IfcRelAssociates @RelatedObjects | S[0:?] | Reference to the relationship IfcRelAssociates and thus to those externally defined concepts, like classifications, documents, or library information, which are associated to the property definition. | ||
IfcPropertySetDefinition | |||||
PropertyDefinitionOf | IfcRelDefinesByProperties @RelatingPropertyDefinition | S[0:1] | Reference to the relation to one or many objects that are characterized by the property definition. The reference may be omitted, if the property definition is used to define a style library and no instances, to which the particular style of property set is associated, exist yet. | ||
IfcPropertySet | |||||
5 | HasProperties | IfcProperty | S[1:?] | Contained set of properties. For property sets defined as part of the IFC Object model, the property objects within a property set are defined as part of the standard. If a property is not contained within the set of predefined properties, its value has not been set at this time. | X |
<xs:element name="IfcPropertySet" type="ifc:IfcPropertySet" substitutionGroup="ifc:IfcPropertySetDefinition" nillable="true"/>
<xs:complexType name="IfcPropertySet">
<xs:complexContent>
<xs:extension base="ifc:IfcPropertySetDefinition">
<xs:sequence>
<xs:element name="HasProperties">
<xs:complexType>
<xs:sequence>
<xs:element ref="ifc:IfcProperty" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute ref="ifc:itemType" fixed="ifc:IfcProperty"/>
<xs:attribute ref="ifc:cType" fixed="set"/>
<xs:attribute ref="ifc:arraySize" use="optional"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
ENTITY IfcPropertySet
SUBTYPE OF (IfcPropertySetDefinition);
HasProperties : SET [1:?] OF IfcProperty;
WHERE
WR31 : EXISTS(SELF\IfcRoot.Name);
WR32 : IfcUniquePropertyName(HasProperties);
END_ENTITY;