Log In   View a printable version of the current page.
Associate Classification (FP)
Added by Kjetil Espedokken, last edited by Brendan McFarlane on Sep 27, 2006  (view change)
Labels: 
(None)


Associate Classification

Provides for the association of a classification with one or more objects (occurrences) or property definitions (product types).

The IFC classification capability has been designed to enable any structured classification to be captured and associated to a type or occurrence entity. This includes published multi-facetted classification systems such as Uniclass, BSAB, Omniclass, JClass as well as older systems such as SfB, CAWS, Masterformat, Uniformat, DIN etc. Additionally, local classification systems can be fully defined and referenced using IFC.

The IFC classification model allows for the association of a classification notation, or reference to a classification notation, to one or more:

  • objects or property definitions.
  • materials.
  • constraints. 

Concept of Associating Classification to Objects

Objects are classified by attaching a classification (either light weight classification reference or a fully defined facet within a classification table) by means of a relationship IfcRelAssociatesClassification. It is used to apply an IfcClassificationReference or IfcClassificationNotation  to an object or an object type and property set through its relation to IfcRoot (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. However a where rule at the IfcRelAssociates prohibits relationships from having associated classifications.


Figure 1: Associating a classification

Classification Notation

In IFC, any object can be classified (subject to the rule identified above). using the IfcClassificationNotation entity. An IfcClassificationNotation is a notation used from published reference (which may be either publicly available from a classification society or is published locally for the purposes of an organization, project or other purpose).

A classification notation may be developed using various notation facets. A facet is a part of the actual notation but which has a specific meaning. For instance, it may be appropriate to classify an item by owning actor (represented by A=Architect) and by an entry from a classification table such as CI/SfB (represented by 210 for external wall). This gives a classification as A210.

All classifications of an object that are contained within the IFC model are made through the IfcClassificationNotation class. For a given object, the IfcRelAssociatesClassification class makes the connection between the IfcObject (abstract superclass:

IfcObject <- IfcRelAssociatesClassification -> IfcClassificationNotation.

A classification notation can only bring together facets from the same classification system or source. Bringing together notation facets from different sources within the same classification notation is not allowed.

However, an object may have multiple classifications 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.

Classification Notation Facet

Modern classification systems (such as Uniclass, BSAB etc.) allow for multi-faceted classification. This is achieved using IfcClassificationNotationFacet 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.

Classification Item

An IfcClassificationItem is a class of classification notations used. Note that the term 'classification item' is used in preference to the more usual (but deprecated) term 'table' for improved flexibility. For example, the classification item "L681" in Uniclass may be used to contain all subsequent notation facets within that class of classifications which has the title "Proofings, insulation"(e.g. L6811, L6812, L6813 etc.).

Classification Item Relationship

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.

IfcClassificationItem provides the ability to identify location in a classification hierarchy (so as not to be identified as table, section etc. but as a generalizations of these terms).


Figure 2 : Example of a hierarchical classification system

The whole of the classification hierarchy can now be exposed through the IFC Model. This is achieved by providing the recursive relationship IfcClassificationItemRelationship. As a further restriction; a classification hierarchy cannot contain any instance of IfcClassificationItem more than once.

An IfcClassificationItemRelationship enables the hierarchical structure of a classification system to be exposed through its ability to contain related classification items and to be contained by a relating classification item. IfcClassificationItem'_s can be progressively decomposed using the _IfcClassificationItemRelationship such that the relationship always captures the information about the parent level (relating) item and the child level (related) items of which there can be many. The following example shows how this could be achieved for the Uniclass system.


Figure 3 : Example of building a classification system in IFC2x

The inverse relationships from IfcClassificationItem to IfcClassificationItemRelationship enable information about the relationship to be recovered by the items concerned so that they are also aware of the decomposition. The cardinality of the inverse relationship is that an IfcClassificationItem can be the classifying item in maximum one relationship and can be a classified item in maximum one relationship. This reflects typical classification approaches that use strict hierarchical decomposition (or taxonomy) and do not have matrix relationships.

Classification System

Each classification item belongs to an IfcClassification. This provides the means to identify the classification system being used. IfcClassification has attributes that define its source, edition and name.

  • Name - identifies what would usually be considered to be the name of the classification system such as CI/SfB, BSAB, CAWS, Masterformat, Uniformat etc.
  • Edition - provides a version identification.
  • EditionDate - identifies the date at which the edition became operational.
  • Source - identifies the publishing reference of the classification system (e.g. for Uniclass, the source would be RIBA)

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.

Classification Referencing

The IFC model includes a means to reference a classification through the IfcClassificationReference class. This 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.

An IfcClassificationReference is a reference into a classification system or source (see IfcClassification). An optional inherited "ItemReferenced" key is also provided to allow more specific references to classification items (or tables) by type.

Lightweight Classification

The IfcClassificationReference can be used as a form of 'lightweight' classification through the 'ItemReference' attribute inherited from the abstract IfcExternalReference class. In this case, the 'ItemReference' could take (for instance) the Uniclass notation "L6814" which, if the classification was well understood by all parties and was known to be taken from a particular classification source, would be sufficient. This would remove the need for the overhead of the more complete classification structure of the model.

However, it is not recommended that this lightweight method be used in cases where more than one classification system is in use or where there may be uncertainty as to the origin or meaning of the classification.

Referencing from an External Source

Classifications of an object may be referenced from an external source rather than being contained within the IFC model. This is done through the IfcClassificationReference class.

Results

Classification associated with the object type or object occurrence

Description Entity/Pset/Functional Part MAN REC OPT
Specify the object types or occurrences to which the classification is to be associated. Any subtype of IfcRoot may have an associated classification other than an IfcRelationship. This means that both product types and occurrences can be classified.
IfcObject (subtypes)
OR
IfcPropertyDefinition (subtypes)
   
Determine whether full classification is to be associated or whether lightweight classification using a reference is to be used. IfcClassificationNotationSelect      
For associating a full classification:
       
For each facet of the classification to be applied, determine the notation value of the facet. IfcClassificationNotationFacet.NotationValue à IfcLabel    
Assign the facets to the classification notation as a list
IfcClassificationNotation.NotationFacets à IfcClassificationNotationFacet    
Associate the classification notation to the object(s). See below
       
Define the classification item hierarchy
The classification hierarchy may be defined so as to be able to declare the complete classification system used. Generally, where standard or published classification systems are used, this should not be necessary (reference to the classification system itself as defined below should be sufficient). However, where a local classification system is used, it may be appropriate to declare the complete classification system to advise the receiver of the information of the classification structure.
       
Set the name of the classification item within the hierarchy IfcClassificationItem.Title à IfcLabel    
Identify the notations from within a classification item that are used. IfcClassificationItem.Notation à IfcClassificationNotationFacet    
Set the classification system from which the classification item is drawn IfcClassificationItem.ItemOf à IfcClassification    
IF a classification item hierarchy is to be declared        
Declare the classification item as the parent item in a hierarchical classification structure IfcClassificationItemRelationship.RelatingItem à IfcClassificationItem    
Declare a set of classification items as the child items in a hierarchical classification structure IfcClassificationItemRelationship.RelatedItems à IfcClassificationItem    
         
For associating a lightweight reference classification:
Note that when defining a lightweight reference classification, at least one of the attributes below must be asserted. For simple classification, asserting a name provides a means of classifying an object without having to break the value down into facets.
       
Determine the location from which the classification is referenced. This can be either human readable or computer interpretable. For electronic location, it is normally given as an URL location string, however other ways of accessing external references may be established in a local application scenario.
IfcClassificationReference.Location à IfcLabel    
Set an identifier for the referenced item in the classification source. The internal reference can provide a computer interpretable pointer into electronic source.
IfcClassificationReference.ItemReference à IfcIdentifier    
Set a name to further specify the reference.
The name can provide a human readable identifier (which does not necessarily need to have a counterpart in the internal structure of the document). It can be used to allocate the actual classification value.
IfcClassificationReference.Name à IfcLabel    
Associate the classification reference to the object(s). See below
       
Define the classification system used
Information about the classification system used may be provided.
       
Identify the source (or publisher) for the classification IfcClassification.Source à IfcLabel    
Identify the edition or version of the classification system from which the classification notation is derived IfcClassification.Edition à IfcLabel    
Identify the date on which the edition of the classification used became valid.
NOTE: The indication of edition may be sufficient to identify the classification source uniquely but the edition date is provided as an optional attribute to enable more precise identification where required.
IfcClassification.EditionDate à IfcLabel    
Identify the name or label by which the classification used is normally known IfcClassification.Name à IfcLabel    
Associate the classification to the objects
       
Associate the classification as the relating classification within the association relationship
Note that WHERE rule 1 in the EXPRESS language specification forbids the assignment of a material to a substraction feature (such as an opening) or to a virtual element. This is logical since such features and elements specifically define the absence of material.
IfcRelAssociatesClassification.RelatingClassification à IfcClassificationNotationSelect    
Associate the objects as the related items within the association relationship IfcRelAssociatesClassification.RelatedObjects à IfcRoot <subtypes>    
Assert general attributes for the relationship
       
Set the global unique identifier for the relationship IfcRelAssociatesClassification.GlobalId à IfcGloballyUniqueId    
Assert the owner history of the relationship IfcRelAssociatesClassification.OwnerHistory à fp_apply_owner_history    
Set a name to the relationship IfcRelAssociatesClassification.Name à IfcLabel    
Provide a description of the relationship IfcRelAssociatesClassification.Description à IfcText    
  • IFC Entities Required
    • IfcClassification
    • IfcClassificationItem
    • IfcClassificationItemRelationship
    • IfcClassificationNotation
    • IfcClassificationNotationFacet
    • IfcClassificationReference
    • IfcConstraint
    • IfcConstraintClassificationRelationship
    • IfcExternalReference
    • IfcMaterial
    • IfcMaterialClassificationRelationship
    • IfcRelAssociates
    • IfcRelAssociatesClassification
    • IfcRoot
  • IFC Datatypes Required
    • IfcClassificationNotationSelect
    • IfcGloballyUniqueId
    • IfcIdentifier
    • IfcLabel
    • IfcText
  • IFC Functions Required
    • -
  • IDM Functional Parts Required
    • fp_apply_owner_history
    • fp_select_date_time

EXPRESS-G

EXPRESS Schema

SCHEMA FP_ASSOCIATE_CLASSIFICATION;

  TYPE IfcGloballyUniqueId = STRING (22) FIXED;
  END_TYPE;

  TYPE IfcIdentifier = STRING;
  END_TYPE;

  TYPE IfcLabel = STRING;
  END_TYPE;

  TYPE IfcText = STRING;
  END_TYPE;

  TYPE IfcClassification_NotationSelect = SELECT
    (IfcClassificationNotation,
     IfcClassificationReference);
  END_TYPE;

  ENTITY IfcExternalReference
    ABSTRACT SUPERTYPE;
      Location      : OPTIONAL IfcLabel;
      ItemReference : OPTIONAL IfcIdentifier;
      Name          : OPTIONAL IfcLabel;
    WHERE
      WR1 : EXISTS(ItemReference) OR EXISTS(Location) OR EXISTS(Name);
  END_ENTITY;

  ENTITY IfcClassificationReference
    SUBTYPE OF(IfcExternalReference);
      ReferencedSource : OPTIONAL IfcClassification;
  END_ENTITY;

  ENTITY IfcClassification;
      Source   : IfcLabel;
      Edition  : IfcLabel;
      EditionDate         : OPTIONAL fp_select_date_time;
      Name     : IfcLabel;
    INVERSE
      Contains : SET OF IfcClassificationItem FOR ItemOf;
  END_ENTITY;

  ENTITY IfcClassificationItem;
      Notation            : IfcClassificationNotationFacet;
      ItemOf              : OPTIONAL IfcClassification;
      Title               : IfcLabel;
    INVERSE
      IsClassifiedItemIn  : SET [0:1] OF IfcClassificationItemRelationship FOR RelatedItems;
      IsClassifyingItemIn : SET [0:1] OF IfcClassificationItemRelationship FOR RelatingItem;
  END_ENTITY;

  ENTITY IfcClassificationNotationFacet;
      NotationValue : IfcLabel;
  END_ENTITY;

  ENTITY IfcClassificationItemRelationship;
      RelatingItem : IfcClassificationItem;
      RelatedItems : SET [1:?] OF IfcClassificationItem;
  END_ENTITY;

  ENTITY IfcClassificationNotation;
      NotationFacets : SET [1:?] OF IfcClassificationNotationFacet;
  END_ENTITY;

  ENTITY IfcMaterial;
      Name         : IfcLabel;
    INVERSE
      ClassifiedAs : SET [0:1] OF IfcMaterialClassificationRelationship FOR ClassifiedMaterial;
  END_ENTITY;

  ENTITY IfcMaterialClassificationRelationship;
      MaterialClassifications : SET [1:?] OF IfcClassification_NotationSelect;
      ClassifiedMaterial      : IfcMaterial;
  END_ENTITY;

  ENTITY IfcRoot
    ABSTRACT SUPERTYPE;
      GlobalId     : IfcGloballyUniqueId;
      Name         : OPTIONAL IfcLabel;
      Description  : OPTIONAL IfcText;
      OwnerHistory : fp_apply_owner_history;
    UNIQUE
      UR1 : GlobalId;
  END_ENTITY;

  ENTITY IfcRelAssociates;
      RelatedObjects : SET [1:?] OF IfcRoot;
    WHERE
      WR1 : SIZEOF(QUERY(temp <* RelatedObjects |
            NOT(('IFC2X2_FINAL.IFCOBJECT' IN TYPEOF(temp)) 
            OR ('IFC2X2_FINAL.IFCPROPERTYDEFINITION' IN TYPEOF(temp)))
            )) = 0;
  END_ENTITY;

  ENTITY IfcRelAssociatesClassification
    SUBTYPE OF(IfcRelAssociates);
      RelatingClassification : IfcClassification_NotationSelect;
  END_ENTITY;

  ENTITY IfcConstraint
    ABSTRACT SUPERTYPE;
      Name             : IfcLabel;
      Description      : OPTIONAL IfcText;
      ConstraintSource : OPTIONAL IfcLabel;
      UserDefinedGrade : OPTIONAL IfcLabel;
    INVERSE
      ClassifiedAs     : SET OF IfcConstraintClassificationRelationship FOR ClassifiedConstraint;
    WHERE
      WR11 : (ConstraintGrade <> IfcConstraintEnum.USERDEFINED) OR
             ((ConstraintGrade = IfcConstraintEnum.USERDEFINED) AND EXISTS(SELF\IfcConstraint.UserDefinedGrade));
  END_ENTITY;

  ENTITY IfcConstraintClassificationRelationship;
      ClassifiedConstraint   : IfcConstraint;
      RelatedClassifications : SET [1:?] OF IfcClassification_NotationSelect;
  END_ENTITY;

  ENTITY fp_apply_owner_history;
  END_ENTITY;

  ENTITY fp_select_date_time;
  END_ENTITY;

END_SCHEMA;

Powered by Atlassian Confluence, the Enterprise Wiki. (Version: 2.1.3 Build:#408 Jan 23, 2006) - Bug/feature request - Contact Administrators