4.1.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.
The IfcTank is the object occurrence entity that has a corresponding IfcTankType being the 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 occurrence;
- 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.
For scenarios of object types having part compositions, such parts may be reflected at object occurrences having separate state. For example, a wall type may define a particular arrangement of studs, a wall occurrence may reflect the same arrangement of studs, and studs within the wall occurrence may participate in specific relationships that do not exist at the type such as being connected to an electrical junction box. If the object type has aggregated elements, such objects are reflected at the object occurrence using the IfcRelDefinesByObject relationship.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.