The principal applied is that any type of object can be classified. No distinction is made between a product, a process, a control or a resource. The means by which an object may be classified is the IfcClassificationNotation class.
The IfcRelAssociatesClassification class forms part of the IfcKernel schema. It is used to apply an IfcClassificationNotation to an object through its relation to IfcObject or IfcPropertyDefinition (from which all objects that can be classified are subtyped). Each instance of IfcRelAssociatesClassification enables the association of one classification notation with one or many objects.
It is possible for an object to have multiple classifications. This is achieved through the use of multiple instances of IfcRelAssociatesClassification, each instance pointing to a particular classification notation and to the objects that are classified by this notation.
Using the IfcRelAssociatesClassification relationship class means that any object that is not classified does not have to carry empty attributes for classification (as was the case with previous versions of the IFC model).
Many modern classification systems (such as Uniclass, BSAB etc.) allow for multi-faceted classification. This is reflected in the IFC Classification Model through provision of the IfcClassificationNotationFacet class where each instance represents one facet of a classification notation. The classification notation itself is then made up of a list of notation facets. The list is declared to be a unique list to ensure both that there is order in the specification of the notation facets and to ensure that a facet can only be included once in each list. For instance, considering a fan in an HVAC ductline. As a construction product, it has the Uniclass notation facet L7533. However, if we consider a work section view with the fan as part of the low velocity air conditioning system, the notation facet is JU30. Therefore, there are two facets in the classification notation which becomes ('JU30', 'L7533') |
Classification systems are generally declared in a hierarchical structure in which a facet at an upper level in the hierarchy (parent level) is a generalization of the facets at the next lower level in the hierarchy (child level). The hierarchy of the classification system is defined in tables (ref. CI/SfB) or sections (ref. CAWS) or some other named, coherent approach. Typically, the position in the hierarchy is identified by a nomenclature or label e.g. X12, and the identity at the child level is derived by adding (concatenating) characters e.g. X121, X122, X123 etc. Within the IFC Classification Model, the ability to identify location in a classification hierarchy is termed the IfcClassificationItem (so as not to be identified as table, section etc. but as a generalisation of these terms). |
The whole of the classification hierarchy can now be exposed through the IFC Classification Model. This is achieved by providing a recursive relationship on the IfcClassificationItem class. Therefore, an instance of IfcClassificationItem can contain a unique list (to ensure order and uniqueness of list members) of other instances of IfcClassificationItem. The requirement of this relationship is that a list cannot contain the same instance of IfcClassificationItem as is acting as the container or any instance of IfcClassificationItem that has already been declared as a member of any other list in the hierarchy i.e. an IfcClassificationItem can appear only once in a hierarchy.
Each classification item belongs to an IfcClassification. This provides the means to identify the classification system being used. IfcClassification has attributes which define its source, edition and name.
Recognizing that it may not be appropriate to maintain the whole detail of classification within the object model, and taking the view that information may well be referenced from external sources by its address to enable access through mechanisms such as the World Wide Web, the IFC Classification Model includes a means to reference a classification through the IfcClassificationReference class. This is a type of IfcExternalReference that has a label (which can be the reference address) and identifier. Additional information may be available concerning the classification system source that is being referenced.
Whilst several different classification notations may be applied to an object, there is no equivalence between the classification notations. Therefore, the IFC Classification Model cannot be used to translate from one classification notation to another. The reason for this is that, generally, it is possible to select from any of several different notations within a classification system for an object. The actual selection is the responsibility of the user according to circumstances. Therefore, there is a many to many relationship between classification systems for which there is no resolution at this stage of development.