EXAMPLE 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:
Characteristics defined at the object type level may include:
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.
EXAMPLE 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.
NOTE If the object type has aggregated elements, such objects are reflected at the object occurrence using the IfcRelDefinesByObject relationship.]]>
Property sets can also be related to an object type, see concept Property Sets for Types. They then define the common properties for all occurrences of the same type. If the same property (by name) is provided by the same property set (by name), then the properties directly assigned to the object occurrence override the properties assigned to the object type.
]]>The quantity set is expressed by instances of IfcElementQuantity, where the Name attribute determines the common designator of the quantity set. This specification contains a number of predefined quantity sets, a template definition is provided for each of them. The name of the template has to be used as the value of the Name attribute. The MethodOfMeasurement attribute specifies the method, by which the values of the individual quantities are calculated. For the quantity set templates included in this specification, the value of MethodOfMeasurement shall be "BaseQuantities".
]]>Resource-level instances (not deriving from IfcRoot) do not have any identity, such that two instances having identical state are considered equal. For example, if an object has coordinates described by an IfcCartesianPoint instance, another object with the same coordinates may have a separate instance of IfcCartesianPoint or share the same instance; such difference is a matter of data storage optimization and does not imply any semantic relationship. This also implies that non-rooted instances may only exist if referenced by at least one rooted instance through either a direct attribute or inverse attribute, or following a chain of attribute references on instances.
The distinction between rooted and non-rooted (resource-level) entities achieves several goals:
Specific subtypes introduce additional attributes for User Identity.
The main attributes to be provided for a Object Occurrence Predefined Type are:
An individual item within the external source of information can be selected. It then applies the inherent meaning of the item to the IfcObject or IfcTypeObject.
NOTE The classification system or dictionary server that is used within the project itself can also be indicated at the level of IfcProject or IfcProjectLibrary either as an external source, or copied with all relevant classification items into the project data. Use the concept Project Classification Information to utilize this functionality.
The main attributes to be provided for a Classification Association are:
Aggregation is a bi-directional relationship, the relationship from the composite to its parts is called Decomposition, and the relationship from the part to its composite is called Composition.
]]>NOTE The link between the highest level spatial element and the project is provided by this concept through IfcRelContainedInSpatialStructure and not through declaration using IfcRelDeclares. This is a known anomaly introduced to maintain compatibility with earlier versions of this standard.
The order of spatial structure elements being included in the concept for builing projects are from high to low level: IfcProject, IfcSite, IfcBuilding, IfcBuildingStorey, and IfcSpace with IfcSite, IfcBuildingStorey and IfcSpace being optional levels. Therefore an spatial structure element can only be part of an element at the same or higher level.
In addition a more general hierarchical tree of spatial elements can be created by using IfcSpatialZone, from high to low: IfcProject, IfcSite, and IfcSpatialZone with IfcSite being an optional level.
NOTE The more general hiearchical tree has been introduced as an intermediate solution and stub for further extensions to support infrastructure works.]]>
NOTE The link between the project and the highest level spatial element is provided by this concept through IfcRelContainedInSpatialStructure and not through declaration using IfcRelDeclares. This is a known anomaly introduced to maintain compatibility with earlier versions of this standard.
The order of spatial structure elements being included in the concept for builing projects are from low to high level: IfcSpace, IfcBuildingStorey, IfcBuilding, IfcSite and IfcProject with IfcSite, IfcBuildingStorey and IfcSpace being optional levels. Therefore an spatial structure element can only be part of an element at the same or higher level.
In addition a more general hierarchical tree of spatial elements can be created by using IfcSpatialZone, from low to high: IfcSpatialZone, IfcSite, and IfcProject, with IfcSite being an optional level.
NOTE The more general hiearchical tree has been introduced as an intermediate solution and stub for further extensions to support infrastructure works.]]>
EXAMPLE An IfcBeam is placed within the spatial hierarchy using the objectified relationship IfcRelContainedInSpatialStructure, referring to it by its inverse attribute SELF\IfcElement.ContainedInStructure. Subtypes of IfcSpatialStructureElement are valid spatial containers, with IfcBuildingStorey being the default container.
The spatial containment relationship, together with the Spatial decomposition relationship, being hierarchical as well, establishes the hiearchical project tree structure in a building information model.
EXAMPLE The IfcBuildingStorey that logically contains the IfcBeam decomposes the IfcBuilding using the IfcRelAggregates relationship. Therefore the IfcBeam is also indirectly contained in the building.]]>
EXAMPLE A building story is a logical spatial container of building elements, distribution elements, or furnishing elements.
The Spatial Container concept is realized by using the IfcRelContainedInSpatialStructure objectified relationship between subtypes of IfcSpatialElement and the elements contained. The inverse relationship ContainsElements at the subtypes of IfcSpatialElement refers to the contained physical elements.
]]>Placement follows aggregation and containment relationships as follows:
If a containing spatial structure contains a grid, then placement may also be based relative to grid coordinates. In certain use cases, an absolute placement may be used by omitting the IfcObjectPlacement. In this case, the shape representation is defined within the world coordinate system.
]]>The representation identifier and type and the only allowed single representation item of the 'Box' representation are:
NOTE The specification does not determine the method by which the bounding box has to be created. If such a method need to be prescribed the definition has to be established by model view definitions or implementer agreements.]]>