Skip to content

Mapping

IFC Mapping Configuration

Mapping for the import and export of IFC properties is configured via the configuration.json file. This mapping file is bundled within the application and read from the suite's resources. To apply configuration changes, the suite must be redeployed.

This mapping file links various entities in a Building Information Modeling (BIM) system to corresponding properties, types, and actions for integration with the target system.

Root properties

  • SITEID: The identifier for the physical site.
  • SYSTEMID: Identifier for the system.
  • ROOT: A top-level identifier within the Maximo hierarchy
  • markLocationsAsDeleted: A boolean flag to specify whether locations not present in the IFC import should be marked as deleted in the target system.

Example:

  "SITEID": "HD",
  "SYSTEMID": "DEMO",
  "ROOT": "DEMO-ROOT",
  "markLocationsAsDeleted": true,

Classes

The classes array specifies the BIM classes that will be mapped to the target system. For each BIM class, the allowed actions and types are specified:

  • name: The name of the IFC class (must match the pattern IFC[A-Z]+, i.e. be a valid IFC class).
  • actions: CRUD operations that are allowed for the class. Can include "CREATE" and "UPDATE"
  • types: Specifies the corresponding mapping type(s) in the target system. Possible values are "LOCATION" and "ASSET".
  • assetType: (Optional) Specifies the asset type. The corresponding type must be configured in the target system to be applied correctly.

Example:

  "classes": [
    {
      "name": "IFCBUILDINGSTOREY",
      "types": ["LOCATION"],
      "actions": ["CREATE", "UPDATE"]
    },
    {
      "name": "IFCSPACE",
      "types": ["LOCATION", "ASSET"],
      "actions": ["CREATE", "UPDATE"],
      "assetType": "RAUM"
    },
    {
      "name": "IFCDOOR",
      "types": ["ASSET"],
      "actions": ["CREATE", "UPDATE"],
      "assetType": "UNBESTIMMT"
    },
    {
      "name": "IFCWINDOW",
      "types": ["ASSET"],
      "actions": ["CREATE", "UPDATE"],
      "assetType": "FENSTER"
    }
  ],

Mappings

The mappings object outlines how BIM properties (from IFC files) should be mapped to fields in the target system. Each property is defined as key value pair, where the key specifies the name of the Maximo attribute, and the value, i.e. the object defines its properties:

  • fileId: Refers to the Maximo attribute that holds the file name for the imported entity
  • name: The name of the IFC property or attribute
  • length: (Optional) An integer value specifying the maximum length of a property
  • unique: (Optional) Specifies if the property is used as unique identifier of an entity. It must be made sure that the property actually returns unique values. Each type (i.e. "LOCATION" and "ASSET") must have one unique property.
  • propertyType: This defines the type of the property or attribute within the IFC file. There are two main categories:

    • attribute: These are part of the actual IFC entity, typically representing core data associated with the entity itself. Valid attributes are NAME, LONGNAME and PARENT.
    • property: These are properties defined within a list associated with an IFC entity, often stored in a more structured property set.

    Technical Background

    • attribute: NAME and LONGNAME are attributes of the IFC element while PARENT is generally defined by IFCRELAGGREGATES within the IFC file.

      • NAME and LONGNAME:

        Example:

        #8510=IFCSPACE('2XbISGnVX9Y86p6fAiU84b',#5,'301',$,$,#8513,#8470,'Technology center',.ELEMENT.,$,$);

        Here, NAME is 301 and LONGNAME Technology center

      • PARENT:

        Example:

        #9210=IFCRELAGGREGATES('1bx$jiKd53ihWDAbb7dj6E',#5,$,$,#32,(#36));

        #32=IFCBUILDING('1S$$2bTo5DRxGLB1mPTjFI',#5,'Building',$,$,#35,$,$,.ELEMENT.,$,$,$);

        #36=IFCBUILDINGSTOREY('1fyqmlrXn8BPrzxypBzOwE',#5,'3rd storey',$,$,#39,$,$,.ELEMENT.,9.65);

        Here, the child-parent relationship is established between the entities with local-ID #32 (parent) and #36 (child).

    • property:

      • A property is generally defined by IFCRELDEFINESBYPROPERTIES within the IFC file.

        Example:

        #8510=IFCSPACE('2XbISGnVX9Y86p6fAiU84b',#5,'301',$,$,#8513,#8470,'Technology center',.ELEMENT.,$,$);

        #8538=IFCRELDEFINESBYPROPERTIES('3qLl9vH257QQg9RhHm8zGj',#5,$,$,(#8510),#8537);

        #8537=IFCPROPERTYSET('2f6EB5BWj7Fx68SLs3IUMF',#5,'Properties',$,(#8514,#8515,#8516,#8517,#8518,#8519,#8520,#8521,#8522,#8523,#8524,#8525,#8526));

        #8526=IFCPROPERTYSINGLEVALUE('Object name',$,IFCTEXT('Room'),$);

        Here, the property with local-ID #8526, name Object name, and value Room are associated with the IFC element local-ID #8510 via the nested relationships: IFCRELDEFINESBYPROPERTIES, IFCPROPERTYSET, and IFCPROPERTYSINGLEVALUE.

Example:

"mappings": {
  "LOCATION": {
    "fileId": "BIMROOMNAME",
    "PARENT": {
      "name": "PARENT",
      "propertyType": "attribute",
      "length": 16
    },
    "LOCATION": {
      "propertyType": "attribute",
      "name": "NAME",
      "length": 16,
      "unique": true
    },
    "DESCRIPTION": {
      "name": "LONGNAME",
      "propertyType": "attribute"
    },
    "FM_GFLAECHE": {
      "propertyType": "property",
      "name": "GrossFloorArea"
    },
    "FM_NUTZUNGSART": {
      "propertyType": "property",
      "name": "Allfa Nutzungsart (Bezeichnung)"
    }
  },
  "ASSET": {
    "fileId": "MODELID",
    "LOCATION": {
      "name": "PARENT",
      "propertyType": "attribute",
      "length": 16
    },
    "DESCRIPTION": {
      "name": "NAME",
      "propertyType": "attribute"
    },
    "STARTDESCRIPTION": {
      "name": "Allright_Bauteil_ID",
      "propertyType": "property",
      "unique": true
    }
  }
}