Import BIM To Indoor Dataset (Indoors)

Available for an ArcGIS organization licensed with the Indoors extension.

Summary

Imports features from a BIM file into an indoor dataset.

This tool imports features directly from a BIM file into an indoor dataset that conforms to the ArcGIS Indoors Information Model. The output of this tool can be used to create 2D maps and 3D scenes for use in floor-aware apps, as well as to generate an indoor network for routing.

Usage

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

    Learn more about adding BIM data to ArcGIS Pro

  • The Input BIM Floorplan Polygon Layer parameter is the Floorplan_Polygon feature layer from the Floorplan dataset in the source BIM file.

    • The tool uses the Floorplan_Polygon layer to construct the Levels and Units features.
    • Based on the Input BIM Floorplan Polygon Layer parameter value, the tool accesses additional layers from the same Floorplan dataset to construct the indoor dataset. The Footprint layer is used to construct the Facilities features and the Floorplan_Polyline layer is used to construct the Details features.
  • The Target Indoor Dataset parameter value must be an indoor dataset containing Facilities, Levels, Units, and Details feature classes that conform to the ArcGIS Indoors Information Model.

  • The Ground Floor Name parameter determines the ground floor of the building. The vertical order, relative elevation, level number, and z-value for each level in the target indoor dataset are derived from this input. Any levels with an elevation that is less than the identified ground floor are assigned a negative vertical order.

    Note:
    • You do not need to import the floor you set as the ground floor to the indoor dataset.
    • Only occupiable levels are accepted as inputs for this parameter.
    • The absolute elevation for each level in the target indoor dataset is derived from the z-coordinates of the floor features in the source BIM file. This is used to determine the ABSOLUTE_ELEVATION field value for the Levels, Units, and Details features. The ABSOLUTE_ELEVATION field value for the Facilities features is set based on the absolute value of the floor feature provided for the Ground Floor Name parameter.

  • The Building Name parameter is used to populate the FACILITY_ID and NAME fields for the Facilities features in the indoor dataset. If the tool is run with an unspecified Building Name parameter value, the FACILITY_ID and NAME fields are populated with the Bldg_Name field value from the Footprint layer in the source BIM file. If the Bldg_Name field is null or empty, the fields are populated with the name of the source BIM file.

  • If data exists in the indoor dataset, the Facility and Level names in the source BIM file are compared to the Facility and Level names in the indoor dataset to determine the features to replace. If the Building Name parameter value matches the NAME field value of a Facilities feature, the facility is replaced. If the BldgLevel field value for a levels feature in the source BIM file matches the NAME field value for a Levels feature in the indoor dataset, the Level and associated Details and Units features are replaced.

    Note:

    If the Building Name parameter value does not match the NAME field for the Facilities layer in the indoor dataset, features in the source BIM file are imported as a part of new facility with the specified Building Name value.

  • The Room Category Field parameter defines the field from the Floorplan_Polygon feature layer that is used to populate the USE_TYPE field of the Units feature class in the target dataset. If no field is provided, the RoomName field value from the Floorplan_Polygon layer is used.

  • The Floors To Import parameter defines the floors in the input BIM file that are imported. If the selected floors exist in the target dataset, they are updated, along with any associated Details and Units features. If no floors are provided, all floors from the BIM file are imported and updated.

  • The Area Unit of Measure parameter allows you to specify the units used for the AREA_GROSS and AREA_NET fields in the Facilities, Levels, and Units feature classes.

Syntax

arcpy.indoors.ImportBIMToIndoorDataset(in_bim_floorplan_layer, target_indoor_dataset, ground_floor_name, {building_name}, {room_category_field}, {floors_to_import}, {area_unit_of_measure})
ParameterExplanationData Type
in_bim_floorplan_layer

The Floorplan_Polygon feature layer from the source BIM file that has been added to the current map.

Feature Layer
target_indoor_dataset

The target indoor dataset that conforms to the ArcGIS Indoors Information Model and contains Facilities, Levels, Units, and Details feature classes.

Feature Dataset
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 are assigned a negative vertical order.

String
building_name
(Optional)

The unique building name assigned to the output Indoors features. The default value is the Bldg_Name field value from the input BIM file. If the field is null or empty, this parameter is populated with the name of the input source file.

String
room_category_field
(Optional)

The field from the Floorplan_Polygon feature layer that is used to populate the USE_TYPE field for the Units feature class in the target indoor dataset. If no field is provided, the RoomName field value from the Floorplan_Polygon layer is used.

String
floors_to_import
[floors_to_import,...]
(Optional)

The floors in the input BIM file that are imported to the target indoor dataset. If no floors are provided, all floors are imported.

String
area_unit_of_measure
(Optional)

Specifies the unit of measure used for the area fields in the Facilities, Levels, and Units feature classes.

  • SQUARE_METERSArea is defined in square meters.
  • SQUARE_FEETArea is defined in square feet. This is the default.
String

Derived Output

NameExplanationData Type
updated_indoor_dataset

The updated Target Indoor Dataset.

Feature Dataset

Code sample

ImportBIMToIndoorDataset example 1 (Python window)

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

import arcpy
arcpy.indoors.ImportBIMToIndoorDataset(r'C:\ExampleCampus.rvt\Floorplan\Floorplan_Polygon', 
                                        r'C:\Indoors\ExampleCampus.gdb\Indoors',
                                        'LEVEL 01',
                                        'Building_A',
                                        'Category',
                                        ['BASEMENT', 'LEVEL 01', 'LEVEL 02'],
                                        'SQUARE_FEET')
ImportBIMToIndoorDataset example 2 (stand-alone script)

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

# Name: ImportBIMToIndoorDataset_example2.py
# Description: Imports features from a BIM file into the indoor dataset

import arcpy

# Set tool parameters 
in_bim_floorplan_fc = r'C:\ExampleCampus.rvt\Floorplan\Floorplan_Polygon'
arcpy.management.MakeFeatureLayer(in_bim_floorplan_fc, 'in_bim_floorplan_layer')

target_indoor_dataset = r'C:\Indoors\ExampleCampus.gdb\Indoors'
ground_floor_name = 'LEVEL 01'
building_name = 'Building_A'
room_category_field = 'Category'
floors_to_import = ['BASEMENT', 'LEVEL 01', 'LEVEL 02']
area_unit_of_measure = 'SQUARE_FEET'

# Run the tool
arcpy.indoors.ImportBIMToIndoorDataset('in_bim_floorplan_layer', target_indoor_dataset,
                                       ground_floor_name, building_name,
                                       room_category_field, floors_to_import,
                                       area_unit_of_measure)

Environments

Licensing information

  • Basic: Requires Indoors
  • Standard: Requires Indoors
  • Advanced: Requires Indoors

Related topics