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 floor-aware 2D maps and 3D scenes for use in floor-aware apps, as well as to generate an indoor network for routing.

Usage

  • You can use this tool to load floor plan data into an indoor dataset created using the Create Indoor Dataset tool or an Indoors geodatabase created using the Create Indoors Database tool.

  • 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 value will be 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 Indoors model.

    Note:

    You can also use a dataset from the Indoors geodatabase (created using the Create Indoor Database tool), which has additional attributes that will be populated by this tool.

  • The Ground Floor Name parameter determines the ground floor of the building. The vertical order, 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 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 without a Building Name parameter value, the FACILITY_ID and NAME fields will be 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 will be 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 will be 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 will be imported as a part of a new facility with the specified Building Name value.

  • The Room Category Field parameter defines the field from the Floorplan_Polygon feature layer that will be 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 will be used.

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

  • Use the Area Unit of Measure parameter to specify the units for the AREA_GROSS field in the Levels and Units feature classes.

Parameters

LabelExplanationData Type
Input BIM Floorplan Polygon 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 will be assigned a negative vertical order.

String
Building Name
(Optional)

The unique building name that will be 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 will be populated with the name of the input source file.

String
Room Category Field
(Optional)

The field from the Floorplan_Polygon feature layer that will be 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 will be used.

String
Floors To Import
(Optional)

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

String
Area Unit of Measure
(Optional)

Specifies the unit of measure that will be used for the area fields in the Levels and Units feature classes.

  • Square Meters —The area unit will be square meters.
  • Square Feet —The area unit will be square feet. This is the default.
String

Derived Output

LabelExplanationData Type
Updated Indoor Dataset

The updated Target Indoor Dataset.

Feature Dataset

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})
NameExplanationData 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 will be assigned a negative vertical order.

String
building_name
(Optional)

The unique building name that will be 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 will be populated with the name of the input source file.

String
room_category_field
(Optional)

The field from the Floorplan_Polygon feature layer that will be 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 will be used.

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

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

String
area_unit_of_measure
(Optional)

Specifies the unit of measure that will be used for the area fields in the Levels and Units feature classes.

  • SQUARE_METERSThe area unit will be square meters.
  • SQUARE_FEETThe area unit will be 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\Indoor',
                                        '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\Indoor'
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