Import floor plans from IFC files

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

The Industry Foundation Classes (IFC) format is commonly used for 2D and 3D architectural models and can be used to populate the ArcGIS Indoors Information Model. The Import IFC To Indoor Dataset tool imports features from an .ifc file to an indoor dataset. You can run the Extract BIM File Floorplan tool before running the Import IFC To Indoor Dataset tool to import a subset of data from an .ifc file.

Once you create the indoor dataset using the Create Indoor Dataset tool or create the Indoors geodatabase using the Create Indoors Database tool, you can use the Import IFC To Indoor Dataset tool to load floor plans from an .ifc file into your Indoors workspace. You can then manually load additional features, events, and occupant data.

The conversion 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. Do the following before running the Import IFC To Indoor Dataset tool:

  1. Project the data with a suitable projection file (.prj).
  2. Georeference the IFC format file to create a .wld3 file.
    Note:

    The .ifc file must be georeferenced in 3D and have an associated .wld3 file before running the tool.

Learn more about georeferencing BIM data in ArcGIS Pro

Run the Extract BIM File Floorplan tool

Before running the Import IFC To Indoor Dataset tool, you can run the Extract BIM File Floorplan tool to first create the floor plan feature classes containing 2.5D features that you want to load into the Indoors model. 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 created 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 optionally creating the floor plan feature classes, run the Import IFC To Indoor Dataset tool to import IFC floor plans to the Indoors model.

The tool creates features in the Indoors model as shown in the following table:

IFC categoryIndoors model feature class

Slabs

Levels

Spaces

Units

Full extent of all slabs

Facilities

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

Details

Fields in the tables below are populated in the Indoors workspace by default when you run the Import IFC To Indoor Dataset tool. You can map additional properties from the Spaces layer to existing fields in the Units feature class using the Unit Properties Mapping parameter. 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

FieldDescription

FACILITY_ID

Populated with a GUID.

NAME

Populated based on the Facility Name parameter 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

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

Populated with 0 for the ground floor number. Levels above the ground floor are assigned sequential positive vertical order field values. Levels below the ground floor are assigned a sequential negative vertical order.

Levels with a vertical order of 0 are displayed by default in a floor-aware map.

NAME_SHORT

Populated with 1 for the ground floor level. Levels above the ground floor are assigned sequential positive name short field values. Levels below the ground floor are assigned a sequential negative level number.

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 NAME_LONG 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 Category 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 Category Mapping parameter.

LEVEL_ID

Populated with the same GUID as the LEVEL_ID field in the Levels layer.

AREA_GROSS

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

Details

FieldDescription

DETAIL_ID

Populated with a GUID.

USE_TYPE

Populated with the category.

LEVEL_ID

Populated with the same GUID as the LEVEL_ID field in the Levels layer.

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. Click the Add Data button Add Data and add the Facilities, Levels, Units, and Details feature classes 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.