Available for an ArcGIS organization licensed with the Indoors extension.
The Import Floorplans To Indoors Geodatabase tool takes a configuration file as input. The configuration file is a Microsoft Excel workbook that contains information the tool needs to locate your CAD files, import CAD floor plan data, and convert the imported data into features and attributes in the indoor feature classes.
A template configuration file is included with the ArcGIS Pro installation and is located under <installation location>\Program Files\ArcGIS\Pro\Resources\Indoors\MappingFile\Config_CAD_Indoors_Template.xlsx. Make a copy of the template configuration file for use in your project.
Tip:
Before updating the configuration spreadsheet, it may be helpful to add your CAD drawings to the map and become familiar with the CAD layer names and content, if you are not already.
To set up the configuration file, complete each sheet as follows:
Map CAD layers to feature classes
The CAD Layer to FC Mapping worksheet maps the CAD layers in your CAD files to their corresponding features and attributes in your indoor feature classes.
The Import Floorplans To Indoors Geodatabase tool can generate polygon features from CAD polygon or CAD polyline layers. For example, if your CAD drawing contains a polygon layer defining units (offices, hallways, and other navigable spaces), populate the UNITS column with the name of the CAD polygon layer:
Alternatively, if your CAD drawing contains several polyline layers that together define the boundary edges of units, populate the UNIT_LINES column with the names of the CAD polyline layers:
Populate the CAD Layer to FC Mapping sheet as follows:
Note:
The columns related to zones and sections are only applicable to users of the Indoors geodatabase (created using the Create Indoors Database tool). If you are using the Indoors geodatabase, you have the option to populate these columns, and the Import Floorplans To Indoors Geodatabase tool will honor them.
- In the FACILITIES column, list the CAD polygon layer or layers that define the shape and extent of the facilities.
Alternatively, if your CAD layers contain polylines that define the extent and edges of a facility, list them in the FACILITY_LINES column.
Note:
Later in the configuration there is an option to define the shape and extent of a facility by merging level polygons. Even if you select that option, you must still populate either the FACILITIES or FACILITY_LINES column. If you choose to define a facility’s shape and extent using merged level polygons, this column is ignored.
- In the LEVELS column, list the CAD polygon layer or layers that define the extent of individual levels.
This may include a ground floor, basement, mezzanine, and other spaces that have the same z-value in a building. Alternatively, if your CAD layers contain polylines, list them in the LEVEL_LINES column.
- In the UNITS column, list the CAD polygon layer or layers that define individual units, such as rooms, hallways, and other navigable spaces.
Alternatively, if individual unit spaces are defined by CAD polyline layers, such as interior and exterior walls, list them in the UNIT_LINES column.
- In the DETAILS column, list any CAD polyline layers that define interior details that you want to import, such as walls, doors, and windows.
Note:
Consider how you intend to use the indoor GIS when choosing which interior details to import. For example, HVAC or electrical fixtures might be important for facility-management use cases, but not for managing office hotels.
- Optionally, define any door openings that should be closed when generating unit polygons.
This is good practice if you listed a CAD polyline layer in the UNIT_LINES column that has doors drawn in the open position with a swinging arc like the one shown here, as it results in cleaner polygons.
- In the OPENINGS column, list the CAD polyline layer or layers that represent doors and should be closed in the output unit polygons.
- On the Level Properties sheet, set the CLOSE_DOORS column to Y.
- In the UNIT_ID column, list any CAD annotation layers that contain unique unit identifier strings, such as "L2w210" or "A-125".
Note:
If suitable CAD annotation is not available, you can leave the UNIT_ID column blank, and the tool will automatically generate UNIT_ID values.
- In the UNIT_NAME column, list any CAD annotation layers that contain common unit name strings, such as "Davies Hall" or "Server Room #4".
Note:
If suitable CAD annotation is not available, you can leave the UNIT_NAME column blank, and the tool will automatically generate UNIT_NAME values.
- In the UNIT_USE_TYPE column, list any CAD annotation layers that contain usage strings, such as “Office”, “Stairway”, or “Conference Room”.
Note:
While the UNIT_USE_TYPE column is not required, populating it allows you to symbolize units by use type in your indoor maps.
- Save the file.
Your CAD data may also include annotation for unique identifiers, common names, and other important information. The Import Floorplans To Indoors Geodatabase tool adds this information to imported features as attribute data based on configuration in the CAD Layer to FC Mapping sheet.
Note:
If the CAD annotation consists of a long string delimited by characters or line breaks, you can use the following syntax to extract specific values:
<layer name>|<position>|<delimiter>
Example 1—A CAD annotation layer named A-ANNO-LYR has period-delimited strings such as CAMPUS.A.A-210. To return the third part of the string, "A-210", use the following:
A-ANNO-LYR|3|.
Example 2—A CAD annotation layer has two-part strings with line breaks, for example:
CAMPUSH360
To return the second part of the string ("H360"), use \p as the delimiter as follows:
A-ANNO-LYR|2|\p
If the 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, to extract unique identifiers from a custom field named OFFICE_ID, use the following:
A-ANNO-LYR|1|{OFFICE_ID}
Complete the following to configure CAD annotations:
Configure facility properties
The Facility Properties sheet takes metadata about the facility or facilities to be imported, such as each facility's name and height. This metadata is applied to features and attributes in the indoor dataset during the import process.
The *_ID columns are used to generate a unique identifier string for each feature imported into the indoor dataset. Each feature’s unique identifier includes the IDs for the associated feature or features, so that features can be linked to associated locations. For example, a level ID includes the facility ID of the facility in which the level is located.
Note:
When you run the Import Floorplans To Geodatabase tool, you can choose the delimiter used to separate key values in the unique identifier string.
For example, consider a scenario where ABCXYZ University has a main campus and a branch campus. The university's facilities are named for famous scientists. In the CAD data, some of the room numbers contain hyphens, so you decide to use a period (.) as the delimiter. The *_ID values for this scenario would look like this:
Column name | Example values |
---|---|
SITE_ID | ABCXYZ.MAIN ABCXYZ.BRANCH |
FACILITY_ID | ABCXYZ.MAIN.GALILEO ABCXYZ.MAIN.CURIE ABCXYZ.BRANCH.FEYNMAN |
LEVEL_ID | ABCXYZ.MAIN.CURIE.1 ABCXYZ.MAIN.CURIE.2 ABCXYZ.MAIN.CURIE.3 |
Note:
To support floor-aware maps and scenes, the values in the *_ID columns must be prepended with the identifiers for all associated features in the correct order, separated by your chosen Unique ID Delimiter.
Populate the Facility Properties sheet as follows:
Note:
The FACILITY_NUMBER, DESCRIPTION, and other columns on this sheet are only applicable to users of the Indoors geodatabase (created using the Create Indoors Database tool). If you are using the Indoors geodatabase, you have the option to populate these columns, and the Import Floorplans To Indoors Geodatabase tool will honor them.
- In the SITE_ID column, list the unique identifier strings for each site.
If needed, include any additional information (such as organization or country) by prepending it with one of the available Unique ID Delimiter characters.
- Optionally, in the SITE_NAME column, list a common name for each site.
- Copy and paste as needed to create additional rows for each site, with one row for each facility at that site.
- Copy the values in the SITE_ID column and paste them into the FACILITY_ID column.
- In the FACILITY_ID column, append a delimiter and the unique identifier string for each facility.
Note:
Make sure to use the same delimiter across all *_ID columns.
- In the NAME column, list common facility names for use as map labels.
Values in this column must be 100 characters or less.
- Optionally, in the NAME_LONG column, list full facility names.
Values in this column can be up to 255 characters.
- If you are using an Indoors geodatabase, In the ELEVATION_RELATIVE column, list the elevation of the base of the facility, relative to a flat terrain surface.
In most cases, the facility's base will have a relative elevation of 0.
Note:
If you are using an indoor dataset you can skip this field.
- In the HEIGHT_RELATIVE column, list each facility's height relative to the terrain surface on which the facility sits.
Note:
Accurate heights and z-values are important for 3D visualization in floor-aware maps, and some functionality, such as routing between floors.
- In the MERGE_LEVELS column, type a Y or N to configure how the Import Floorplans To Indoors Geodatabase tool should generate that facility’s polygon feature:
- Y—The facility's polygon feature will be generated by merging the facility's Level polygons.
- N—The facility's polygon feature will be generated from the CAD layer or layers listed in the CAD Layer to FC Mapping sheet's FACILITIES or FACILITY_LINES columns.
- Save the file.
Configure level properties
The Level Properties sheet stores metadata and configuration options for the floors to be imported.
Populate the Level Properties sheet as follows:
Note:
The DESCRIPTION, ACCESS_TYPE, and other columns on this sheet are only applicable to users of the Indoors geodatabase (created using the Create Indoors Database tool). If you are using the Indoors geodatabase, you have the option to populate these columns, and the Import Floorplans To Indoors Geodatabase tool will honor them.
- Copy the values from the Facility Properties sheet's FACILITY_ID column and paste them into the Level Properties sheet's FACILITY_ID column.
- Copy and paste as needed to create additional rows for each facility. You should have one row for each level in that facility.
- Copy the values in the FACILITY_ID column and paste them into the LEVEL_ID column.
- In the LEVEL_ID column, append a delimiter and the unique identifier string for each level. Usually this is the level number.
Note:
Make sure to use the same delimiter across all *_ID columns.
- In the NAME column, list common floor names.
The tool uses these values to populate the LEVEL_NAME attributes for the Units and Details feature classes.
- In the NAME_SHORT column, list short floor names.
Values in this column must be four characters or less. These values are used in the floor filter when working with floor-aware maps and scenes in ArcGIS Pro or the ArcGIS Indoors mobile and web apps.
- In the LEVEL_NUMBER column, list integers representing the floor number for each floor, such as you might see on an elevator in the facility.
Tip:
Some facilities may not have certain floor numbers. For example, the number 13 is considered by many people to be unlucky, so taller buildings may not have a floor with that number.
- In the VERTICAL_ORDER column, list ordinal integers representing the vertical order of each level relative to other levels in the same facility.
Use zero (0) for the ground floor of each facility, positive consecutive integers for levels above the ground floor, and negative consecutive integers for levels below the ground floor.
- In the ELEVATION_RELATIVE column, list the elevation of the bottom of each level, relative to the ground.
In most cases, the relative elevation of a facility's ground floor is 0 meters, with floors above ground having positive relative elevation values and floors below ground having negative values.
Note:
If you are using an indoor dataset you can skip this field.
- In the HEIGHT_RELATIVE column, list the height of the top of each level, relative to the bottom of that level.
Tip:
One way to verify most facility's HEIGHT_RELATIVE value is to sum the values in the HEIGHT_RELATIVE column for the facility's above-ground levels, and compare that total to the facility's HEIGHT_RELATIVE value.
- In the CLOSE_DOORS column, type a Y or N to configure whether the Import Floorplans To Indoors Geodatabase tool should treat the level’s doors as closed when generating unit features from CAD polylines:
- Y—Doors should be treated as closed when generating unit features.
- N—Doors should not be treated as closed.
Note:
The CLOSE_DOORS column only has an effect when both the CAD Layer to FC Mapping sheet's UNIT_LINES and OPENINGS columns are populated.
- In the PROCESS column, type a Y or N to configure which levels should be processed by the Import Floorplans To Indoors Geodatabase tool. You can use this column to process individual levels for testing or updating purposes.
- Y—The level will be processed by the tool.
- N—The level will not be processed.
- Save the file.
Configure source files
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.
Note:
The Source Files sheet was added at ArcGIS Pro 2.7 to support importing data from multiple CAD drawings per level. Prior to ArcGIS Pro 2.7, the configuration file did not include a Source Files sheet and CAD file source paths were stored directly in the Level Properties sheet. Both configuration files are supported for use at ArcGIS Pro 2.8.
Populate the Source Files sheet as follows:
- Copy the values from the Level Properties sheet's LEVEL_ID column and paste them into the Source Files sheet's LEVEL_ID column.
- Copy and paste as needed to create additional rows for each level.
You should have one row for each source CAD file that contains data for that level.
Note:
If all the CAD layers for a level are in a single CAD drawing, you do not need to copy and paste any additional rows for that level.
- In the SOURCE_PATH column, list the full network or local file path to each source CAD file.
- Save the file.
Once you have completed the configuration worksheet, you can import your CAD floor plans to the indoor dataset.