Many object occurrences have an attribute named PredefinedType being a specific enumeration. Such predefined type essentially provides another level of "classification by inheritance" to further differentiate objects without the need for additional sub types. Predefined types are not just informational; various rules apply such as applicable property sets, part composition, and distribution ports.Such predefined types are added by selecting the correct enumerator for the attribute PredefinedType. If a custom value is needed, the attribute ObjectType has to be used to define such custom type, whereas the PredefinedType is set to USERDEFINED.
The main attributes to be provided for a Object Occurrence Predefined Type are:
Figure 18 illustrates an instance diagram.
Figure 18 — Object Predefined Type |
<?xml version="1.0"?>
<ConceptTemplate xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" uuid="25248261-98df-4d0a-9364-5653575ca421" name="Object Predefined Type" status="sample" applicableSchema="IFC4" applicableEntity="IfcObject">
<Rules>
<AttributeRule RuleID="UserDefinedType" AttributeName="ObjectType">
<EntityRules>
<EntityRule EntityName="IfcLabel" />
</EntityRules>
</AttributeRule>
<AttributeRule RuleID="PredefinedType" AttributeName="PredefinedType" />
<AttributeRule AttributeName="IsTypedBy">
<EntityRules>
<EntityRule EntityName="IfcRelDefinesByType">
<AttributeRules>
<AttributeRule AttributeName="RelatingType">
<EntityRules>
<EntityRule EntityName="IfcTypeObject">
<AttributeRules>
<AttributeRule RuleID="TypeUserdefinedType" AttributeName="ElementType" />
<AttributeRule RuleID="TypePredefinedType" AttributeName="PredefinedType" />
</AttributeRules>
</EntityRule>
</EntityRules>
</AttributeRule>
</AttributeRules>
</EntityRule>
</EntityRules>
</AttributeRule>
</Rules>
</ConceptTemplate>