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.
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 containingClassificationTable
)
- The Id of the containing
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 theClassificationSystem
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 toname + " " + 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 owningClassificationSystem
which should be the same as theParent.Id
property of theClassificationTable
.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
Target
ClassificationOwnsSubClassifications RelationshipClass
A relationship used to indicate that one classification specializes another classification
Base Class: BisCore:ElementOwnsChildElements
Strength: Embedding
Strength Direction: Forward
Source
Target
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
Target
ClassificationSystemOwnsClassifications RelationshipClass Deprecated
DEPRECATED: Identifies classifications directly owned by a classification system
Base Class: BisCore:ElementOwnsChildElements
Strength: Embedding
Strength Direction: Forward
Source
Target
ElementHasClassifications RelationshipClass
Assigns Classifications to Elements
Base Class: BisCore:ElementRefersToElements
Strength: Referencing
Strength Direction: Forward
Source
Target
Last Updated: 13 May, 2024