Import IFC To Indoor Dataset (Indoors)

Available with the ArcGIS Indoors Pro or ArcGIS Indoors Maps extension.

Summary

Imports features from an International Foundation Class (IFC) file into an indoor dataset that conforms to the ArcGIS Indoors Information Model. The output of this tool can be used to create floor-aware maps and scenes, as well as to generate an indoor network for routing.

Usage

  • Use this tool to load floor plan data into an Indoors workspace created using the Create Indoor Dataset tool or Create Indoors Database tool.

  • The Target Unit Features, Target Detail Features, Target Facility Features, and Target Level Features parameters must reference feature classes or feature layers that conform to the Indoors model.

    Note:

    The target features must all be from the same file geodatabase, enterprise geodatabase, or feature service.

  • The source IFC data must be georeferenced before running the tool.

    Learn more about georeferencing BIM data in ArcGIS Pro

  • You can run the Extract BIM File Floorplan tool to create floor plan feature classes and use them as an input to this tool. If the Load From Floorplan Layers parameter is checked, only features that are present in the input floor plan layers are loaded to the Indoors workspace. Any selections or definition queries set on the input floor plan layers are honored.

    Note:

    If you are using floor plan layers created by the Extract BIM File Floorplan tool, they must be in the same coordinate system as the input IFC file.

  • Features are imported from the IFC file to the Indoors model according to the following table:

    IFC categoryIndoors model feature class

    Slabs

    Levels

    Spaces

    Units

    The extent of all slabs

    Facilities

    Doors, Columns, Walls, Ramps, Stairs, Windows, Curtain Walls, Furniture, and Structural Columns

    Details

  • The Facility Name parameter populates the NAME field for the imported facility features in the indoor dataset. Keep the following in mind when setting this parameter value:

    • To add the input IFC data as a new facility in an existing indoor dataset, specify a facility name that is not assigned to another facility in the target facility features.
    • To update an existing facility, use the NAME field value for that facility feature in the target facility features.
      Note:

      To update an existing facility feature, the Facility Name parameter value must match the facility feature's NAME field value.

  • If data exists in the locations you set for the target feature parameters, the Facility and Level names in the source IFC file will be compared to the Facility and Level names of the features to determine which features to update.

    • A Facilities feature will be updated if the Facility Name parameter value matches the NAME field value for a target Facilities feature.
    • A Levels feature and its associated Details and Units features will be updated if the BldgLevel field value for a Levels feature in the source IFC file matches the NAME field value for a target levels feature.
    • During an update, field values in fields that are not populated by default in the Facilities, Levels, and Units layers will be preserved. Details features will be deleted and re-added.
    Note:

    If the Facility Name parameter value does not match the NAME field for an existing facility feature, the tool imports the IFC model as a new facility with the specified Facility Name value.

  • The Ground Floor Name parameter determines the ground floor of the building. The vertical order, level number, short name, and z-value for each level in the target Level layer features are derived from this input. The level set as the ground floor is created with a vertical order and z-value of 0. Any levels with an elevation that is less than the identified ground floor are assigned a negative vertical order and z-value, and levels above the ground floor are assigned a positive vertical order and z-value.

  • You can use the Unit Properties Mapping parameter to map additional attributes from the Spaces layer in the source IFC file to existing fields in the target units layer. Fields must exist before you run the tool. It is recommended that you map fields from the source IFC Spaces layer to target fields that have the same data type.

Parameters

LabelExplanationData Type
Input BIM File Workspace

The input IFC workspace.

BIM File Workspace
Target Facility Features

The target facilities feature layer, feature class, or feature service that conforms to the ArcGIS Indoors Information Model and resides in the same workspace as the target levels, units, and details features.

Feature Layer
Facility Name

The common name of the building. If a feature with the same name exists in the target facilities layer, it will be updated, along with all of the associated levels, units, and details features.

String
Target Level Features

The target levels feature layer, feature class, or feature service that conforms to the ArcGIS Indoors Information Model and resides in the same workspace as the target facilities, units, and details features.

Feature Layer
Target Unit Features

The target units feature layer, feature class, or feature service that conforms to the ArcGIS Indoors Information Model and resides in the same workspace as the target facilities, levels, and details features.

Feature Layer
Target Detail Features

The target details feature layer, feature class, or feature service that conforms to the ArcGIS Indoors Information Model and resides in the same workspace as the target facilities, levels, and units features.

Feature Layer
Ground Floor Name

The ground floor of the building. The vertical order of the levels is derived from this input. Any levels with an elevation that is less than the specified ground floor will be assigned a negative vertical order.

String
Unit Properties Mapping
(Optional)

Controls which attribute fields in the Units layer will be populated with field values from the input IFC Spaces layer. The fields must exist before running the tool. It is recommended that you map fields from the input IFC Spaces layer to fields from the Units layer that have the same field type.

Field Mappings
Load From Floorplan Layers
(Optional)

Specifies whether features will be loaded from input floor plan layers created by the Extract BIM File Floorplan tool.

  • Checked—Features will be loaded from the input floor plan layers created by the Extract BIM File Floorplan tool. Any selections set on the input layers will be honored.
  • Unchecked—Features will be loaded from the IFC file. All levels will be loaded and selections will not be honored. This is the default.
Boolean
Input Floorplan Footprint Layer
(Optional)

The Floorplan Footprint feature layer created using the Extract BIM File Floorplan tool. Features in this layer will be used to create features in the target facilities layer.

Feature Layer
Input Floorplan Polygon Layer
(Optional)

The Floorplan Polygon feature layer created using the Extract BIM File Floorplan tool. Features in this layer will be used to create features in the target levels and units layers.

Feature Layer
Input Floorplan Polyline Layer
(Optional)

The Floorplan Polyline feature layer created using the Extract BIM File Floorplan tool. Features in this layer will be used to create features in the target details layer.

Feature Layer

Derived Output

LabelExplanationData Type
Updated Facilities

The updated target facility features.

Feature Layer
Updated Levels

The updated target level features.

Feature Layer
Updated Units

The updated target unit features.

Feature Layer
Updated Details

The updated target detail features.

Feature Layer

arcpy.indoors.ImportIFCToIndoorDataset(in_bim_file_workspace, target_facility_features, facility_name, target_level_features, target_unit_features, target_detail_features, ground_floor_name, {unit_properties_mapping}, {load_floorplan_layers}, {in_floorplan_footprint}, {in_floorplan_polygon}, {in_floorplan_polyline})
NameExplanationData Type
in_bim_file_workspace

The input IFC workspace.

BIM File Workspace
target_facility_features

The target facilities feature layer, feature class, or feature service that conforms to the ArcGIS Indoors Information Model and resides in the same workspace as the target levels, units, and details features.

Feature Layer
facility_name

The common name of the building. If a feature with the same name exists in the target facilities layer, it will be updated, along with all of the associated levels, units, and details features.

String
target_level_features

The target levels feature layer, feature class, or feature service that conforms to the ArcGIS Indoors Information Model and resides in the same workspace as the target facilities, units, and details features.

Feature Layer
target_unit_features

The target units feature layer, feature class, or feature service that conforms to the ArcGIS Indoors Information Model and resides in the same workspace as the target facilities, levels, and details features.

Feature Layer
target_detail_features

The target details feature layer, feature class, or feature service that conforms to the ArcGIS Indoors Information Model and resides in the same workspace as the target facilities, levels, and units features.

Feature Layer
ground_floor_name

The ground floor of the building. The vertical order of the levels is derived from this input. Any levels with an elevation that is less than the specified ground floor will be assigned a negative vertical order.

String
unit_properties_mapping
(Optional)

Controls which attribute fields in the Units layer will be populated with field values from the input IFC Spaces layer. The fields must exist before running the tool. It is recommended that you map fields from the input IFC Spaces layer to fields from the Units layer that have the same field type.

Field Mappings
load_floorplan_layers
(Optional)

Specifies whether features will be loaded from input floor plan layers created by the Extract BIM File Floorplan tool.

  • LOAD_FROM_FLOORPLAN_LAYERSFeatures will be loaded from the input floor plan layers created by the Extract BIM File Floorplan tool. Any selections set on the input layers will be honored.
  • NO_LOAD_FROM_FLOORPLAN_LAYERSFeatures will be loaded from the IFC file. All levels will be loaded and selections will not be honored. This is the default.
Boolean
in_floorplan_footprint
(Optional)

The Floorplan Footprint feature layer created using the Extract BIM File Floorplan tool. Features in this layer will be used to create features in the target facilities layer.

Feature Layer
in_floorplan_polygon
(Optional)

The Floorplan Polygon feature layer created using the Extract BIM File Floorplan tool. Features in this layer will be used to create features in the target levels and units layers.

Feature Layer
in_floorplan_polyline
(Optional)

The Floorplan Polyline feature layer created using the Extract BIM File Floorplan tool. Features in this layer will be used to create features in the target details layer.

Feature Layer

Derived Output

NameExplanationData Type
updated_facilities

The updated target facility features.

Feature Layer
updated_levels

The updated target level features.

Feature Layer
updated_units

The updated target unit features.

Feature Layer
updated_details

The updated target detail features.

Feature Layer

Code sample

ImportIFCToIndoorDataset example 1 (Python window)

The following Python window script demonstrates how to use the ImportIFCToIndoorDataset function in immediate mode.

import arcpy
arcpy.indoors.ImportCADToIndoorDataset('C:/Indoors/AdminBuilding.ifc', 'C:/Indoors/ExampleCampus.gdb/Indoor/Facilities', 'Admin Building',
                                         'C:/Indoors/ExampleCampus.gdb/Indoor/Levels', 'C:/Indoors/ExampleCampus.gdb/Indoor/Units', 
                                         'C:/Indoors/ExampleCampus.gdb/Indoor/Details', '2', '', 
                                         'NO_LOAD_FROM_FLOORPLAN_LAYERS', '', '', '',)
ImportIFCToIndoorDataset example 2 (Python window)

The following stand-alone script demonstrates how to use the ImportIFCToIndoorDataset function.

import arcpy
    
#Set the IFC file to import
in_bim_file_workspace= 'C:/Indoors/AdminBuilding.ifc'

#Set target layers that conform to the ArcGIS Indoors Information model and Facility Name
target_facility_features='C:/Indoors/ExampleCampus.gdb/Indoor/Facilities'
facility_name="Administrative Building"
target_level_features='C:/Indoors/ExampleCampus.gdb/Indoor/Levels'
target_unit_features='C:/Indoors/ExampleCampus.gdb/Indoor/Units'
target_detail_features='C:/Indoors/ExampleCampus.gdb/Indoor/Details'

#Set which floor is the ground floor
ground_floor_name="0"

#Map additional unit attributes from spaces features
unit_properties_mapping='NAME_LONG "Long Name" true true false 255 Text 0 0,First,#,"Spaces",Family,0,255;' \
                            'CUSTOM_FIELD_DEPARTMENT "Department" true true false 255 Text 0 0,First,#,"Spaces",Department,0,255;' \
                            'CUSTOM_FIELD_FILEUPDATE "IFC File Update" true true false 255 Date 0 0,First,#,"Spaces",DocUpdate,0,255;'
    
#Load from floorplan layers created using Extract BIM File Floorplan tool
load_floorplan_layers="LOAD_FROM_FLOORPLAN_LAYERS"
in_floorplan_footprint='C:/Indoors/ExampleCampus.gdb/Floorplan_Dataset/Footprint'
in_floorplan_polygon='C:/Indoors/ExampleCampus.gdb/Floorplan_Dataset/planPolygon'
in_floorplan_polyline='C:/Indoors/ExampleCampus.gdb/Floorplan_Dataset/planPolyline'

#Run the tool
arcpy.indoors.ImportIFCToIndoorDataset_Indoors(in_bim_file_workspace, target_facility_features, facility_name,
                                                target_level_features, target_unit_features, target_detail_features, 
                                                ground_floor_name, unit_properties_mapping, load_floorplan_layers,
                                                in_floorplan_footprint, in_floorplan_polygon, in_floorplan_polyline)

Environments

This tool does not use any geoprocessing environments.

Licensing information

  • Basic: No
  • Standard: No
  • Advanced: Requires ArcGIS Indoors Pro or ArcGIS Indoors Maps

Related topics