Available with the ArcGIS Indoors Pro or ArcGIS Indoors Maps extension.
Building Information Modeling (BIM) files from Autodesk Revit are commonly used for 2D and 3D architectural modeling and can be used to create features in an Indoors workspace. The Import BIM To Indoor Dataset tool imports features from a Revit file into an Indoors workspace.
You can manually load additional features, events, and occupant data to an Indoors workspace as desired.
If you created a 3D indoor dataset using the Create Indoor 3D Dataset tool, you can optionally load 3D objects from a Revit model into an indoor 3D dataset.
Note:
You can use the Import BIM To Indoor Dataset tool to import one level or multiple levels of a building contained in a single Revit file. You can also use the same tool to import linked Revit models of the same building.
The import workflow consists of the following high-level steps:
- Georeference the Revit model.
- Run the Import BIM To Indoor Dataset tool.
- Inspect the output.
Each step is described in the sections below.
Georeference the floor plans
It is important to accurately georeference floor plans, as any errors in scaling or geographic location may result in incorrect calculations for locations of indoor features. The BIM file must be georeferenced before importing BIM data into an indoor workspace.
Note:
The BIM file must be georeferenced in 3D and have associated .prj and .wld3 files before running the tool. If you are importing linked Revit models along with the host Revit model, ensure that all linked Revit models are accurately georeferenced and have the same coordinate system as the host Revit model.
Run the Import BIM To Indoor Dataset tool
After georeferencing the Revit model, run the Import BIM To Indoor Dataset tool to import the building data to the indoor dataset.
Import 2D data
The Import BIM To Indoor Dataset tool converts the 3D Revit model to 2D elements and creates features in the Indoors model. By default, the tool imports features using relative elevation, which assigns a z-value of 0 to the level specified for the Ground Floor Name parameter, with other levels being assigned z-values based on their relationship to the ground level. Optionally, you can import levels and their associated features to the same z-values displayed in the BIM file properties window by unchecking the Set Ground Elevation To Zero option.
Features are created in the Indoors model feature classes from objects in Revit categories according to the following table:
Revit category | Indoors model feature class |
---|---|
Footprint |
Facilities |
Floors and, optionally, Roofs | Levels |
Rooms, Stairs, Shaft Openings | Units |
Doors, Ramps, Stairs, Stair supports, Stair Landings, Columns, Structural Columns, Walls, Curtain Wall Panels, Windows | Details |
Fields in the table below are populated in the indoor dataset by default when you run the Import BIM To Indoor Dataset tool. You can map more properties from the Rooms layer (located in the Architectural dataset in the source Revit file) to existing fields in the Units feature class. If you are mapping properties to a custom field in the Units feature class, you must create the custom field before running the tool.
Facilities
Field | Description |
---|---|
FACILITY_ID | Populated based on the Facility ID parameter in the Import BIM To Indoor Dataset tool. Each feature in the Facilities feature class must have a unique facility ID. The facility ID cannot contain spaces. For example, you can use the building name in the Project Information section of the Footprint layer in the Revit file, replacing any spaces in the name with underscores. |
NAME | Populated based on the Facility Name parameter in the Import BIM To Indoor Dataset tool. This is the most commonly used field for naming facility features. |
Levels
Field | Description |
---|---|
LEVEL_ID | A smart key that is based on the FACILITY_ID field value and the name of the occupiable level in the source Revit file. |
NAME | Populated with the name of the occupiable level in the source Revit file. |
LEVEL_NUMBER | This field is populated with 1 for the ground floor level. Levels above the ground floor are assigned sequential positive level number field values. Levels below the ground floor are assigned a sequential negative level number. |
VERTICAL_ORDER | This field is populated with 0 for the ground floor level. This is also calculated for other levels based on their relationship to the selected ground floor. Levels with an elevation that is less than the identified ground floor are assigned a negative vertical order. Levels with a vertical order of 0 are displayed by default in a floor-aware map. |
NAME_SHORT | Defines a short name for a feature. This field is populated with 1 for the ground floor level. Levels above the ground floor are assigned sequential positive short names. Levels below the ground floor are assigned a sequential negative short name. |
AREA_GROSS | Calculated based on the level geometry and the value of the Area Unit of Measure parameter. |
Units
Field | Description |
---|---|
UNIT_ID | A smart key based on the LEVEL_ID field value in the indoors model and the room number and ExtId in the source Revit file. |
USE_TYPE | Populated with the field selected in the Rooms Use Type Field parameter of the Import BIM To Indoor Dataset tool. If no value is provided, this field is populated with the room name from the source Revit file. Note:The USE_TYPE field has a maximum length of 50. Values longer than 50 characters will be truncated. |
NAME | Populated with the room number from the source Revit file. |
LEVEL_ID | This field is populated with the LEVEL_ID field value of the associated level. |
AREA_GROSS | Calculated based on the level geometry and the value of the Area Unit of Measure parameter. |
ASSIGNMENT_TYPE | Set to None by default. You can update this for units that are not assignable after import. |
Details
Field | Description |
---|---|
DETAIL_ID | A smart key based on the LEVEL_ID field value in the indoors model and the room number and ExtId in the source Revit file. A smart key based on the LEVEL_ID field value in the indoors model and the architectural design category of the feature and ExtId in the source Revit file. |
USE_TYPE | Populated with the architectural design category of the feature in the source Revit file. |
LEVEL_ID | This field is populated with the LEVEL_ID field value of the associated level. |
Import 3D data
You can use the parameters in the 3D Features section to import features into the Units3D, Details3D, or Facilities3D multipatch layers created using the Create Indoor 3D Dataset 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.
The tool creates multipatch features in the Indoors 3D dataset as shown in the following table:
Revit data | Indoors 3D feature class |
---|---|
ExteriorShell—A single feature representing the building exterior. The ExteriorShell feature class is created in the BIM file workspace in ArcGIS Pro based on elements in the BIM file that are defined as exterior features. | Facilities3D |
Rooms—The footprint of Rooms objects in the Revit file is used for generating 3D unit features. | Units3D |
Doors, Ramps, Stairs, Stair supports, Stair Landings, Columns, Structural Columns, Walls, Curtain Wall panels, and Windows | Details3D |
If you run the tool and do not include values for the Target Facility 3D Features, Target Unit 3D Features, and Target Details 3D Features parameters, you can run the tool again to add 3D data to the Indoors model.
Fields in the tables below are populated in the Indoors 3D dataset if you use the Target Unit 3D Features and Target Detail 3D Features parameters when you run the tool. You can map additional properties from the Spaces layer to fields in the Units3D feature class using the Unit Properties Mapping parameter if the same field exists in both the Units and Units3D feature classes.
Facilities3D
Field | Description |
---|---|
FACILITY_ID |
Populated with the value entered for the Facility ID parameter. |
NAME | Populated with the value entered for the Facility Name parameter in the Import BIM to Indoor Dataset tool. |
Units3D
Field | Description |
---|---|
UNIT_ID | A smart key based on the LEVEL_ID field value in the indoors model and the room number and ExtId in the source Revit file. |
USE_TYPE | Populated by the field selected for the Rooms Use Type Field parameter of the Import BIM To Indoor Dataset tool. If no value is provided, this field is populated with the room name from the source Revit file. |
NAME | Populated with the room number from the source Revit file. |
LEVEL_ID | This field is populated with the LEVEL_ID field value of the associated level. |
AREA_GROSS | Calculated based on the level geometry and the value of the Area Unit of Measure parameter. |
SOURCE_ID | Populated with the ExtId value from the Revit file. |
Details3D
Field | Description |
---|---|
DETAIL_ID | A smart key based on the LEVEL_ID field value in the indoors model and the room number and ExtId in the source Revit file. |
USE_TYPE | Populated with the architectural design category of the feature in the source Revit file. |
LEVEL_ID | This field is populated with the LEVEL_ID field value of the associated level. |
SOURCE_ID | Populated with the ExtId value from the Revit file. |
Inspect the output
Inspect the output features that were created by the Import BIM To Indoor Dataset tool in the Indoors workspace.
- Click the Add Data button and add the Facilities, Levels, Units, and Details feature classes from an indoor dataset to the same map where you loaded the Revit floor plans.
Note:
To switch between floors in facilities, you can enable the floor filter by configuring the map as floor aware.
- Verify that all the levels you chose in the Floors To Import parameter appear in the indoor dataset.
You can use the solutions in the table below to troubleshoot if you see either of the following issues:
Issue Solution Errors or gaps in the facility and levels features
Gaps in the facility and levels features can occur when floor features are modeled in a CAD drawing that is linked to the source Revit model. Ensure that the floor features are modeled in the Revit model and rerun the tool.
Gaps in the facilities and levels features can also occur when floors do not extend across the entirety of a level. This happens commonly in places where there are transitions, such as stairways or elevators. This can cause issues when generating an indoor routable network. Modify floor features in the source Revit model or use editing tools in ArcGIS Pro to ensure that levels and facilities features appropriately bound the units features.
Errors or gaps in the details or units features
Gaps in the details and units features can occur when the features aren’t associated with a floor. Ensure that details and units are associated with a floor in the source Revit model and rerun the tool.
- If you imported the floor plan data into an Indoors workspace created with the Create Indoors Database tool, review the USE_TYPE value of the space features in the Units feature class to identify the spaces that should not be directly assignable to occupants through the Indoor Space Planner app. Set the ASSIGNMENT_TYPE value of those spaces to Not Assignable.
The following are examples of space types that are typically not assignable to occupants or used to define hot desk or office hotel use areas:
- Lobbies
- Circulation areas
- Common areas
- Restrooms
- Break rooms
- Save the map.
- If you imported 3D data, inspect the data on each floor by doing the following:
- On the Insert tab, click the New Map drop-down arrow, and choose New Local Scene.
- Click the Add Data button and add the Units3D, Details3D, and Facilities3D layers from the indoor 3D dataset, and the Levels layer from the indoor dataset.
- Configure the scene as floor-aware and use the floor filter to inspect the data on each floor.
Once you load the floor plans to the indoor dataset or Indoors geodatabase, you can load additional features, events, and occupant data.