ClassificationSystems Schema

Alias: clsf

Version: 1.0.3

A schema for classifying elements

This schema contains classes for modeling classification systems, which are organized sets of definitions used for classifying or categorizing real-world Objects.

In BIS, a ClassificationSystem consists of one or more ClassificationTables. Each ClassificationTable is an ISubModeledElement whose sub-model holds Classifications. Within the sub-model, the Classifications can be arranged in a hierarchy using the ClassificationOwnsSubClassifications parent-child relationship and grouped using ClassificationGroup and ClassificationGroupGroupsClassifications.

Class and Instance Diagrams

Table of contents

Entity Classes

Classification (Classification) EntityClass

An element that represents a single entry in a classification system

Base Class: BisCore:DefinitionElement

A Classification element represents one 'class' or 'category' into which the classification system classifies real-world Objects.

Classification elements are always persisted in a bis:DefinitionModel that is the sub-model of the owning ClassificationTable.

  • OmniClass 11-13 11 11 and UniClass 2015 En_20_10_45 are examples of classifications
  • The Code for classifications is expected to have the following components: is required to be in the form of (ClassificationTable.id, ClassificationName, CodeSpecId("Classification"))
    • CodeSpec.Id - The Id of the CodeSpec with the name "clsf:Classification".
    • CodeScope.Id - The Id of the parent Element or containing Model which should be one of the following:
      • The Id of the containing ClassificationTable for top-level classifications of complex classification systems like OmniClass and UniClass.
      • The Id of the parent Classification in the case of a sub-classification, unless the classification system requires all sub-classifications to be unique within a table (in which case the Id of the containing ClassificationTable)
    • CodeValue - The name of the classification.

A Classification may specialize another Classification element via the ClassificationOwnsSubClassifications relationship.

  • MasterFormat: 00 31 13 Preliminary Schedules -> 00 31 13.13 Preliminary Project Schedule and OmniClass Table 13: 13-11 00 00 Space Planning Types -> 13-11 11 00 Planned Work Space are examples of classification specialization.

An element may be classified as multiple Classifications through the ElementHasClassifications relationship.

See Overview.

Equivalent to IfcClassificationReference.

Properties

Name Description Type Extended Type
Description Description for this Classification string
Inherited properties
Name Description Type Extended Type
Model The bis:Model that contains this bis:Element. navigation
LastMod The last modified time of the bis:Element. This is maintained by the core framework and should not be set directly by applications. dateTime
CodeSpec The CodeSpec property identifies the bis:CodeSpec used to generate and validate the code value for this bis:Element. The combination of CodeSpec, CodeScope, and CodeValue properties must be unique for each bis:Element instance. navigation
CodeScope The CodeScope property identifies the bis:Element that provides the uniqueness scope for the code value. The combination of CodeSpec, CodeScope, and CodeValue properties must be unique for each bis:Element instance. navigation
CodeValue The CodeValue property stores a human-readable real-world identifier of the Entity represented by the bis:Element. The combination of CodeSpec, CodeScope, and CodeValue properties must be unique for each bis:Element instance. string
UserLabel An optional friendly name given by the user (as opposed to the formal name stored in the CodeValue property). string
Parent The parent bis:Element that owns this bis:Element. navigation
FederationGuid The GUID used to federate this bis:Element across repositories. binary BeGuid
JsonProperties A string property that users and/or applications can use to persist ad hoc JSON values. string Json
IsPrivate If true, this bis:DefinitionElement should not be displayed in the GUI. boolean

ClassificationGroup (Classification group) EntityClass

ClassificationGroup groups classifications

Base Class: BisCore:GroupInformationElement

A ClassificationGroup is a group of Classification elements, as grouped originally in the source classification system. The Classification elements are assigned to a group via ClassificationGroupGroupsClassifications relationship.

  • MasterFormat subdivisions and ASHRAE 62.1 Occupancy Category groupings are examples of classification groups.

A ClassificationGroup element is intended to be persisted in a bis:DefinitionModel that is the sub-model of the owning ClassificationTable.

See Overview.

Is not mapped to or from IFC, as the group concept does not exist in IFC

Properties

Name Description Type Extended Type
Description Description for this ClassificationGroup string
Inherited properties
Name Description Type Extended Type
Model The bis:Model that contains this bis:Element. navigation
LastMod The last modified time of the bis:Element. This is maintained by the core framework and should not be set directly by applications. dateTime
CodeSpec The CodeSpec property identifies the bis:CodeSpec used to generate and validate the code value for this bis:Element. The combination of CodeSpec, CodeScope, and CodeValue properties must be unique for each bis:Element instance. navigation
CodeScope The CodeScope property identifies the bis:Element that provides the uniqueness scope for the code value. The combination of CodeSpec, CodeScope, and CodeValue properties must be unique for each bis:Element instance. navigation
CodeValue The CodeValue property stores a human-readable real-world identifier of the Entity represented by the bis:Element. The combination of CodeSpec, CodeScope, and CodeValue properties must be unique for each bis:Element instance. string
UserLabel An optional friendly name given by the user (as opposed to the formal name stored in the CodeValue property). string
Parent The parent bis:Element that owns this bis:Element. navigation
FederationGuid The GUID used to federate this bis:Element across repositories. binary BeGuid
JsonProperties A string property that users and/or applications can use to persist ad hoc JSON values. string Json

ClassificationSystem (Classification System) EntityClass

An element used to represent a classification system

Base Class: BisCore:DefinitionElement

ClassificationSystem identifies the classification system to which the individual Classifications belong. For well-known and externally defined standards, the name (CodeValue) is typically enough to identify the classification system. A consuming application just needs to create or use an instance with the appropriate name. For these cases, the ClassificationSystem class can be used directly. In other cases where the classification system is custom or not well known, subclassing ClassificationSystem might be necessary to identify a particular type of classification system.

See Overview.

  • It is recommended to put globally-applicable ClassificationSystem elements in the DictionaryModel. However, in cases where classification system is local for some purpose, it is reasonable to put the ClassificationSystem element in any other DefinitionModel.
  • The Code for all global ClassificationSystem elements is expected to have the following components:
    • CodeSpec.Id - The Id of the CodeSpec with the name "clsf:ClassificationSystem".
    • CodeScope.Id - The root SubjectId for global classification systems. If the classification system is not deemed global, this should be something other than the root SubjectId.
    • CodeValue - Should be set to name + " " + edition.
  • UniClass 2015, UniClass 2018 and OmniClass are examples of classification systems. Organizations may have their own custom classification systems as well.

It is expected that any iModel will not contain all known classification systems. Instead, an iModel will only contain those classification systems that are used by that iModel and possibly only those parts of the classification system hierarchy that are used.

The combination of a ClassificationSystem and a ClassificationTable are equivalent to IfcClassification.

Properties

Name Description Type Extended Type
Source Source (or publisher) for this classification string
Edition The edition or version of the classification system from which the classification notation is derived. string
Location Resource identifier or locator, provided as URI, URN or URL, of the classification. string
Description Description for this ClassificationSystem string
Inherited properties
Name Description Type Extended Type
Model The bis:Model that contains this bis:Element. navigation
LastMod The last modified time of the bis:Element. This is maintained by the core framework and should not be set directly by applications. dateTime
CodeSpec The CodeSpec property identifies the bis:CodeSpec used to generate and validate the code value for this bis:Element. The combination of CodeSpec, CodeScope, and CodeValue properties must be unique for each bis:Element instance. navigation
CodeScope The CodeScope property identifies the bis:Element that provides the uniqueness scope for the code value. The combination of CodeSpec, CodeScope, and CodeValue properties must be unique for each bis:Element instance. navigation
CodeValue The CodeValue property stores a human-readable real-world identifier of the Entity represented by the bis:Element. The combination of CodeSpec, CodeScope, and CodeValue properties must be unique for each bis:Element instance. string
UserLabel An optional friendly name given by the user (as opposed to the formal name stored in the CodeValue property). string
Parent The parent bis:Element that owns this bis:Element. navigation
FederationGuid The GUID used to federate this bis:Element across repositories. binary BeGuid
JsonProperties A string property that users and/or applications can use to persist ad hoc JSON values. string Json
IsPrivate If true, this bis:DefinitionElement should not be displayed in the GUI. boolean

ClassificationTable (Classification Table) EntityClass

An element used to represent a table in a classification system

Base Class: BisCore:DefinitionElement

ClassificationTable defines a table in a ClassificationSystem as defined in the original ClassificationSystem source. A Classification Table represents a division of classification system into classifications for different purposes.

  • OmniClass Construction Entities by Function - Table 11 and UniClass 2015 En Entities are examples of classification tables.
  • The Code for all ClassificationTable elements is expected to have the following components:
    • CodeSpec.Id - The Id of the CodeSpec with the name "clsf:ClassificationTable".
    • CodeScope.Id - The Id of the owning ClassificationSystem which should be the same as the Parent.Id property of the ClassificationTable.
    • CodeValue - The name of the classification table.

A ClassificationTable will contain Classification and ClassificationGroup elements in its sub-model.

See Overview.

The combination of a ClassificationSystem and a ClassificationTable are equivalent to IfcClassification.

Properties

Name Description Type Extended Type
Description Description for this ClassificationTable string
Inherited properties
Name Description Type Extended Type
Model The bis:Model that contains this bis:Element. navigation
LastMod The last modified time of the bis:Element. This is maintained by the core framework and should not be set directly by applications. dateTime
CodeSpec The CodeSpec property identifies the bis:CodeSpec used to generate and validate the code value for this bis:Element. The combination of CodeSpec, CodeScope, and CodeValue properties must be unique for each bis:Element instance. navigation
CodeScope The CodeScope property identifies the bis:Element that provides the uniqueness scope for the code value. The combination of CodeSpec, CodeScope, and CodeValue properties must be unique for each bis:Element instance. navigation
CodeValue The CodeValue property stores a human-readable real-world identifier of the Entity represented by the bis:Element. The combination of CodeSpec, CodeScope, and CodeValue properties must be unique for each bis:Element instance. string
UserLabel An optional friendly name given by the user (as opposed to the formal name stored in the CodeValue property). string
Parent The parent bis:Element that owns this bis:Element. navigation
FederationGuid The GUID used to federate this bis:Element across repositories. binary BeGuid
JsonProperties A string property that users and/or applications can use to persist ad hoc JSON values. string Json
IsPrivate If true, this bis:DefinitionElement should not be displayed in the GUI. boolean

Relationship Classes

ClassificationGroupGroupsClassifications RelationshipClass

Maps Classification to its group

Base Class: BisCore:ElementGroupsMembers

Strength: Referencing

Strength Direction: Forward

Source

Is Polymorphic: true

Role Label: groups

Multiplicity: (0..*)

Constraint Classes:

Target

Is Polymorphic: true

Role Label: is grouped in

Multiplicity: (0..*)

Constraint Classes:

ClassificationOwnsSubClassifications RelationshipClass

A relationship used to indicate that one classification specializes another classification

Base Class: BisCore:ElementOwnsChildElements

Strength: Embedding

Strength Direction: Forward

Source

Is Polymorphic: true

Role Label: owns

Multiplicity: (0..1)

Constraint Classes:

Target

Is Polymorphic: true

Role Label: is owned by

Multiplicity: (0..*)

Constraint Classes:

ClassificationSystemOwnsClassificationTable RelationshipClass

Maps classification systems to their tables

Base Class: BisCore:ElementOwnsChildElements

Strength: Embedding

Strength Direction: Forward

Following the naming convention, this relationship class should have been named ClassificationSystemOwnsClassificationTables (plural), but was released with the a non-compliant name that would be disruptive to change post-release.

Source

Is Polymorphic: true

Role Label: owns

Multiplicity: (0..1)

Constraint Classes:

Target

Is Polymorphic: true

Role Label: is owned by

Multiplicity: (0..*)

Constraint Classes:

ClassificationSystemOwnsClassifications RelationshipClass Deprecated

DEPRECATED: Identifies classifications directly owned by a classification system

Base Class: BisCore:ElementOwnsChildElements

Strength: Embedding

Strength Direction: Forward

Source

Is Polymorphic: true

Role Label: owns

Multiplicity: (0..1)

Constraint Classes:

Target

Is Polymorphic: true

Role Label: is owned by

Multiplicity: (0..*)

Constraint Classes:

ElementHasClassifications RelationshipClass

Assigns Classifications to Elements

Base Class: BisCore:ElementRefersToElements

Strength: Referencing

Strength Direction: Forward

Source

Is Polymorphic: true

Role Label: has classification

Multiplicity: (0..*)

Constraint Classes:

Target

Is Polymorphic: true

Role Label: classifies

Multiplicity: (0..*)

Constraint Classes:

Last Updated: 05 October, 2023