#### IfcObject

Natural language names

##### Semantic definitions at the entity

Entity definition

An IfcObject is the generalization of any semantically treated thing or process. Objects are things as they appear - i.e. occurrences.

> NOTE Examples of IfcObject include physically tangible items, such as wall, beam or covering, physically existing items, such as spaces, or conceptual items, such as grids or virtual boundaries. It also stands for processes, such as work tasks, for controls, such as cost items, for actors, such as persons involved in the design process, etc.

Objects can be named, using the inherited Name attribute, which should be a user recognizable label for the object occurrence. Further explanations to the object can be given using the inherited Description attribute. The ObjectType attribute is used:

- to store the user defined value for all subtypes of IfcObject, where a PredefinedType attribute is given, and its value is set to USERDEFINED.
- to provide a type information (could be seen as a very lightweight classifier) of the subtype of IfcObject, if no PredefinedType attribute is given. This is often the case, if no comprehensive list of predefined types is available.

Objects are independent pieces of information that might contain or reference other pieces of information. There are four essential kind of relationships in which objects can be involved:

- Assignment of other objects - an assignment relationship that refers to other types of objects. See supertype IfcObjectDefinition for more information.
- Association to external resources - an association relationship that refers to external sources of information. See supertype IfcObjectDefinition for more information.
- Aggregation of other objects - an aggregation relationship that establishes a whole/part relation. See supertype IfcObjectDefinition for more information.
- Refinement by type and properties - a refinement relationship (IfcRelDefines) that uses a type definition or (partial) property set definition to define the properties of the object instance. It is a specific - occurrence relationship with implied dependencies (as the occurrence properties depend on the specific properties).

> HISTORY New Entity in IFC Release 1.0

Attribute definitions

# | Attribute | Type | Cardinality | Description | A
--- | --- | --- | --- | --- | ---
5 | ObjectType | IfcLabel | [0:1] | The type denotes a particular type that indicates the object further. The use has to be established at the level of instantiable subtypes. In particular it holds the user defined type, if the enumeration of the attribute PredefinedType is set to USERDEFINED. | X
| IsDefinedBy | IfcRelDefines @RelatedObjects | S[0:?] | Set of relationships to type or property (statically or dynamically defined) information that further define the object. In case of type information, the associated IfcTypeObject contains the specific information (or type, or style), that is common to all instances of IfcObject referring to the same type. | X

Formal Propositions

Rule | Description
--- | ---
WR1 | Only maximum of one relationship to an underlying type (by an IfcRelDefinesByType relationship) should be given for an object instance.

##### Inherited definitions from supertypes

Entity inheritance
Attribute inheritance

# | Attribute | Type | Cardinality | Description | A
--- | --- | --- | --- | --- | ---
IfcRoot
1 | GlobalId | IfcGloballyUniqueId | [1:1] | Assignment of a globally unique identifier within the entire software world. | X
2 | OwnerHistory | IfcOwnerHistory | [1:1] | Assignment of the information about the current ownership of that object, including owning actor, application, local identification and information captured about the recent changes of the object, NOTE: only the last modification in stored. | X
3 | Name | IfcLabel | [0:1] | Optional name for use by the participating software systems or users. For some subtypes of IfcRoot the insertion of the Name attribute may be required. This would be enforced by a where rule. | X
4 | Description | IfcText | [0:1] | Optional description, provided for exchanging informative comments. | X
IfcObjectDefinition
| IsDecomposedBy | IfcRelDecomposes @RelatingObject | S[0:?] | Reference to the decomposition relationship, that allows this object to be the composition of other objects. An object can be decomposed by several other objects. | X
| Decomposes | IfcRelDecomposes @RelatedObjects | S[0:1] | References to the decomposition relationship, that allows this object to be a part of the decomposition. An object can only be part of a single decomposition (to allow hierarchical strutures only). | X
| HasAssociations | IfcRelAssociates @RelatedObjects | S[0:?] | Reference to the relationship objects, that associates external references or other resource definitions to the object.. Examples are the association to library, documentation or classification. | X
IfcObject
5 | ObjectType | IfcLabel | [0:1] | The type denotes a particular type that indicates the object further. The use has to be established at the level of instantiable subtypes. In particular it holds the user defined type, if the enumeration of the attribute PredefinedType is set to USERDEFINED. | X
| IsDefinedBy | IfcRelDefines @RelatedObjects | S[0:?] | Set of relationships to type or property (statically or dynamically defined) information that further define the object. In case of type information, the associated IfcTypeObject contains the specific information (or type, or style), that is common to all instances of IfcObject referring to the same type. | X

##### Formal representations

XSD Specification
`<xs:element name="IfcObject" type="ifc:IfcObject" abstract="true" substitutionGroup="ifc:IfcObjectDefinition" nillable="true"/>
<xs:complexType name="IfcObject" abstract="true">
<xs:complexContent>
<xs:extension base="ifc:IfcObjectDefinition">
<xs:attribute name="ObjectType" type="ifc:IfcLabel" use="optional"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
`
EXPRESS Specification
`ENTITY IfcObject
ABSTRACT SUPERTYPE OF(ONEOF(IfcProduct, IfcProject))
SUBTYPE OF (IfcObjectDefinition);
ObjectType : OPTIONAL IfcLabel;
INVERSE
IsDefinedBy : SET [0:?] OF IfcRelDefines FOR RelatedObjects;
WHERE
WR1 : SIZEOF(QUERY(temp <* IsDefinedBy | 'IFCKERNEL.IFCRELDEFINESBYTYPE' IN TYPEOF(temp))) <= 1;
END_ENTITY;

EXPRESS-G diagram

`

Link to this page