# 5.1.3.14 IfcPropertySet

## 5.1.3.14.1 Semantic definition

The IfcPropertySet is a container that holds properties within a property tree. These properties are interpreted according to their name attribute. Each individual property has a significant name string. Some property sets are included in the specification of this standard and have a predefined set of properties indicated by assigning a significant name. These property sets are listed under "property sets" within this specification. Property sets applicable to certain objects are listed in the object specification. The naming convention "Pset_Xxx" applies to all those property sets that are defined as part of this specification and it shall be used as the value of the Name attribute.

In addition any user defined property set can be captured. Property sets that are not declared as part of the IFC specification shall have a Name value not including the "Pset_" prefix.

IfcPropertySet can be assigned to object occurrences and object types. An IfcPropertySet assigned to an object type is shared among all occurrences of the same object type.

An IfcPropertySetTemplate may define the underlying structure, i.e. the required name, the applicable object or object types to which the property set can be attached, and the individual properties that can be included. Property sets are related to other objects by using the relationship object that refers to the corresponding object:

• Occurrence Object: IfcRelDefinesByProperties using the inverse attribute DefinesOccurrence.
• Type Object: using a direct link by inverse attribute DefinesType.
• Underlying template: IfcRelDefinesByTemplate using the inverse attribute IsDefinedBy.
• External reference: subtypes of IfcRelAssociates are used to provide a link to a classification system, or external library providing further reference to the property set. Accessible by inverse attribute HasAssociations.

## 5.1.3.14.7 Formal representation

ENTITY IfcPropertySet
SUBTYPE OF (IfcPropertySetDefinition);
HasProperties : SET [1:?] OF IfcProperty;
WHERE
ExistsName : EXISTS(SELF\IfcRoot.Name);
UniquePropertyNames : IfcUniquePropertyName(HasProperties);
END_ENTITY;