#### 5.1.3.3 IfcObject

| Objet
| Objekt

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, or for actors such as persons involved in the design process.

Objects can be named, using the inherited Name attribute, which should be a user recognizable label for the object occurrance. 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 several relationships in which objects can be involved:

- Association to external/internal resource information - an association relationship that refers to external/internal sources of information. See supertype IfcObjectDefinition for more information.
- Assignment of other objects - an assignment relationship that refers to other types of objects. See supertype IfcObjectDefinition for more information.
- Aggregation of other objects - an aggregation relationship that establishes a whole/part relation. Objects can either be a whole, or a part, or both. See supertype IfcObjectDefinition for more information.
- Assignment of a type : IsTypedBy - a definition relationship IfcRelDefinesByType that uses a type definition to define the common characteristics of this occurrences, potentially including the common shape representation and common properties of all object occurrences assigned to this type. It is a specific - occurrence relationship with implied dependencies (as the occurrence properties depend on the properties of the type, but may override them).

- > NOTE See IfcRelDefinesByType for an explanatory figure. Also see for how to override type properties by occurrence properties.

- Assignment of a partial type : IsDeclaredBy, Declares - a definition relationship IfcRelDefinesByObject that uses a component of a type definition (a part of a type, called the "declaring part") to define a component of an occurence (part of occurrence, called the "reflected part"). This is also refered to as a "deep copy". The common characteristics of all parts in the occurrence are defined by parts in the type. It is a specific - occurrence relationship with implied dependencies (as the occurrence properties depend on the properties of the type, but may override them).

- > NOTE See IfcRelDefinesByObject for an explanatory figure.

- Assignment of property sets : IsDefinedBy - a definition relationship IfcRelDefinesByProperties that assignes property set definitions to the object occurrence.

> HISTORY New entity in IFC1.0

> IFC4 CHANGE The inverse relationships Declares, IsDeclaredBy, and IsTypedBy have been added, types are not longer included in the IsDefinesBy relationship. IfcProject has been promoted to be a subtype of IfcObjectDefinition -> IfcContext.

Informal Propositions:

1. A partial type assignment, i.e. the inverse attribute IsDeclaredBy, or Declares shall only be used, if the object is part of a decomposition, i.e. if either IsDecomposedBy, or Decomposes is exerted.

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:complexContent>
</xs:complexType>

EXPRESS Specification:

ENTITY IfcObject

| ABSTRACT SUPERTYPE OF(ONEOF(IfcGroup, IfcProduct))

| SUBTYPE OF (IfcObjectDefinition);

ObjectType | : | OPTIONAL IfcStrippedOptional;

| INVERSE

IsTypedBy | : | SET [0:1] OF IfcRelDefinesByType FOR RelatedObjects;

END_ENTITY;

Attribute Definitions:

ObjectType | : | 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.
IsTypedBy | : | Set of relationships to the object type that provides the type definitions for this object occurrence. The then associated IfcTypeObject, or its subtypes, contains the specific information (or type, or style), that is common to all instances of IfcObject, or its subtypes, referring to the same type. IFC4 CHANGE New inverse relationship, the link to IfcRelDefinesByType had previously be included in the inverse relationship IfcRelDefines. Change made with upward compatibility for file based exchange.

Inheritance Graph:

ENTITY IfcObject

| ENTITY IfcRoot

GlobalId | : | IfcGloballyUniqueId;
OwnerHistory | : | OPTIONAL IfcOwnerHistory;
Name | : | OPTIONAL IfcLabel;
Description | : | OPTIONAL IfcText;

| ENTITY IfcObjectDefinition

| INVERSE

HasAssignments | : | SET OF IfcRelAssigns FOR RelatedObjects;
HasContext | : | SET [0:1] OF IfcRelDeclares FOR RelatedDefinitions;
IsDecomposedBy | : | SET OF IfcRelAggregates FOR RelatingObject;
Decomposes | : | SET [0:1] OF IfcRelAggregates FOR RelatedObjects;
HasAssociations | : | SET OF IfcRelAssociates FOR RelatedObjects;

| ENTITY IfcObject

ObjectType | : | OPTIONAL IfcStrippedOptional;

| INVERSE

IsTypedBy | : | SET [0:1] OF IfcRelDefinesByType FOR RelatedObjects;

END_ENTITY;

Link to this page