IFC 4.3.0.1 (IFC4X3) development

# 8.6.3.1 IfcClassification

## 8.6.3.1.1 Semantic definition

An IfcClassification is used for the arrangement of objects into a class or category according to a common purpose or their possession of common characteristics. A classification in the sense of IfcClassification is taxonomy, or taxonomic scheme, arranged in a hierarchical structure. A category of objects relates to other categories in a generalization-specialization relationship. Therefore the classification items in an classification are organized in a tree structure.

The IfcClassification identifies the classification system or source to which a classification reference refers to. Each classification reference may reference an instance of IfcClassification. A classification system declared may be either formally published, or it may be a locally defined method of classifiying information.

There are two methods to define and reference a classification system:

1. Including the classification system structure within the dataset: Here a hierarchical tree of IfcClassificationReference's is included that defines the classification system including the relationship between the classification items. The ReferencedSource attribute of IfcClassificationReference links the classification item to the parent item, and the parent item finally to the IfcClassification.
2. Referencing the classification system by a classification key or id: Here the IfcClassificationReference is used to assign a classification id or key as Identification attribute and it may link by ReferencedSource attribute directly to the IfcClassification.

## 8.6.3.1.4 Formal representation

ENTITY IfcClassification
SUBTYPE OF (IfcExternalInformation);
Source : OPTIONAL IfcLabel;
Edition : OPTIONAL IfcLabel;
EditionDate : OPTIONAL IfcDate;
Name : IfcLabel;
Description : OPTIONAL IfcText;
Specification : OPTIONAL IfcURIReference;
ReferenceTokens : OPTIONAL LIST [1:?] OF IfcIdentifier;
INVERSE
ClassificationForObjects : SET [0:?] OF IfcRelAssociatesClassification FOR RelatingClassification;
HasReferences : SET [0:?] OF IfcClassificationReference FOR ReferencedSource;
END_ENTITY;