Map CAD floor plans to Indoors

Available for an ArcGIS organization licensed with the Indoors extension.

CAD drawings—for example, DWG files from AutoCAD or DGN files from MicroStation—are a common source of vector floor plan information for creating an indoor map. The floor plan import process uses a Microsoft Excel configuration spreadsheet, Config_CAD_Indoors_Template.xlsx, to facilitate the mapping of source CAD layer names to the corresponding Indoors layers and attributes. The Import Floorplans To Indoors Geodatabase geoprocessing tool can import floor plan information for a single floor or a collection of multiple floors and buildings.

Note:

The Config_CAD_Indoors_Template.xlsx spreadsheet is included with the ArcGIS Pro installation, in the Resources\Indoors\MappingFile folder. The spreadsheet contains four sheets that store configuration parameters and metadata about the CAD drawings.

CAD Layer to FC Mapping sheet

The CAD Layer to FC Mapping sheet is for mapping the input CAD layer names to their corresponding output GIS feature classes. Depending on the layers present in your CAD drawing, the Import Floorplans To Indoors Geodatabase geoprocessing tool uses the columns in this sheet in different ways.

CAD Layer to FC Mapping sheet

Indoors feature classColumn name and feature typeDescription

Facilities

FACILITIESFA

Polygon layer defining the extent of all the above-ground floors of a building. A value for FACILITIES or FACILITY_LINES is required.

FACILITY_LINES

Polyline layers defining the extent and edges of all the above-ground floors of a building from which a polygon will be created.

Levels

LEVELS

Polygon layer defining the extent of each floor of a building. A value for LEVELS or LEVEL_LINES is required.

LEVEL_LINES

Polyline layers defining the edges and extent of each floor of a building.

Zones

ZONES

Polygons defining a collection of spaces on a floor. Zones may define security, access, or the extent of building systems, such as HVAC or sprinkler coverage.

Note:

A space may belong to multiple zones.

ZONE_LINES

Polyline layers that define the edges of a collection of spaces on a floor from which a polygon will be created. Zones may define security, access, or the extent of facility systems, such as HVAC or sprinkler coverage.

Zones (ZONE_ID attribute)

ZONE_ID

Annotation layer containing a unique identifier string for the zones.

Zones (NAME attribute)

ZONE_NAME

Annotation layer containing a common name string for the zones.

Sections

SECTIONS

Polygon layer defining the extent of a section. Also referred to as wings, sections represent a collection of spaces that include a logical subdivision of a floor. Unlike in zones, spaces typically belong to only one section, for example, the west wing.

SECTION_LINES

Polylines defining the edges and extent of a section. Also referred to as wings, sections represent a collection of spaces that include a logical subdivision of a floor from which a polygon will be created. Unlike in zones, spaces typically belong to only one section, for example, the west wing.

Sections (SECTION_ID attribute)

SECTION_ID

Annotation layer containing a unique identifier string for the sections.

Sections (NAME attribute)

SECTION_NAME

Annotation layer containing a common name string for the sections.

Units

UNITS

The usable spaces within a building, which often have equipment, occupants, schedules, or other assets associated with them. Spaces are commonly symbolized according to how they are used, for example, Office, Conference Room, or Computer Lab. A value for UNITS or UNITS_LINES is required.

UNIT_LINES

Polylines that define the edges and extent of the usable spaces within a building from which polygons will be created. These often have equipment, occupants, schedules, or other assets associated with them. Spaces are commonly symbolized according to how they are used, for example, Office, Conference Room, or Computer Lab.

Note:

The UNIT_LINES column must contain polyline data if you want to identify doors in the OPENINGS column.

UNIT_ID

Note:

UNIT_ID attribute

Annotation layer containing a unique identifier string for the spaces.

UNIT_NAME

Note:

NAME attribute

Annotation layer containing a common name string for the spaces.

Note:

If no UNIT_NAME layer is given, the tool uses the UNIT_ID value to populate NAME and NAME_LONG fields for Units. UNIT_ID removes any spaces from values. If CAD annotation values have spaces that need to be kept, you must put a layer in the UNIT_NAME column.

UNIT_USE_TYPE

Note:

USE_TYPE attribute

Annotation layer containing a usage string for the spaces.

Details

DETAILS

Detail polylines defining interior details that show the partitioning of spaces and entry and exit locations for each space and building, such as the location of walls, doors, windows, and so on, on an indoor map.

Note:

A temporary feature class that isn't stored.

OPENINGS

Defines door openings that should be closed to create cleaner polygons. For polygon layers that are built from polylines, such as spaces, it identifies which polylines listed in the UNIT_LINES column are doors and should be closed.

Note:

The OPENINGS column must contain data for the Door Close Buffer parameter to successfully merge polylines when the Import Floorplans to Indoors Geodatabase tool is run.

Feature classes with the mapping columns and descriptions

Facilities, levels, zones, sections, or units

If you have polygons in your CAD drawing that define the facilities, levels, zones, sections, or units, you can convert them to corresponding GIS polygons. Using units as an example, the UNITS column is populated with the CAD polygon layer name that defines units as follows:

UNIT column

If you don't have polygons in your CAD drawing, you can specify the polylines that define the edges of the polygon. Again, using units as an example, you no longer have a polygon to map directly, so you use a set of polyline CAD layers that will be used to generate a polygon.

Note:

Be sure to include doors, which will be closed programmatically in the polyline to polygon conversion process as shown in the following image.

UNIT_LINES column with DOOR entry

In this example, the CAD polyline layers I-WALL (purple), A-WALL-EXTR (green), and A-DOOR (orange) define the boundary of the office inside. Other polyline layers such as windows, partial-height walls, or columns may also define the boundary of your spaces, depending on your specific CAD polyline layers.

Defined boundaries in different colors

Doors

When you create polygons from CAD polylines, you have the option of closing and removing the swinging arc of the door polyline features to create clean unit polygons. The Import Floorplans To Indoors Geodatabase geoprocessing tool uses the OPENINGS column to identify which polylines listed in the UNIT_LINES column are doors and should be closed as shown in the following image.

Door column entry

Details

CAD layers show the reflected ceiling plan; HVAC or electrical features are typically omitted, except for facility-management use cases.

Your detail polyline names are CAD-derived, so yours may have different names. Polyline colors are typically in the gray to black spectrum for walls and doors, and light blue for windows, with an approximate 0.5 point thickness.

Details showing wall and door locations

Polyline features, referred to as details in the Indoors schema, are brought in directly.

Detail polyline features

Annotation

CAD annotation contains valuable attributes that you should add to the output GIS unit features. If these are present in your CAD annotation layer, you can specify which annotation layer to map to a GIS attribute. You can bring in the unit identifiers (that is, L1w120) and unit use (that is, Office) using the appropriate spreadsheet columns (annotation can be mapped to any column ending in *ID, *NAME, or *USE_TYPE):

CAD annotations
Note:

If you have CAD annotation that is separated by a delimiter and you want to extract a single string from a specific position, for example, the site.facility.level.unit annotation string with a value of Esri.L.L2.L2E210, use the following format to extract the fourth string position, L2E210, which is delimited by a period (.): A-ANNO-LYR|4|.

Likewise, if your CAD annotation is separated by line breaks instead of character delimiters, use \p instead of the character to extract the text on that line, for example, A-ANNO-LYR|4|\p.

Optionally, if your CAD data includes block annotation, replace the delimiter with {FIELD_NAME} where FIELD_NAME represents the custom field you are referencing in your annotation, for example, A-ANNO-LYR|1|{OFFICE_NAME}.

Complete the CAD Layer to FC Mapping sheet by performing the following steps:

  1. Copy the Config_CAD_Indoors_Template.xlsx template file to the directory where your CAD files are stored.

    The template is included with the ArcGIS Pro installation, in the Resources\Indoors\MappingFile folder.

  2. Open the template and click the CAD Layer to FC Mapping sheet.
  3. Enable editing for the file if necessary.
  4. Complete the CAD Layer To FC Mapping sheet according to the feature classes you want to create from your CAD files.
    Note:

    If you're running the Import Floorplans To Indoors Geodatabase geoprocessing tool on multiple floors or buildings, CAD layer naming must be consistent across all drawings being processed.

  5. Specify whether you have polygons or polylines defining facilities, levels units, and details.

    At a minimum, you should create these features: Facility, Level, Unit, and Details, plus any associated annotation.

    Note:

    List the polyline layer names you want to import to GIS detail polylines.

    You can additionally process zones or sections in your CAD drawing by mapping the layer names in the appropriate spreadsheet fields.

  6. Save the file with a unique name.

Unique ID creation

The Import Floorplans To Indoors Geodatabase tool generates unique IDs for every feature it loads. The IDs are formatted in an additive, hierarchical structure. With this format, you can parse the physical location of any feature.

For example, you can parse a Units feature that has the UNIT_ID = REDLANDS.L.L2.e256 as follows:

  • Site = REDLANDS
  • Facility = L
  • Level = L2
  • Unit = e256

Tip:

The Import Floorplans To Indoors Geodatabase tool gives you the option to use a period, hyphen, or underscore to delineate between each ID portion. Choose the character to use in the spreadsheet when the tool runs.

Each feature class in the Indoors model contains a unique ID field for that specific feature. The feature classes also contain ID fields for parent features that allow features to be linked to the parent location. For example, the Levels feature class has both FACILITY_ID and SITE_ID. This allows a Levels feature to be linked back to the facility it is in and the site location.

Note:

You need to define the SITE_ID, FACILITY_ID, and LEVEL_ID in the Facility Properties sheet and the Level Properties sheet. You should enter complete values for each of these three ID values. Using the example above, FACILITY_ID is REDLANDS.L and LEVEL_ID is REDLANDS.L.L2.

For Details, Units, Sections, and Zones, the last unique portion of the ID is generated in one of two ways:

  • If you enter a value for the corresponding *_ID column in the CAD to FC Mapping sheet, the annotation value from that layer is used.
  • If the *_ID column is not filled out, or no annotation feature is found, the following values are used:
    • For Details: Details<ObjectID value>
    • For Sections: Sections<ObjectID value>
    • For Units: <Name value>
    • For Zones: Zones<ObjectID value>

Facility Properties sheet

The Facility Properties sheet is for metadata about your building, such as the building name, unique ID, street address, number of floors, z-value (elevation and height), and rotation.

Note:

Z-values are important for Indoors. Without z-values in the indoor feature classes, some functionality such as routing from one floor to another may not work properly.

Column name and Feature typeDescription

SITE_ID

A unique identifier string for the site. This should be 50 characters or less.

A value is required.

SITE_NAME

A common name for the site. This should be 100 characters or less.

FACILITY_ID

A unique identifier string for the building. This should be 50 characters or less.

FACILITY_NUMBER

A unique identifier integer for the building.

NAME

The short name for the building. This should be 100 characters or less.

A value is required.

NAME_LONG

The long name for the building. This should be 255 characters or less.

DESCRIPTION

A description of the building. This should be 255 characters or less.

ADDRESS

The address of the building. This should be 255 characters or less.

UNIT

The unit or suite designation of the building. This should be 10 characters or less.

LOCALITY

The city or town of the building. This should be 100 characters or less.

PROVINCE

The state, territory, or province of the building. This should be 50 characters or less.

Note:

Use the country subdivision codes as defined in ISO 3166-2 (Wikipedia).

COUNTRY

The country of the building. This should be two characters or less.

Note:

Use the two-letter country code defined in ISO 3166-1.

POSTAL_CODE

The mail sorting code of the building. This should be 50 characters or less.

DATE_BUILT

The date the building was built.

LEVELS_TOTAL

Total number of floors in the building.

ELEVATION_RELATIVE

The z-value of the base of the building, relative to a flat terrain surface. The value is typically 0.

A value is required.

ELEVATION_ABSOLUTE

The absolute z-value of the base of the building, relative to sea level.

HEIGHT_RELATIVE

The z-value of the top of the building, relative to a flat terrain surface.

A value is required.

HEIGHT_ABSOLUTE

The maximum height of the top of the building, relative to sea level. For example, a 100-meter-tall building with an absolute elevation of 350 meters has an absolute height of 450 meters.

ROTATION

The geographic rotation (left west=0 advancing clockwise) of the building. A valid value range is 0–180. This is used for network creation.

Note:

If the column is left blank, the Minimum Bounding Geometry tool with the Rectangle by Area geometry option is used to calculate the MBG Orientation value, which is used to populate the ROTATION column.

MERGE_LEVELS

Specifies whether to merge the multiple floors into a single building polygon footprint.

  • Y—Joins the fields of the output feature classes of building and floors with building properties to create output feature classes for buildings and floors. The join is created based on FACILITY_ID.
  • N—Lines are not dissolved. For example, building polylines are not dissolved if MERGE_LEVELS is N and CLOSE_DOORS is Y.

To fill in the Facility Properties sheet, complete the following steps:

  1. Open the Config_CAD_Indoors_Template.xlsx template file if necessary.
  2. Click the Facility Properties sheet.
  3. Complete the Facility Properties sheet with all the relevant metadata for your floor plans.
  4. Save the file.

Level Properties sheet

The Level Properties sheet stores metadata about the individual floors in your building. This includes floor identifiers (IDs), floor names, relative elevation information, feature merging options, and door closing functionality.

ColumnDescription

FACILITY_ID

A unique identifier string for the building. This should be 50 characters or less.

Note:

This value should match the FACILITY_ID for the corresponding building on the Facility Properties sheet.

LEVEL_ID

A unique identifier string for the floor. This should be 50 characters or less.

NAME

The common name of the floor. This should be 255 characters or less.

Note:

The NAME value is used to populate the LEVEL_NAME field for the Details, Units, Sections, and Zones feature classes.

A value is required.

NAME_SHORT

The short name of the floor. This should be four characters or less.

Note:

The NAME_SHORT value is used for the Floor Picker in mobile and web apps.

A value is required.

DESCRIPTION

The description of the floor. This should be 255 characters or less.

ACCESS_TYPE

The access type of the floor (such as visitor, employee, or public). This should be 50 characters or less.

LEVEL_NUMBER

An integer representing the floor number for each floor.

VERTICAL_ORDER

An ordinal integer representing the vertical order of each floor.

A value is required.

ELEVATION_RELATIVE

The z-value of each floor, relative to a flat terrain surface. For example, floor 1 is 0 meters and floor 2 is 4.25 meters.

A value is required.

ELEVATION_ABSOLUTE

The absolute z-value of each floor, relative to sea level. For example, floor 1 is 254 meters and floor 2 is 258.25 meters.

HEIGHT_RELATIVE

The height of the top of each floor, relative to the bottom of the floor. For example, if floor 1 is 4.25 meters and floor 2 is 4.25 meters, floor 1 and 2 are the same height.

A value is required.

HEIGHT_ABSOLUTE

The absolute height of each floor, relative to sea level. For example, floor 1 is 258.25 meters and floor 2 is 262.5 meters.

CLOSE_DOORS

Specifies whether doors should be closed to create a single polygon.

  • Y—Yes. Polylines to merge should be identified in the OPENINGS column of the CAD Layer to FC Mapping sheet.
  • N—No

PROCESS

Specifies whether CAD files should be processed.

  • Y—Yes. CAD files will be processed.
  • N—No

To fill in the Level Properties sheet, complete the following steps:

  1. Open the Config_CAD_Indoors_Template.xlsx template file.
  2. Click the Level Properties sheet.
  3. Complete the Level Properties sheet with all the relevant metadata for your floor plans.

    For example, the final CLOSE_DOORS column is used to convert any layers defined as OPENINGS in the CAD Layer to FC Mapping sheet to straight lines, removing the small door-swing polygons that would otherwise need to be merged with the unit to which they belong.

  4. Save the file.

Source Files sheet

The Source Files sheet stores file paths to your CAD drawings and relates each drawing to a level defined on the Level Properties sheet. If the CAD data for a single level resides in multiple drawings that overlay one another, you can define the source path for each of the drawing files and relate them to a single level.

ColumnDescription

SOURCE_PATH

The file path to a source CAD file on the local machine or network.

A value is required.

LEVEL_ID

The unique identifier string for the related level.

A value is required.

Note:

This value must match the LEVEL_ID for the corresponding level in the Level Properties sheet.

To fill in the Source Files sheet, complete the following steps:

  1. Open the Config_CAD_Indoors_Template.xlsx template file.
  2. Click the Source Files sheet.
  3. In the SOURCE_PATH column, list each complete path to your CAD drawing files.
  4. In the LEVEL_ID column, list the unique identifier string for the facility level on which the CAD drawing's features are located.
  5. Save the file.

Related topics