4.6.1 Object Typing
Object occurrences can be defined by a particular object type, using the Object Typing concept. A pair of entities are defined for most semantic objects - an object occurrence entity and a corresponding object type entity.
On instance level, an object occurrence instance may have:
- similar state as its object type instance by applying all characteristics defined at the type;
- overridden state for particular characteristics;
- no defined object type instance.
Characteristics defined at the object type level may include:
- common naming and predefined type;
- common properties within a type driven property set;
- common geometry representations, applied as mapped representation to each occurrences;
- common material assignments (with exception of material set usages);
- common definition of a decomposition structure.
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.
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 tables below shows a recommended list of general usage patterns that users may adopt.