## 8.14 IfcPropertyResource

### 8.14.1 Schema Definition

The IfcPropertyResource defines a basic set of property types that can be associated with occurrence objects (subtypes of IfcObject) and type objects (subtypes of IfcTypeObject) through the IfcPropertySet (defined in the IfcKernel schema). These properties are used to assign property definitions that are semantically defined by a name string and are extensible in terms of their definitions.

> NOTE Frequently, there is a need to extend the attributes that are attached to an individual object or group of objects. Yet it may not be necessary to extend the attributes for every object within the same class. Using the same capabilities as for types of an element, it is possible to define such sets of attributes and associate them with individual objects.

The association of attributes to objects can be defined by two different ways:

- by defining a type object (IfcTypeObject) which defines a specific object information (including the relevant properties) that is assigned to all instances (or occurrences) of the type object (via the IfcRelDefinesByType relationship).
- by defining a property set (IfcPropertySet, a logical grouping of related properties) which defines the common property information for an individual instance (or occurrence), this is done via the IfcRelDefinesByProperties relationship.

The semantic information of what an individual property denotes has to be given by the Name attribute. The Name is human interpretable and can also be computer interpretable by convention. This convention has to be established by implementers' agreements.

> NOTE The IFC specification defines a set of property sets, which provides a recommended usage of property sets for objects in the IFC model. In addition to the IFC property set specification also regional or project specific definitions of property sets are possible. Thereby property sets provide an mechanism to localize IFC definitions.

All subtypes of IfcProperty are referenced later by the IfcPropertySet. Thereby the IfcPropertySet establishes a tree of property definitions through the IfcSimpleProperty (and its subtypes) and IfcComplexProperty. Any instance of IfcSimpleProperty within this tree shall only be referenced once (by either IfcPropertySet or IfcComplexProperty).

> NOTE The property set attached to an object shall have a tree structure, therefore all properties (either IfcSimpleProperty -and subtypes- or IfcComplexProperty) shall be used only once within that structure.