Import floor plans from IFC files

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

The IFC (Industry Foundation Classes) format is commonly used for 2D and 3D architectural models and can be used to create features in an Indoors workspace. The Import IFC To Indoor Dataset tool imports features from an .ifc file to an indoor workspace that conforms to the ArcGIS Indoors Information Model.

Once you have created an indoor workspace, you can use the Import IFC To Indoor Dataset tool to load floor plans from an .ifc file into the Indoors workspace. You can then manually load additional features, events, and occupant data.

If you created a 3D indoor dataset using the Create Indoor 3D Dataset tool, you can optionally load 3D objects from an .ifc file into an indoor 3D dataset.

The import workflow involves the following high level steps:

  1. Georeference the floor plans.
  2. Optionally, run the Extract BIM File Floorplan tool.
  3. Run the Import IFC To Indoor Dataset tool.
  4. Inspect the output.
  5. 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 dataset.

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.

Learn more about georeferencing BIM files in ArcGIS Pro

Run the Extract BIM File Floorplan tool

Before running the Import IFC To Indoor Dataset tool, you can optionally run the Extract BIM File Floorplan tool to create the floor plan feature classes containing 2D floor plan features. If you run this tool first, you can use the resulting floor plan layers as an input to the Import IFC To Indoor Dataset tool. Benefits to creating these layers include the following:

  • You can inspect 2D features before populating the Indoors model and ensure that everything is modeled as expected.
  • You can create 2D features for a subset of levels in the model and only populate the Indoors model with these levels. Only features that exist in the floor plan layers are imported if they are provided as inputs to the Import IFC To Indoor Dataset tool.
  • You can add floor plan layers to a map and select a subset of features to add to the Indoors model. Selections made on input floor plan layers are honored.
Caution:

Ensure that you georeference the .ifc file before running the Extract BIM File Floorplan tool. Any floor plan layers used as an input for the Import IFC To Indoor Dataset tool must have the same spatial reference as the .ifc file.

Run the Import IFC to Indoor Dataset tool

After georeferencing the BIM data and, if necessary, creating the floor plan feature classes, run the Import IFC To Indoor Dataset tool to import IFC floor plans to the Indoors model.

Import 2D data

The tool creates features in the Indoors model feature classes from objects in IFC categories according to the following table:

IFC categoryIndoors model feature class

Full extent of all slabs

Facilities

Slabs and, optionally, Roofs

Levels

Spaces

Note:

The tool does not import Areas spaces as units.

Units

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

Details

Fields in the tables in the sections below are populated in the Indoors workspace by default when you run the Import IFC To Indoor Dataset tool. You can map more properties from the Spaces layer to existing fields in the Units layer using the Unit Properties Mapping parameter. If you are mapping properties to a custom field in the Units layer, you must create the custom field before running the tool.

Facilities

FieldDescription

FACILITY_ID

Populated with a GUID.

NAME

Populated based on the Facility Name parameter value provided in the Import IFC To Indoor Dataset tool.

Levels

FieldDescription

LEVEL_ID

Populated with a GUID.

NAME

Populated with the name of the occupiable level in the source .ifc 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. The unit of measure is determined based on the horizontal coordinate system of the target layer.

FACILITY_ID

Populated with the same GUID as the FACILITY_ID field in the Facilities layer.

Units

FieldDescription

UNIT_ID

Populated with a GUID.

USE_TYPE

Populated with the LongName field value from the space feature by default. You can change which field from the Spaces features is mapped to this field using the Unit Properties Mapping parameter.

NAME

Populated with the NAME field value of the space feature by default. You can change which field from the Spaces features is mapped to this field using the Unit Properties Mapping parameter.

LEVEL_ID

This field is populated with the LEVEL_ID field value of the associated level.

AREA_GROSS

Calculated based on the unit geometry. The unit of measure is determined based on the horizontal coordinate system of the target layer.

ASSIGNMENT_TYPE

Set to None by default. You can update this for units that are not assignable after import.

Details

FieldDescription

DETAIL_ID

Populated with a GUID.

USE_TYPE

Populated with the IFC category.

LEVEL_ID

This field is populated with the LEVEL_ID field value of the associated level.

Import 3D data

You can optionally 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 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 from IFC data as shown in the following table:

IFC dataIndoors 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

Spaces—The footprint of Spaces objects in the IFC file is used for generating 3D unit features.

Units3D

IFC categories—Doors, Columns, Walls, Ramps, Stairs, Windows, Curtain Walls, Structural Columns

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

FieldDescription

FACILITY_ID

Populated with the GUID of the FACILITY_ID field in the Facilities layer.

NAME

Populated with the value entered for the Facility Name parameter in the Import IFC to Indoor Dataset tool.

Units3D

FieldDescription

UNIT_ID

Populated with the UNIT_ID field value of the corresponding 2D units feature.

USE_TYPE

Populated with the LongName field value from the Spaces layer in the source .ifc file by default. You can change which field from the Spaces features is mapped to this field using the Unit Properties Mapping parameter if the same field exists in both the Units and Units3D layers.

NAME

Populated with the LongName field value from the Spaces layer in the source .ifc file by default. You can change which field from the Spaces features is mapped to this field using the Unit Properties Mapping parameter if the same field exists in both the Units and Units3D layers.

LEVEL_ID

This field is populated with the LEVEL_ID field value of the associated level.

AREA_GROSS

Calculated based on the unit geometry. The unit of measure is determined based on the horizontal coordinate system of the target layer.

SOURCE_ID

Populated with the GlobalId field value from the Spaces layer in the source .ifc file.

Details3D

FieldDescription

DETAIL_ID

Populated with the DETAIL_ID field value of the corresponding 2D units feature.

USE_TYPE

Populated with the category value of the source object within IFC categories.

LEVEL_ID

This field is populated with the LEVEL_ID field value of the associated level.

SOURCE_ID

Populated with the GlobalId value of the source object in the .ifc file.

Inspect the output

Inspect the output features that were created by the Import IFC To Indoor Dataset tool in the indoor dataset.

Complete the following steps to inspect the output features:

  1. On the Map tab, in the Layer group, click the Add Data button Add Data and add the Facilities, Levels, Units, and Details layers from an indoor dataset to the same map where you loaded the IFC floor plans.
    Note:

    To switch between floors in a facility, you can enable the floor filter by configuring the map as floor aware.

  2. Verify that all the expected features appear in the indoor dataset.

    You can troubleshoot issues with the following solutions:

    IssueSolution

    Errors or gaps in the facility and levels features

    Gaps in the facilities and levels features can occur when slabs do not extend across the entirety of a level. This typically occurs in places where there are transitions, such as stairways or elevators. This can cause issues when generating an indoor routable network. Modify slab features in the source .ifc file 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 slab. Ensure that details and units are associated with a slab in the source model and rerun the tool.

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

  4. Save the map.
  5. If you imported 3D data, inspect the data on each floor by doing the following:
    1. On the Insert tab, click the New Map drop-down arrow, and choose New Local Scene.
    2. Click the Add Data button Add Data and add the Units3D, Details3D, and Facilities3D layers from the indoor 3D dataset, and the Levels layer from the indoor dataset.
    3. 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.

Related topics