IFC 4.3.2.20240423 (IFC4X3_ADD2) under development

4.1.3.4 Object Type Predefined Type

Many object occurrence and object type entities have an attribute named PredefinedType consisting of a specific enumeration. Such predefined type essentially provides another level of inheritance to further differentiate objects without the need for additional entities. Predefined types are not just informational; various rules apply such as applicable property sets, part composition, and distribution ports. If the object is typed by an IfcTypeObject, then the PredefinedType at the IfcObject occurrence shall only be used if the PredefinedType at IfcTypeObject is set to NOTDEFINED.

Note that the PredefinedType attribute itself is defined at the leaf classes of the inheritance hierarchy with a specific enumeration attribute for that given leaf class.

The following diagram shows the generic classes and relationships used when applying this concept. In addition, concepts may have particular importance to common or standardised industry practices and scenarios. For these specific usage scenarios, the table below shows a recommended list of general usage patterns that users may adopt.

G IfcTypeObject IfcTypeObject 1. GlobalId [1:1] 2. OwnerHistory [0:1] 3. Name [0:1] 4. Description [0:1]      HasAssignments [0:?]      Nests [0:1]      IsNestedBy [0:?]      HasContext [0:1]      IsDecomposedBy [0:?]      Decomposes [0:1]      HasAssociations [0:?] 5. ApplicableOccurrence [0:1] 6. HasPropertySets [1:?]      Types [0:1] ... TypeUserDefinedType ElementType TypePredefinedType PredefinedType IfcRelDefinesByType IfcRelDefinesByType 1. GlobalId [1:1] 2. OwnerHistory [0:1] 3. Name [0:1] 4. Description [0:1] 5. RelatedObjects [1:?] 6. RelatingType [1:1] IfcTypeObject:Types1->IfcRelDefinesByType:RelatingType0 IfcObject IfcObject 1. GlobalId [1:1] 2. OwnerHistory [0:1] 3. Name [0:1] 4. Description [0:1]      HasAssignments [0:?]      Nests [0:1]      IsNestedBy [0:?]      HasContext [0:1]      IsDecomposedBy [0:?]      Decomposes [0:1]      HasAssociations [0:?] UserDefinedType 5. ObjectType [0:1]      IsDeclaredBy [0:1]      Declares [0:?]      IsTypedBy [0:1]      IsDefinedBy [0:?] ... PredefinedType PredefinedType IfcRelDefinesByType:RelatedObjects1->IfcObject:IsTypedBy0 IfcLabel IfcLabel IfcObject:ObjectType1->IfcLabel:IfcLabel0
Figure 4.1.3.4.A

General Usage

ApplicableEntity
IfcTypeObject
Table 4.1.3.4.B

Edit on Github


Is this page difficult to understand? Let us know!