Ifd:Ifc naming convention in Ifd

From dev.ifd-library.org

Jump to: navigation, search

To ensure an uniform import and export of Ifc data in Ifd the following naming conventions will have to be followed for anyone wanting to import Ifc data to the Ifd library.

Please remember to always use searchForDuplicates before adding to the Ifd library!

Contents

[edit] Adding the Ifc schema version

Each version of the Ifc schema is treated as a different language in Ifd. This allows for different versions of the Ifc schema to coexist within the library thus enabling visualizations of the differences. If the relevant version of the Ifc schema doesn't exist it needs to be added. Use the addLanguages and set the following values for the IfdLangage attributes:

  • guid - don't add. It will be generated.
  • name_in_english - Use IFC in uppercase
  • name_in_self - Use IFC followed by a space and the version number, e.g: IFC 2x2
  • language_code - Use ifc in small case followed by a minus and the version number in upper case. E.g. ifc-2X2

[edit] Adding Ifc entity types

The naming of entity types from the Ifc schema is done simply by adding the name as it is and setting the name_in_self for the language = the Ifc version. To add an enity from the Ifc schema you need to:

  1. create a new variable of type IfdConcept
    1. Set IfdConcept.concept_type = the concept type. E.g SUBJECT for IfcDoor
    2. Add the new concept to the IfdLibrary by using the function addConcepts
  2. create a new variable of type IfdName
    1. Set IfdName.language.name_in_self = the schema version. E.g = IFC 2x2. Preferably use IfdName.language.guid if you know the GUID for the Ifc schema version.
    2. Set IfdName.name = the entity name. E.g. IfcDoor. (Use mixed case as in the schema)
    3. Set IfdName.name_type = FULLNAME
    4. Add the name to the concept using addNamesToConcept
  3. create a new variable of type IfdDescription
    1. Set IfdDescription.language.name_in_self = the same as for name above.
    2. Set IfdDescription.description = the formal definition of the entity from IAI. Remove any HTML formatting.
    3. Set IfdDescription.description_type = DEFINITION
    4. Add the name to the concept using addDefinitionsToConcept

[edit] Adding Ifc enumeration types

Adding enumeration types is a nearly identical process to adding an entity type, but in step 2.2 do the following:

  • Set IfdName.name = the enumeration type name . (dot) the enumeration name. E.g. :
IfcDoorStyleOperationEnum.SINGLE_SWING_RIGHT

Follow the rest of the steps from Adding Ifc entity types

[edit] Adding Ifc entity attributes

Adding eneumeration types is a nearly identical process to adding an entity type, but in step 2.2 do the following:

  • Set IfdName.name = the entity name . (dot) the attribute name. E.g. :
IfcDoor.OverallHeight

Follow the rest of the steps from Adding Ifc entity types. Not all attributes from Ifc should be added. Only those that have corresponding concepts in the Ifd library.

[edit] Adding Ifc property-sets

Again the steps to perform is nearly identical. The property set itself is treated as a collection of type IfdNest in Ifd. Use the step-by-step guide for Adding Ifc entity types with the following differences:

  • In 1.1 Set IfdConcept.concept_type = NEST
  • In 2.2 Set IfdName.name = the name of the propertyset E.g. :
Pset_WasteTerminalTypeGullySump

Use mixed case like in the filename for the corresponding xml property-set file. Follow the rest of the steps from Adding Ifc entity types.

[edit] Adding properties from Ifc property-sets

Again the steps to perform is nearly identical. Each property will be of type IfdProperty in Ifd. Use the step-by-step guide for Adding Ifc entity types with the following differences:

  • In 1.1 Set IfdConcept.concept_type = PROPERTY
  • In 2.2 Set IfdName.name = the name of the propertyset . (dot) name of the property E.g. :
Pset_WasteTerminalTypeGullySump.NominalSumpLength

Use mixed case equal to the name used in the xml property-set file. Follow the rest of the steps from Adding Ifc entity types.


Created by: Lars Bjørkhaug - SINTEF building and infrastructure