Introduction to Mapping

The Planon Connect for Open BIM solution translates the content of complex BIM models into usable information for the facility management software, without user intervention.

The solution supports 2 types of BIM models:

  • Autodesk Revit models (.rvt);

  • IFC models (.ifc).

The structure of BIM models differs per type of BIM model. In addition, a BIM model is also constructed differently by each author. It is impossible to draw up regulations so that everyone works according to exactly the same structure. That is why the solution provides a generic translation process based on a specific mapping table.

  • A specific mapping table makes it possible for each customer to apply their own specific translation from BIM to FM.

  • The solution also provides a standard mapping table, in which the most obvious mappings have already been set.

  • The purpose of the mapping table is to translate a BIM parameter into a parameter known to Planon.

  • The mapping table is an Excel file. This Excel file consists of simple tables, in which the translation of a BIM parameter into a Planon parameter can be easily specified.

In this chapter the basic aspects of such a mapping table are explained.

The Excel file consists of 5 tabs. Each tab contains a table with a specific objective. The paragraphs below describe these objectives and how to fill in the table.

From BIM parameters to FM parameters

Objects in BIM models contain parameters. Some parameters are predefined. Others can be specifically applied to a project.

The solution provides for the translation of the BIM parameters into FM parameters based on predefined mappings. See also the chapter Parameter mapping in this document. The parameter mappings are built on tab 1.Mapping.

The mapping table is based on the CoBieLite.xml structure.

Parameter mapping

A number of characteristics are required for the mapping. These are listed below.

  • General:

    • “ApplicationType” describes the application for which the mapping applies. This value is provided by the application and filters the mappings that apply. The default value is “FM”. “ApplicationType” is a mandatory value.

    • Important: The values in the Excel mapping file must exactly match the specified words. This means no spaces or extra characters are allowed after the words, including trailing spaces. For example, “FM “ will fail and “FM” will work.

  • Retrieving data from BIM:

    • “Type” and “JSONNode” describe the level and the parameter from which the value from the BIM model is retrieved. The parameter “JSONNode” is a mandatory value.
  • Writing data to the CoBieLite.xml:

    • “Position”, “XML level” and “PlanonXMLNode” describe the level and the parameters in which the value from the BIM model is stored. These parameters are in accordance with the structure of the CobieLite.xml. Planon has a detailed description of the definition of the structure: About BIM Exchange. The parameters “Type”, “XML level” and “PlanonXMLNode” are mandatory values.

    • “AttributeFieldType” describes the data type of the PlanonXMLNode. In principle, values ​​are always returned as “String”, unless the “AttributeFieldType” forces otherwise. Allowed values ​​are:

      • AttributeDateValue

      • DecimalValue

      • AttributeStringValue

    • “UnitType” describes the unit of the PlanonXMLNode. This value is important for the “AttributeFieldType” “DecimalValue”. Allowed values ​​are:

      • Meters
    • “Position” describes whether a value is written back in the XML tag or as a property. The following values ​​are supported:

      • CLASS: the value is written as an xml.attribute in the xml.element

      • ATTRIBUTE: the value is written as xml.property in a separate xml.element called “Attributes”

      • NAME of the CLASS: the value is written as xml.property under the specified class.

Example

Return the value for the height of all objects.

The name of the BIM parameter of object 1 is “Height”;

The name of the BIM parameter of object 2 is “Unconnected Height”;

The name of the BIM parameter of object 3 is “preHeight”.

The rule is:

ApplicationTypeTypeXML levelJSONNodePlanonXMLNodeAttributeFieldTypeUnitTypePositionField Type
FMFloorsFloorsPLN_FloorNameFloorDescriptionFloors
FMFloorsFloorsElevationFloorElevationValueDecimalValuemetersFloors
FMSpacesSpaceAttributesCOBie.Space.UsableHeightCOBie.Space.UsableHeightAttributeDecimalValuemetersAttributeReference

The first line searches the BIM model for the BIM parameter “PLN FloorName” and retrieves the corresponding value. This value is returned to the FM parameter “FloorDescription” which is categorized under Floors | Floors.

The second line searches the BIM model for the BIM parameter “Elevation” and retrieves the corresponding value. This value is returned as a decimal to the FM parameter “FloorElevationValue” with the unit “meters” which is categorized under Floors | Floors.

The third line searches the BIM model for the BIM parameter “COBie.Space.UsableHeight” and retrieves the corresponding value. This value is returned as a decimal to the FM parameter “COBieSpaceUsableHeight” with the unit “meters” which is categorized under Spaces | SpaceAttributes.

For IFC, the mapping is linked to how Autodesk Platform Services translates the IFC into JSON nodes. The rule for IFC is:

ApplicationTypeTypeXML levelJSONNodePlanonXMLNode
FMProject InformationFacilityItem.GUIDFacility externalID
FMFloorsFloorsGeneral.PLN_FloorCodePLN_FloorCode
FMSpacesSpacesGeneral.PLN_SpaceNumberSpaceNumber
FMSpacesSpaceAttributesItem.NameCOBie.Space.Name
FMBaseAssetAssetsGeneral.PLN_AssetCodeAssetName
FMBaseAssetAssetTypeIFC.GLOBALIDAssetType externalID
FMBaseAssetAssetsGeneral.PLN_SpaceNumberAssetLocationDescription
FMInventoryLocationAssignmentAssetSpaceAssignmentsGeneral.PLN_FloorCodeFloorName

There is a hard-coded mapping active for IFC nodes, which translates the Type to IFC nodes.

TypeIFCNODE
Project InformationIFCPROJECT (IfcProject)
FloorsIFCBUILDINGSTOREY (IfcBuildingStorey)
SpacesIFCSPACE (IfcSpace)
BaseAssetIFCASSET (Any other IFC type like IFCFlowSegment, IfcDistributionPort, IfcCovering etc.)

Interpretation of quantities

BIM models can be less structured. For example, multiple objects can be provided with different parameters that all mean the same thing.

In addition, there is the use case that only a parameter value needs to be retrieved that is determined by the classification of the object.

The solution provides for retrieving the correct parameter values ​​based on predefined mappings. These are called “QTY mappings” in this document. The QTY mappings are constructed on tab “2. Map QTY DIM”.

The QTY mappings support the following 2 use cases:

  1. Retrieving parameter values ​​based on a series of parameters;

  2. Retrieving parameter values ​​based on a search filter

Use case 2 can be combined with use case 1.

QTY mapping

The following 4 columns apply to the QTY mapping:

  • “Parameter”, describes the name of the interpretation. This name refers to the specified name in the “PlanonXMLNode”. This parameter always starts with the value:

    • “Map_” for use case 1

    • “Map_QTY, ” for use case 2

  • “SubType”, only applies to use case 2 and describes the value for looking up the correct search filter. SubType always starts with “MAP_”;

  • “MapByRef”, only applies to a combination of use case 2 with use case 1 and refers to the name of the QTY mapping intended for use case 1;

  • “MapRule”, applies to use case 1 and describes the series of BIM parameters in which the correct value is looked up. The series of parameters is distinguished by “||”.

Example

Example use case 1: Retrieve parameter values ​​based on a set of parameters. Return the value for the height of all objects.

The name of the BIM parameter of object 1 is “Height”;

The name of the BIM parameter of object 2 is “Unconnected Height”;

The name of the BIM parameter of object 3 is “pre_Height”.

The rule is:

ParameterSubTypeMapByRefMapRule (JSONNode)
Map_HeightUnconnected Height || pre_Height || Height

The solution first searches for ‘Unconnected Height”. If the parameter exists, the value is returned. If the parameter does not exist, it searches for “pre_Height” and so on.

Example use case 2: Retrieving parameter values ​​based on a search filter.

All objects have BIM parameter “PLN_BaseassetUnit”. This parameter is provided with a value, for example “M1” or “M2“ and represents the desired unit for the object.

All objects have BIM parameters “Perimeter” and “Area”, which are provided with a value.

The rule is:

ParameterSubTypeMapByRefMapRule (JSONNode)
Map_QTY, PLN_BaseassetUnitMAP_M1Perimeter
Map_QTY, PLN_BaseassetUnitMAP_M2Area

The solution searches for the value in the BIM parameter “PLN_BaseassetUnit” and gets the value “M2” back. Based on this value, the solution searches for the value in the BIM parameter “Area”.

Example combination of use case 2 and 1. Retrieving parameter values ​​in a series of BIM parameters based on a search filter.

All objects have BIM parameter “PLN_BaseassetUnit”. This parameter is provided with a value, for example “M1” or “M2“ and represents the desired unit for the object.

The objects can have different BIM parameters, namely “pre-Perimeter”, “Perimeter”, “pre-Area” or “Area”, which may or may not be provided with a value.

The rule is:

ParameterSubTypeMapByRefMapRule (JSONNode)
Map_Perimeterpre_Perimeter || Perimeter
Map_Areapre_Area || Area
Map_QTY, PLN_BaseassetUnitMAP_M1Map_Perimeter
Map_QTY, PLN_BaseassetUnitMAP_M2Map_Area

The solution searches for the value in the BIM parameter “PLN_BaseassetUnit” and gets the value “M2” back. Based on this value, the solution first searches for the value in the “pre_Area”. If there is a value here, this value is returned. Otherwise, the solution searches further in the BIM parameter “Area”.

Scope

The solution basically translates the entire BIM model to FM. A restriction can also be applied.

The solution provides for filtering the objects based on predefined mappings. These are called “Include mappings” in this document. The “Include mappings” are built on tab “3.Include”.

Include mapping

  • The following 4 columns apply to the “Include mappings”:

  • “FilterGroup” describes whether: in this column the filter rules can be linked to each other via an “AND” or “OR” relationship. Linking rules with both “AND” and “OR” relationships is not possible.

  • “FilterObject” describes the property that is being filtered. Possible properties are:

    • RevitCategory;

    • RevitCategoryType (RevitCategoryType = Model Category collects all elements in a Model Category);

    • RevitFamilyName;

    • RevitFamilyType;

    • RevitParameter. The name of the parameter can be specified here, such as “Assembly Code”;

  • “FilterOperator” describes the operator of the filter. Allowed operators are:

    • =

    • <> (NotEquals)

    • Contains

    • NotContains

    • BeginsWith

    • EndsWith

    • HasValue (FilterValue column remains empty)

    • HasNoValue (FilterValue column remains empty)

    • <

    • <=

    • >

    • >=

    • *

  • “Filtervalue” describes the value to filter on. This column always has a value unless the operator is equal to “*”, “HasValue” or “HasNoValue”.

Example

Based on the filter mapping below, all objects in the BIM model are retrieved. This is the default mapping.

FilterGroupFilterObjectFilterOperatorFilterValue
Objectid*

Based on the filter mapping below, only the walls and floors from the Revit model are retrieved.

FilterGroupFilterObjectFilterOperatorFilterValue
RevitCategory=Walls
ANDRevitCategory=Floors

Based on the filter mapping below, all objects for which the “Assembly Code” parameter has a value are returned.

FilterGroupFilterObjectFilterOperatorFilterValue
RevitParameter: PLN_BaseassetCodeHasValue

For IFC, the following parameter filters should be applied:

FilterGroupFilterObjectFilterOperatorFilterValue
IFCParameter: IFCASSET.properties.General.PLN_BaseassetCodeHasValue

Space definitions

A BIM model can contain different categories of spaces. In Revit, the category Rooms and the category Spaces exist. These categories can be present together in a BIM model, but also separately.

The solution provides for filtering the correct space types based on predefined mappings. These are called “Space mappings” in this document. The “Space mappings” are built on tab “4.SpaceCategory”.

Space mapping

For the “Space mapping”, only one column is applicable, in which the value of the desired category is included. Only one value can be included.

Examples

Based on the space mapping below, all spaces of the type Rooms are retrieved from the Revit model. This is the standard mapping:

SpaceCategory
Rooms

Based on the space mapping below, all spaces of the type Spaces are retrieved from the Revit model:

SpaceCategory
Spaces

For IFC, the following setting is required:

SpaceCategory
Rooms

Language

The solution contains some built-in parameters. In particular for supporting Japanese customers it is necessary to specify a mapping for these built-in parameters.

The solution provides for mapping the built-in parameters. These are called “Language mappings” in this document. The “Language mappings” are built on tab “5.Language”.

Language mapping

The following 2 columns apply to the language mapping:

  • “EN” describes the parameter of the target table.

  • “Native” describes the parameter of the BIM model.

Example

Based on the language mapping below, various built-in parameters from Japanese BIM models are translated to the desired target parameters. This is the standard mapping in the case of Japanese models, but the same logic would apply to other native languages. Important to mention that this just applies to built-in parameters, not to user-defined parameters. Those parameters should be used directly in the mapping-table.

ENNative
properties.Identity Data.Building Story
properties.Identity Data.Type Nameproperties.識別情報.タイプ名
properties.General.PLN_FloorCodeproperties.一般.PLN_FloorCode
properties.General.PLN_FloorNameproperties.一般.PLN_FloorName
properties.General.PLN_SpaceNameproperties.一般.PLN_SpaceName