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 contains three 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 class | Column name and feature type | Description |
---|---|---|
Facilities | FACILITIES | 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, people, 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, people, 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 Doors Close Buffer parameter to successfully merge polylines when the Import Floorplans to Indoors Geodatabase tool is run. |
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:
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.
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.
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.
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.
Polyline features, referred to as details in the Indoors schema, are brought in directly.
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):
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:
- Copy the Config_CAD_Indoors_Template.xlsx template file to the directory where your CAD files are stored.
The template is included with the Indoors product data installation package available from My Esri. The .xlsx file is located at <Installation location>\Indoors\Product Files\<release version>\MappingFile. The default installation location is C:\ProgramData\ESRI.
- Open the template and click the CAD Layer to FC Mapping sheet.
- Enable editing for the file if necessary.
- 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.
- 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.
- 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 type | Description |
---|---|
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.
|
To fill in the Facility Properties sheet, complete the following steps:
- Open the Config_CAD_Indoors_Template.xlsx template file if necessary.
- Click the Facility Properties sheet.
- Complete the Facility Properties sheet with all the relevant metadata for your floor plans.
- Save the file.
Level Properties sheet
The Level Properties sheet stores metadata about the individual floors in your building. This includes file paths to your CAD drawings (which you will need to update to point to your local directory), floor identifiers (IDs), floor names, relative elevation information, feature merging options, and door closing functionality.
Column | Description |
---|---|
SOURCE_PATH | The file path if the source CAD floor plans are on the local machine or network. A value is required. |
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.
|
PROCESS | Specifies whether CAD files should be processed.
|
To fill in the Level Properties sheet, complete the following steps:
- Open the Config_CAD_Indoors_Template.xlsx template file.
- Click the Level Properties sheet.
- 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.
- Save the file.