IFC 4.3.x development IfcComplexProperty Semantic definitions at the entity

IfcComplexProperty is used to define complex properties to be handled completely within a property set. The included set of properties may be a mixed or consistent collection of IfcProperty subtypes. This enables the definition of a set of properties to be included as a single 'property' entry in an IfcPropertySet. The definition of such an IfcComplexProperty can be reused in many different IfcPropertySet's.

NOTE  Since an IfcComplexProperty may contain other complex properties, sets of properties can be nested. This nesting may be restricted by view definitions and implementer agreements.

HISTORY  New entity in IFC2.0. Attributes

# Attribute Type Description
HasExternalReferencesSET [0:?] OF IfcExternalReferenceRelationship FOR RelatedResourceObjects Reference to an external reference, e.g. library, classification, or document information, that is associated to the property definition.

> IFC4 CHANGE New inverse attribute.
1 Name IfcIdentifier Name for this property. This label is the significant name string that defines the semantic meaning for the property.
2 Description OPTIONAL IfcText Informative text to explain the property.
PartOfPset SET [0:?] OF IfcPropertySet FOR HasProperties Reference to the IfcPropertySet by which the IfcProperty is referenced.

> IFC4 CHANGE  New inverse attribute to navigate from IfcProperty to IfcPropertySet with upward compatibility for file based exchange.
PropertyForDependanceSET [0:?] OF IfcPropertyDependencyRelationship FOR DependingProperty The property on whose value that of another property depends.
PropertyDependsOn SET [0:?] OF IfcPropertyDependencyRelationship FOR DependantProperty The relating property on which the value of the property depends.
PartOfComplex SET [0:?] OF IfcComplexProperty FOR HasProperties Reference to the IfcComplexProperty in which the IfcProperty is contained.

> IFC4 CHANGE  The cardinality has changed to 0..n to allow reuse of instances of IfcProperty in several IfcComplexProperty with upward compatibility for file based exchange.
HasConstraints SET [0:?] OF IfcResourceConstraintRelationship FOR RelatedResourceObjectsUser-defined constraints for the property.
HasApprovals SET [0:?] OF IfcResourceApprovalRelationship FOR RelatedResourceObjects User-defined approvals for the property.
3 UsageName IfcIdentifier Usage description of the IfcComplexProperty within the property set which references the IfcComplexProperty.

> NOTE  Consider a complex property for glazing properties. The Name attribute of the IfcComplexProperty could be PsetGlazingProperties_, and the UsageName attribute could be OuterGlazingPane.
4 HasProperties SET [1:?] OF IfcProperty Set of properties that can be used within this complex property (may include other complex properties). Entity inheritance

dot_inheritance IfcComplexProperty IfcComplexProperty IfcProperty IfcProperty IfcComplexProperty->IfcProperty IfcSimpleProperty IfcSimpleProperty IfcSimpleProperty->IfcProperty IfcPropertyAbstraction IfcPropertyAbstraction IfcProperty->IfcPropertyAbstraction IfcPropertyAbstraction_children 3 more... IfcPropertyAbstraction_children->IfcPropertyAbstraction Formal representations

ENTITY IfcComplexProperty
 SUBTYPE OF (IfcProperty);
	UsageName : IfcIdentifier;
	HasProperties : SET [1:?] OF IfcProperty;
	WR21 : SIZEOF(QUERY(temp <* HasProperties | SELF :=: temp)) = 0;
	WR22 : IfcUniquePropertyName(HasProperties);