IFC 4.3.x development

5.1.3.2 IfcComplexPropertyTemplate

Change log

IFC4

added

5.1.3.2.1 Semantic definitions at the entity

The IfcComplexPropertyTemplate defines the template for all complex properties, either the IfcComplexProperty's, or the IfcPhysicalComplexQuantity's. The individual complex property templates are interpreted according to their Name attribute and and optional UsageName attribute.

HISTORY  New entity in IFC4.

5.1.3.2.1 Attributes

# Attribute Type Description
IfcRoot
1 GlobalId IfcGloballyUniqueId Assignment of a globally unique identifier within the entire software world.
2 OwnerHistory OPTIONAL IfcOwnerHistory 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 - either as addition, deletion or modification.

> IFC4 CHANGE  The attribute has been changed to be OPTIONAL.
3 Name OPTIONAL IfcLabel 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.
4 Description OPTIONAL IfcText Optional description, provided for exchanging informative comments.
IfcPropertyDefinition
HasContext SET [0:1] OF IfcRelDeclares FOR RelatedDefinitions
HasAssociations SET [0:?] OF IfcRelAssociates FOR RelatedObjects 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.
IfcPropertyTemplateDefinition
IfcPropertyTemplate
PartOfComplexTemplateSET [0:?] OF IfcComplexPropertyTemplate FOR HasPropertyTemplatesReference to a complex property templates. It should only be provided, if the PropertyType of the referenced complex property template is set to COMPLEX.
PartOfPsetTemplate SET [0:?] OF IfcPropertySetTemplate FOR HasPropertyTemplates Reference to the IfcPropertySetTemplate that defines the scope for the IfcPropertyTemplate. A single IfcPropertyTemplate can be defined within the scope of zero, one or many IfcPropertySetTemplate'.
IfcComplexPropertyTemplate
5 UsageName OPTIONAL IfcLabel
6 TemplateType OPTIONAL IfcComplexPropertyTemplateTypeEnum
7 HasPropertyTemplates OPTIONAL SET [1:?] OF IfcPropertyTemplate Reference to a set of property templates. It should only be provided, if the PropertyType is set to COMPLEX.

5.1.3.2.2 Entity inheritance

dot_inheritance IfcComplexPropertyTemplate IfcComplexPropertyTemplate IfcPropertyTemplate IfcPropertyTemplate IfcComplexPropertyTemplate->IfcPropertyTemplate IfcSimplePropertyTemplate IfcSimplePropertyTemplate IfcSimplePropertyTemplate->IfcPropertyTemplate IfcPropertyTemplateDefinition IfcPropertyTemplateDefinition IfcPropertyTemplate->IfcPropertyTemplateDefinition IfcPropertySetTemplate IfcPropertySetTemplate IfcPropertySetTemplate->IfcPropertyTemplateDefinition IfcPropertyDefinition IfcPropertyDefinition IfcPropertyTemplateDefinition->IfcPropertyDefinition IfcPropertySetDefinition IfcPropertySetDefinition IfcPropertySetDefinition->IfcPropertyDefinition IfcRoot IfcRoot IfcPropertyDefinition->IfcRoot IfcObjectDefinition IfcObjectDefinition IfcObjectDefinition->IfcRoot IfcRelationship IfcRelationship IfcRelationship->IfcRoot

5.1.3.2.3 Definitions applying to General Usage

5.1.3.2.3.1 Identity

IfcRoot assigns the globally unique ID. In addition it may provide for a name and a description about the concept.

5.1.3.2.3.2 Revision Control

Ownership, history, and merge state is captured using IfcOwnerHistory.

5.1.3.2.4 Formal representations

ENTITY IfcComplexPropertyTemplate
 SUBTYPE OF (IfcPropertyTemplate);
	UsageName : OPTIONAL IfcLabel;
	TemplateType : OPTIONAL IfcComplexPropertyTemplateTypeEnum;
	HasPropertyTemplates : OPTIONAL SET [1:?] OF IfcPropertyTemplate;
 WHERE
	UniquePropertyNames : IfcUniquePropertyTemplateNames(HasPropertyTemplates);
	NoSelfReference : SIZEOF(QUERY(temp <* HasPropertyTemplates | SELF :=: temp)) = 0;
END_ENTITY;