Import IFC To Indoor Dataset (Indoors)

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

Summary

Imports features from an .ifc file to 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, Create Indoors Database, or Create Indoor 3D Dataset tool.

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

    Caution:

    Ensure that the BIM data is accurately georeferenced (including any linked Revit models) and the coordinate system of the indoor dataset and indoor 3D dataset match the coordinate system in the associated .wld3 file. Both the horizontal and vertical coordinate system units must match, and any linked Revit models must have the same horizontal and vertical coordinate systems as the host Revit model. Inaccurate georeferencing or mismatched coordinate systems can result in scaling issues for 3D features.

    Learn more about georeferencing BIM data in ArcGIS Pro

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

    Note:

    Target 2D features must all be from the same file geodatabase, enterprise geodatabase, or feature service.

    Target 3D features can be from a different workspace than target 2D features.

  • You can run the Extract BIM File Floorplan tool to create 2D floor plan layers of the BIM model to use 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 indoor dataset according to the following table:

    IFC categoryIndoors model feature class

    The extent of all slabs

    Facilities

    Slabs

    Levels

    Spaces

    Units

    Doors, Columns, Walls, Ramps, Stairs, Windows, Curtain Walls, 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 indoor dataset, specify a value for the Facility Name parameter that does not match the NAME field value for an existing facility feature.
    • To update an existing facility feature in an indoor dataset, use the NAME field value from that facility for the Facility Name parameter.

  • If data exists in the locations you set for the target feature parameters, the Facility and Level names will be compared from the source .ifc file and tool parameters to the target Indoors workspace to determine the 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.
    • 3D features will be deleted and reimported for the selected facility feature.
    Caution:

    Because details features are deleted and reimported during the update workflow, the DETAIL_ID field values change for updated details features. If you have existing 2D and 3D details features, the IDs may become mismatched if you update only 2D features. To keep detail IDs consistent, import 2D and 3D features in the same tool run.

  • The Ground Floor Name parameter defines 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 value. 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 defined 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.

  • Use the Load Roofs parameter to control whether roof elements will be imported and used along with floors features to create Levels features in the Indoors workspace. If the Load Roofs parameter is unchecked, only floors features from the input .ifc file will be used to create Levels features. This is the default.

  • 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.

  • Use the Target Unit 3D Features, Target Detail 3D Features, and Target Facility 3D Features parameters to import features into the Units3D, Details3D, and Facilities3D multipatch feature classes created by the Create Indoor 3D Dataset tool.

    Features will be imported from the input .ifc file into the target 3D layers as follows:

    • Target Unit 3D Features—Multipatch features will be created in the Units3D layer from the Spaces category of the .ifc file. Any attribute field mapping configured for the Unit Properties Mapping parameter will also be applied to the Units3D layer for any matching field names.
    • Target Detail 3D Features—Multipatch features will be created in the Details3D layer from objects in the following categories of the .ifc file: Doors, Columns, Walls, Ramps, Stairs, Windows, Curtain Walls, and Structural Columns.
    • Target Facility 3D Features—Multipatch features will be created in the Facilities3D layer from objects in the ExteriorShell feature class in the BIM file workspace.
    • Symbology is generated based on the symbology of the BIM model.

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 Indoors 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 Indoors 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 Indoors 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 Indoors 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 value. 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 no selections will 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
Target Unit 3D Features
(Optional)

The target Units3D feature layer, feature class, or feature service that conforms to the Indoors model. Multipatch unit features will be created in the target Units3D layer from the Spaces category of the input .ifc file.

Feature Layer
Target Detail 3D Features
(Optional)

The target Details3D feature layer, feature class, or feature service that conforms to the Indoors model. Multipatch detail features will be created in the target Details3D layer from the following categories in the input .ifc file: Doors, Columns, Walls, Ramps, Stairs, Windows, Curtain Walls, and Structural Columns.

Feature Layer
Target Facility 3D Features
(Optional)

The target 3D Facilities feature layer, feature class, or feature service that conforms to the Indoors model. A multipatch facility feature will be created in the target Facilities3D layer from the ExteriorShell category in the input .ifc file.

Feature Layer
Load Roofs
(Optional)

Specifies whether roof features will be imported as levels features.

  • Checked—Roof elements will be loaded from the input .ifc file and used along with floors features to create levels features in the Indoors workspace.
  • Unchecked—Roof features will not be loaded from the .ifc file. This is the default.
Boolean

Derived Output

LabelExplanationData Type
Updated Facilities

The updated target Facilities features.

Feature Layer
Updated Levels

The updated target Levels features.

Feature Layer
Updated Units

The updated target Units features.

Feature Layer
Updated Details

The updated target Details features.

Feature Layer
Updated Units 3D

The updated target 3D Units features.

Feature Layer
Updated Details 3D

The updated target 3D Details features.

Feature Layer
Updated Facilities 3D

The updated target 3D Facilities 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}, {target_unit3d_features}, {target_detail3d_features}, {target_facility3d_features}, {load_roofs})
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 Indoors 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 Indoors 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 Indoors 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 Indoors 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 value. 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 no selections will 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
target_unit3d_features
(Optional)

The target Units3D feature layer, feature class, or feature service that conforms to the Indoors model. Multipatch unit features will be created in the target Units3D layer from the Spaces category of the input .ifc file.

Feature Layer
target_detail3d_features
(Optional)

The target Details3D feature layer, feature class, or feature service that conforms to the Indoors model. Multipatch detail features will be created in the target Details3D layer from the following categories in the input .ifc file: Doors, Columns, Walls, Ramps, Stairs, Windows, Curtain Walls, and Structural Columns.

Feature Layer
target_facility3d_features
(Optional)

The target 3D Facilities feature layer, feature class, or feature service that conforms to the Indoors model. A multipatch facility feature will be created in the target Facilities3D layer from the ExteriorShell category in the input .ifc file.

Feature Layer
load_roofs
(Optional)

Specifies whether roof features will be imported as levels features.

  • LOAD_ROOFSRoof elements will be loaded from the input .ifc file and used along with floors features to create levels features in the Indoors workspace.
  • NO_LOAD_ROOFSRoof features will not be loaded from the input .ifc file. This is the default.
Boolean

Derived Output

NameExplanationData Type
updated_facilities

The updated target Facilities features.

Feature Layer
updated_levels

The updated target Levels features.

Feature Layer
updated_units

The updated target Units features.

Feature Layer
updated_details

The updated target Details features.

Feature Layer
updated_units3d

The updated target 3D Units features.

Feature Layer
updated_details3d

The updated target 3D Details features.

Feature Layer
updated_facilities3d

The updated target 3D Facilities 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', '', '', '', 
                                         'C:/Indoors/ExampleCampus.gdb/Indoor3D/Units3D',
                                         'C:/Indoors/ExampleCampus.gdb/Indoor3D/Details3D',
                                         'C:/Indoors/ExampleCampus.gdb/Indoor3D/Facilities3D', 'LOAD_ROOFS')
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'
target_unit3d_features='C:/Indoors/ExampleCampus.gdb/Indoor3D/Units3D'
target_detail3d_features='C:/Indoors/ExampleCampus.gdb/Indoor3D/Details3D'
target_facilities3d_features='C:/Indoors/ExampleCampus.gdb/Indoor3D/Facilities3D'


#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'
load_roof_layers="LOAD_ROOFS"

#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,
                                                target_unit3d_features, target_detail3d_features, target_facility3d_features, load_roof_layers)

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