适用于 ArcGIS Indoors Pro 或 ArcGIS Indoors Maps 扩展模块。
将楼层平面图导入 Indoors 地理数据库工具可将配置文件作为输入。 配置文件为 Microsoft Excel 工作簿,其中包含工具查找您的 CAD 文件、导入 CAD 楼层平面图数据以及将导入的数据转换为室内要素类中的要素和属性所需的信息。
模板配置文件包含在 ArcGIS Pro 安装中(位于 <installation location>\Program Files\ArcGIS\Pro\Resources\Indoors\MappingFile\Config_CAD_Indoors_Template.xlsx 下)。 创建模板配置文件的副本,以便将其用于您的工程。
提示:
在更新配置电子表格之前,将 CAD 工程图添加到地图上并熟悉 CAD 图层名称和内容可能会有所帮助。
要设置配置文件,请完成每个工作表,如下所示:
将 CAD 图层映射到要素类
“图层到要素类”工作表地图将 CAD 文件中的 CAD 图层映射到室内要素类中的相应要素。
注:
在 ArcGIS Pro 2.8 及更低版本中,该工作表被命名为“CAD 图层到 FC 映射”。
将楼层平面图导入 Indoors 地理数据库工具可以根据 CAD 图层生成面要素,包括闭合或非闭合折线实体。 例如,如果 CAD 工程图的图层具有闭合折线定义单元(办公室、走廊和其他可导航空间),请使用该 CAD 图层的名称填充 UNITS 列:
或者,如果 CAD 工程图的多个图层具有未闭合折线,这些折线共同定义了单元的边界,请使用这些 CAD 图层的名称填充 UNIT_LINES 列:
填充图层转要素类工作表,如下所示:
注:
与区域和部分相关的列仅适用于 Indoors 地理数据库的用户(使用创建 Indoors 数据库工具创建)。 如果要使用 Indoors 地理数据库,则可以选择填充这些列,并且将楼层平面图导入 Indoors 地理数据库工具将支持这些列。
- 在 FACILITIES 列中,将列出一个或多个具有闭合折线的 CAD 图层,这些折线定义了设施点的形状和范围。
或者,如果 CAD 图层具有共同定义设施点范围和边的未闭合折线,则将在 FACILITY_LINES 列中列出这些 CAD 图层。
注:
然后,在配置中,可使用选项通过合并级别面来定义设施点的形状和范围。 即使选择该选项,也仍必须填充 FACILITIES 或 FACILITY_LINES 列。 如果您选择使用合并的级别面定义设施点的形状和范围,则忽略此列。
- 在 LEVELS 列中,将列出一个或多个具有闭合折线的 CAD 图层,这些折线定义了各个级别的范围。
这可能包括一楼、地下室、夹层以及建筑物中具有相同 z 值的其他空间。 或者,如果多个 CAD 图层具有未闭合折线(例如外墙和门),这些折线共同定义了各个级别的范围,则将在 LEVEL_LINES 列中列出这些 CAD 图层。
- 在 UNITS 列中,列出一个或多个具有闭合折线的 CAD 图层,这些折线定义了各个单元(例如房间、走廊和其他可导航空间)的范围。
或者,如果多个 CAD 图层具有未闭合折线(例如内墙和外墙),这些折线共同定义了各个单元的范围,则将在 UNIT_LINES 列中列出这些 CAD 图层。
- 在 DETAILS 列中,列出具有(闭合或未闭合)折线的任何 CAD 图层,这些折线定义了要导入的内部细节,例如墙、门和窗户。
注:
选择要导入的内部细节时,请考虑打算如何使用室内 GIS。 例如,HVAC 或电气装置对于设施点管理用例可能很重要,但对于管理办公酒店来说却不重要。
- 或者,定义在生成单元面时应关闭的所有门开口。
如果对于在 UNIT_LINES 列中列出的 CAD 图层,门处于打开位置,并且摆弧如下图所示,这是一种很好的做法,原因在于这会产生更加简洁的面。
- 在 OPENINGS 列中,列出一个或多个具有(闭合或未闭合)折线的 CAD 图层,这些折线表示门,并且在生成输出单元面时应将这些 CAD 图层关闭。
- 在级别属性工作表中,将 CLOSE_DOORS 列设置为 Y。
- 不要在 UNIT_LINES 列中列出门 CAD 图层。
- 保存文件。
将 CAD 注记映射到属性字段
您的 CAD 数据可能还包含唯一标识符、常用名称和其他重要信息的注记。 将楼层平面图导入 Indoors 地理数据库工具可根据“注记至字段”工作表中的 CAD 锚点和配置将此信息作为属性数据添加到导入的要素中。 “注记至字段”工作表是用于此工具的输入 Excel 模板文件参数的 .xlsx 文件中包含的一个工作表。 该工具支持将 CAD 注记映射到自定义属性、解析分隔的注记值以及提取块注记。 如果符合 Indoors 模型,则可以将 CAD 注记映射到以下要素类:Units、Levels、Facilities、Sections 和 Zones。
注:
在 ArcGIS Pro 2.9 中添加了“注记至字段”工作表,以支持将 CAD 注记导入自定义属性字段。 较早版本的配置文件不包含此表,并且 CAD 注记图层已映射在“CAD 图层转 FC 映射”工作表中。 ArcGIS Pro 2.9 支持两个版本的配置文件。
“注记至字段”工作表包含 3 列:
- SOURCE_ANNOTATION- 指定包含注记的 CAD 图层
- TARGET_FEATURE_CLASS- 指定要在其中存储注记的要素类
- TARGET_FIELD_NAME- 指定要在其中存储注记的目标要素类中的属性字段
工作表中的多行已部分准备好目标 Indoors 要素类和属性字段。 例如,第二行的目标是 Units 要素类中的 UNIT_ID 属性字段。 可以通过填充 SOURCE_ANNOTATION 列来完成具有含注记的 CAD 图层的行。 如果您不希望包含属性字段的注记,则可以将此列留空或删除该行。 如果您希望包含更多 CAD 注记,则可以在“注记至字段”工作表中填写更多行。
当目标为 Units 要素类时,如果 CAD 注记源于多个 CAD 图层,您可以填充多个目标为相同字段的行。 如果指定的 CAD 图层中有多个图层都包含单元要素的注记,则工具将使用工作表中列出的包含该要素注记的第一个 CAD 图层中的注记。
以下是已完成的“注记至字段”工作表的示例:
在此示例中,对“注记至字段”工作表进行了以下更新:
- 由于没有合适的 CAD 注记,因此 SOURCE_ANNOTATION 列留空。 将平面图导入 Indoors 地理数据库工具将为单元要素自动生成唯一 ID。
- 第三行和第四行都以单元的 NAME 字段为目标。 要填充单元要素的 NAME 字段,工具首先在 A-AREA-NAME 图层中查找 CAD 注记。 如果未找到注记,则工具将在下一个 A-AREA-ALT-NAME 图层中查找 CAD 注记。 如果在配置的 CAD 图层中未找到注记,则工具自动为单元的 NAME 字段生成值。
- 第五行中的 SOURCE_ANNOTATION 列设置为名为 A-AREA-TYPE 的 CAD 图层,其中包含描述房间使用情况的 CAD 注记。
- 未使用与区域和部分相关的行并已将其删除。
- 随即添加第六行,将来自名为 A-ADMIN-NAME 的 CAD 图层的注记映射到 Levels 要素类中的自定义 ADMIN_NAME 属性字段。 在运行将楼层平面图导入 Indoors 数据库工具之前,自定义 ADMIN_NAME 字段必须存在于 Levels 要素类中。
源注记语法
SOURCE_ANNOTATION 列支持特殊语法,用于解析和提取分隔的 CAD 注记或块注记的部分。 如果 CAD 注记包含由字符或换行符分隔的长字符串,则可以在 SOURCE_ANNOTATION 列中使用以下语法提取特定值:
<图层名称>|<位置>|<分隔符>
示例 1 - 名为 A-ANNO-LYR 的 CAD 图层具有以句点分隔的字符串形式的注记,如下所示:
CAMPUS.A.A-210
要返回字符串的第三个部分“A-210”,应在 SOURCE_ANNOTATION 列中使用以下内容:
A-ANNO-LYR|3|。
示例 2 - CAD 图层具有多行字符串 (MTEXT) 形式的注记,如下所示:
CAMPUS
H360
要返回字符串的第二个部分(“H360”),请使用 \P 作为分隔符,如下所示:
A-ANNO-LYR|2|\P
如果 CAD 数据包含块注记,则可以在 SOURCE_ANNOTATION 列中使用以下语法提取特定值:
<图层名称>|1|{<FIELD_NAME>}
在此语法中,<FIELD_NAME> 表示您在注记中引用的标签。 例如,名为 A-ANNO-LYR 的 CAD 图层包含一个块注记,该块注记具有名为 OFFICE_ID 的标签,要从图层中提取唯一标识符,请使用以下命令:
A-ANNO-LYR|1|{OFFICE_ID}
注:
如果标签包含一个在地理数据库字段名称中不允许使用的字符(例如连字符或其他特殊字符),则该字符在 ArcGIS Pro 中会转换为一个下划线。 要从包含其中一个字符的标签映射块注记,需在映射模板中将该字符替换为一个下划线。 例如,如果 CAD 工程图包含的块注记具有名为 ROOM-NAME 的标签,该标签位于名为 A-ANNO-LYR 的 CAD 图层中,请使用以下命令:
A-ANNO-LYR|1|{ROOM_NAME}
填充“注记至字段”工作表
填充“注记至字段”工作表,如下所示:
- 在第二行的 SOURCE_ANNOTATION 列中键入包含唯一房间标识符的 CAD 图层的名称,例如 L1w205 或 A-101。 如果没有合适的 CAD 注记,则可以将此列留空,并且将平面图导入 Indoors 数据库工具将自动生成唯一 UNIT_ID 值。
对于每个单元要素,必须提供包含唯一值的 CAD 图层,以支持更新楼层平面图并保留用于空间规划和工作空间预留的字段。
注:
将楼层平面图导入 Indoors 地理数据库工具将使用 CAD 注记的锚点来确定相关联的单元要素。 在为注记映射指定 CAD 图层之前,请查看 CAD 注记并确保锚点位于其关联空间内。
- 在第 3 行的 SOURCE_ANNOTATION 列中,键入包含公共房间名称的 CAD 图层的名称,例如 Davies Hall 或 Server Room #4。 如果没有合适的 CAD 注记,则可以将此列留空,该工具将自动为单元的 NAME 属性生成值。
- 在第 4 行的 SOURCE_ANNOTATION 列中,键入具有描述性用法字符串(例如 Office、Stairway 或 Conference Room)的 CAD 图层的名称。 如果没有合适的 CAD 注记,则可以将此列留空,该工具将为 Units 的 USE_TYPE 属性分配空值。
对于 Units,USE_TYPE 属性不是必需的,但是包含该属性可以在室内地图和场景中按使用类型对单元进行符号。
- 或者,可以填写第 5 行到第 8 行的 SOURCE_ANNOTATION 列,以包含 Zones 和 Sections 要素类(如果它们是室内 GIS 的一部分)的 CAD 注记。
如果没有合适的 CAD 注记,则可以将此列留空,该工具将为 Zones 和 Sections 要素生成 ID 和名称值。 为每个 Section 和 Zone 要素提供包含唯一值的 CAD 注记可确保正确更新您在 ArcGIS Pro 中创建的 ID 字段值和自定义字段。
注:
Zones 和 Sections 要素类由创建 Indoors 数据库工具创建。 如果您的室内 GIS 不包括 Zones 和 Sections 要素类,则可以删除这些行或将其留空。
- 可以根据需要创建并填充其他行,以将其他 CAD 注记映射到 Indoors 属性:
- 在 SOURCE_ANNOTATION 列中,键入包含注记的 CAD 图层的名称。
- 在 TARGET_FEATURE_CLASS 列中,输入要在其中存储注记的 Indoors 要素类的名称。
注:
如果符合 Indoors 模型,则可以将 CAD 注记映射到以下要素类:Units、Levels、Facilities、Sections 和 Zones。
- 在 TARGET_FIELD_NAME 列中,键入要在其中存储注记的属性字段的名称。
属性字段必须已存在于目标要素类中。 支持以下字段数据类型:Text、Short、Long、Float 和 Double。
注:
如果根据配置文件中其他位置的信息填充目标字段,则将忽略该字段的“注记至字段”映射。
- 保存文件。
配置设施点属性
“设施点属性”工作表可存储有关要导入的一个或多个设施点的元数据,例如每个设施点的名称和高度。 在导入过程中,此元数据将应用于室内数据集中的要素和属性。
*_ID 列可用于为导入到室内数据集中的每个要素生成唯一的标识符字符串。 每个要素的唯一标识符均包含一个或多个关联要素的 ID,以便可以将要素链接到关联位置。 例如,级别 ID 包括该级别处的设施点的设施点 ID。
注:
运行将楼层平面图导入地理数据库工具时,可以选择用于分隔唯一标识符字符串中的键值的分隔符。
例如,考虑 ABCXYZ 大学设有主校区和分支校区的情况。 该大学的设施点以著名的科学家命名。 在 CAD 数据中,某些房间号包含连字符,因此您决定使用句点 (.) 作为分隔符。 此方案的 *_ID 值如下所示:
列名 | 示例值 |
---|---|
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 |
注:
为了支持楼层感知型地图和场景,必须以正确的顺序将所有关联要素的标识符添加为 *_ID 列中的值的前缀,并且这些值由您选择的唯一 ID 分隔符分隔。
填充设施点属性工作表,如下所示:
- 在 SITE_ID 列中,列出每个站点的唯一标识符字符串。
如果需要,请包含其他任何信息(例如组织或国家/地区),方法为将可用的唯一 ID 分隔符字符串之一添加为其前缀。
- 或者,在 SITE_NAME 列中,列出每个站点的常用名称。
- 根据需要执行复制和粘贴操作,以为每个站点创建附加行(为该站点的每个设施点创建一行)。
- 复制 SITE_ID 列中的值,然后将其粘贴到 FACILITY_ID 列中。
- 在 FACILITY_ID 列中,为每个设施点附加分隔符和唯一标识符字符串。
注:
确保在所有 *_ID 列上使用相同的分隔符。
- 在 NAME 列中,列出用作地图标注的常用设施点名称。
此列中的值不得超过 100 个字符。
- 或者,在 NAME_LONG 列中,列出完整的设施点名称。
此列中的值最多可包含 255 个字符。
- 在 ELEVATION_RELATIVE 列中列出设施点底部相对于平坦地形表面的高程。
在大多数情况下,设施点底部的相对高程为 0。
注:
此字段用于计算设施点要素的 z 值。
- 在 HEIGHT_RELATIVE 列中,列出每个设施点相对于该设施点处的地形表面的高度。
- 在 MERGE_LEVELS 列中,输入 Y 或 N 以配置将楼层平面图导入 Indoors 地理数据库工具应如何生成该设施点的面要素:
- Y - 设施点的面要素将通过合并设施点级别面来生成。
- N - 将根据“图层至要素类”工作表的 FACILITIES 或 FACILITY_LINES 列中列出的一个或多个 CAD 图层生成设施点的面要素。
- 保存文件。
配置级别属性
“级别属性”工作表存储要导入的楼层的元数据和配置选项。
填充级别属性工作表,如下所示:
- 从设施点属性工作表的 FACILITY_ID 列中复制值,然后将其粘贴到级别属性工作表的 FACILITY_ID 列中。
- 根据需要执行复制和粘贴操作,以为每个设施点创建附加行。 对于该设施点中的每个级别,应存在一行。
- 复制 FACILITY_ID 列中的值,然后将其粘贴到 LEVEL_ID 列中。
- 在 LEVEL_ID 列中,为每个级别附加分隔符和唯一标识符字符串。
通常,这是级别编号。
注:
确保在所有 *_ID 列上使用相同的分隔符。
- 在 NAME 列中,列出常用楼层名称。
工具会使用这些值来填充单元和细节要素类的 LEVEL_NAME 属性。
- 在 NAME_SHORT 列中,列出楼层简称。
此列中的值不得超过 4 个字符。 在 ArcGIS Pro 或 ArcGIS Indoors 移动应用程序或 Web 应用程序中使用楼层感知型地图和场景时,这些值将在楼层过滤器中使用。
- 在 LEVEL_NUMBER 列中,列出表示每个楼层的楼层编号的整数,例如您在设施点中的电梯内看到的整数。
提示:
一些设施点可能没有特定的楼层编号。 例如,许多人会将数字 13 视为倒霉的数字,因此较高的建筑物可能没有使用该编号的楼层。
- 在 VERTICAL_ORDER 列中,列出表示每个级别相对于同一设施点中其他级别的垂直顺序的序数整数。
针对每个设施点的一楼使用零 (0),对于高于一楼的级别使用正连续整数,对于低于一楼的级别使用负连续整数。
- 在 ELEVATION_RELATIVE 列中,列出每个级别底部相对于地面的高程。
在大多数情况下,设施点一楼的相对高程为 0 米,一楼之上的楼层具有正相对高程值,而一楼之下的楼层具有负值。
注:
此字段用于计算 Levels、Units 和 Details 要素的 z 值。
- 在 HEIGHT_RELATIVE 列中,列出每个级别顶部相对于该级别底部的高度。
提示:
验证大多数设施点的 HEIGHT_RELATIVE 值的一种方法是,将设施点一楼之上的 HEIGHT_RELATIVE 列中的值相加,然后将总数与设施点 HEIGHT_RELATIVE 值进行比较。
- 在 CLOSE_DOORS 列中,输入 Y 或 N,以配置在通过 CAD 折线生成单元要素时,将楼层平面图导入 Indoors 地理数据库工具是否应将级别的门视为关闭:
- Y - 生成单元要素时,应将门视为关闭。
- N - 不应将门视为关闭。
注:
仅当同时填充“图层至要素类”工作表的 UNIT_LINES 和 OPENINGS 列时,CLOSE_DOORS 列才有效。
- 在 PROCESS 列中,输入 Y 或 N,以配置应使用将楼层平面图导入 Indoors 地理数据库工具处理哪些级别。 您可以使用此列来处理各个级别以进行测试或更新。
- Y - 工具将处理级别。
- N - 不会处理级别。
- 保存文件。
配置源文件
“源文件”工作表可存储 CAD 工程图的文件路径,并将每个工程图关联到“级别属性”表上定义的级别。 如果单个级别的 CAD 数据存在于彼此叠加的多个工程图中,则可以定义每个工程图文件的源路径并将其关联到单个级别。
注:
ArcGIS Pro 2.7 已添加源文件工作表,以支持从每个级别的多个 CAD 工程图中导入数据。 在 ArcGIS Pro 2.7 之前,配置文件不包括源文件工作表,而 CAD 文件源路径直接存储在级别属性工作表中。 当前版本支持使用这两个配置文件。
填充源文件工作表,如下所示:
- 从级别属性工作表的 LEVEL_ID 列中复制值,然后将其粘贴到源文件工作表的 LEVEL_ID 列中。
- 根据需要执行复制和粘贴操作,以为每个级别创建附加行。
对于每个包含该级别数据的源 CAD 文件,应存在一行。
注:
如果某个级别的所有 CAD 图层均位于单个 CAD 工程图中,则无需复制并粘贴该级别的任何附加行。
- 在 SOURCE_PATH 列中,列出每个源 CAD 文件的完整网络或本地文件路径。
- 保存文件。
完成配置工作表后,您可以向室内数据集导入 CAD 楼层平面图。