将 CAD 导入室内数据集 (Indoors)

摘要

可将要素从 CAD 文件导入符合 ArcGIS Indoors 信息模型的室内数据集。 可使用该工具的输出创建楼层感知型地图和场景,以及生成用于路由的室内网络。

使用情况

  • 可以使用此工具将楼层平面图数据加载到使用创建室内数据集工具或创建 Indoors 数据库工具创建的 Indoors 工作空间中。

  • 在运行该工具之前,必须对源 CAD 数据进行地理配准

  • 源 CAD 数据参数值必须至少为一个 .dwg.dgn 文件。

    警告:

    该工具一次导入一个设施点的一个楼层。 如果您有多个 CAD 文件包含同一楼层的数据,则可以将多个 CAD 文件添加到源 CAD 数据参数中。

  • 目标单元要素目标楼层要素目标设施点要素目标细节要素参数必须参考符合 Indoors 模型的要素类或要素图层。

    注:

    目标要素必须全部来自同一文件地理数据库、企业级地理数据库或要素服务。

    • 当在目标单元要素参数值中添加、更新或删除要素时,该工具会在 ArcGISProTemp 目录中创建一个汇总文本文件。 汇总文本文件列出了使用 UNIT_IDNAME 字段的所有已添加、更新或删除的单元要素。
  • 针对楼层名称参数,提供楼层的名称。 如果该楼层存在于目标 Levels 图层中,则可以从下拉列表中进行选择。 如果选择现有 Levels 图层,则将更新 Levels 要素以及关联的 Units 和 Details 要素。 如果未使用 CAD 注记映射参数进行映射,则将保留默认情况下未填充的 Levels 和 Units 图层中字段的字段值。 将删除并覆盖细节要素。

  • 可以从输入 CAD 数据 CAD 图层导入要素,或者将 CAD 数据添加至地图并从折线图层导入要素。 可以使用从源 CAD 选择图层参数以指定是从输入 CAD 图层还是从地图折线图层导入。

    • 如果选中从源 CAD 选择图层参数,则需要为 Units 的源 CAD 图层Levels 的源 CAD 图层Details 的源 CAD 图层Facilities 的源 CAD 图层参数提供 CAD 图层。 或者,在 Doors 的源 CAD 图层参数中包含门实体。
    • 如果取消选中从源 CAD 选择图层参数,则需要为 Units 的源图层Levels 的源图层Details 的源图层Facilities 的源图层参数提供 CAD 折线地图图层。 或者,在 Doors 的源图层参数中包含门实体。 该工具支持在输入地图图层进行选择和定义查询。
  • 在启用“从源 CAD 选择图层”参数的情况下运行该工具时,该工具会创建一个配置文件。 配置文件存储了折线几何和注记信息的所有 CAD 映射以及高级选项设置。 您可以将此文件用作后续工具运行中具有相同或相似 CAD 图层和映射的其他 CAD 文件的“楼层平面图配置文件”参数的输入。 这有助于确保多次导入之间的一致性和效率。

    • 选中从源 CAD 选择图层参数时,楼层平面图配置文件参数可用。 使用此参数导入 JSON 配置文件,快速设置该工具,以方便具有相同或相似 CAD 图层和映射的其他 CAD 文件的后续运行。
    • 在以下情况下,该工具不会创建配置文件:
      • 如果运行该工具时未选中“从源 CAD 选择图层”参数。
      • 如果您向“楼层平面图配置文件”参数提供了输入,并且不再对参数设置进行任何更改。
      如果在运行该工具时选中了从源 CAD 选择图层参数,则会创建配置文件。 如果您为楼层平面图配置文件参数指定了配置文件,并且没有对参数设置进行进一步更改,则不会创建配置文件。
    • 在为楼层平面图配置文件参数提供配置文件时,可以对参数进行进一步的调整。 例如,如果运行该工具的 CAD 文件包含第一个 CAD 文件中不存在的附加 CAD 图层,则可以提供平面图配置文件,然后将附加的图层添加到 CAD 映射参数中。 如果导入配置后对参数设置进行了更改,则运行该工具时将创建一个新的输出配置文件。
    • 输出配置文件的默认输出位置是 ArcGIS Pro 工程的主文件夹,或者如果工具在工程外运行则为临时文件夹

    配置文件可能包含以下参数的值:

    • Units/Levels/Doors/Details/Facilities 的源 CAD 图层
    • CAD 注记映射:
      • 目标室内图层
      • 目标字段
      • 类型
      • 源 CAD 图层
      • 块属性
      • 分隔符
      • 位置
    • 高级选项:
      • 门到墙壁的距离
      • 最小单元宽度
      • 最小单元面积
    注:

    如果在历史记录窗格中打开了以前的工具运行,该工具将显示从配置文件加载的参数。 加载配置文件后对参数所做的更改只有在右键单击并选择上次工具运行的查看详细信息时才可见。

  • Units 的源 CAD 图层Units 的源图层参数提供表示单元边界的折线图层。 可能包括代表房间边界的单个图层,或者经过组合后表示房间边界的多个图层(例如外墙、内墙和门的图层)。

  • Levels 的源 CAD 图层Levels 的源图层参数提供表示级别边界的折线图层。

    如果没有为任一参数提供值,则该工具将根据单元面的范围创建级别面要素。

  • 楼层高程参数值设置为相对于地面的楼层高程。 该参数值必须包含数值和测量单位(国际英尺或米)。 将基于此值填充 Levels、Units 和 Details 的 Z 值。

  • 垂直顺序参数值提供表示每个楼层的垂直顺序的序数整数。 一楼的垂直顺序为零 (0)。 对于一楼之上的楼层,垂直顺序值为正;对于一楼之下的楼层,则为负。

  • Facilites 的源 CAD 图层Facilites 的源图层参数提供表示设施点边界的折线图层。

    如果没有为任一参数提供值,则该工具将根据设施点中所有楼层面的范围创建或更新设施点面。

  • Details 的源 CAD 图层Details 的源图层参数提供表示要在细节图层(例如墙壁、窗户、门、家具等)中作为折线要素导入的要素的折线图层。

  • 如果输入 CAD 数据包含必须闭合才能创建单元、楼层或设施点边界的门要素,请使用以下参数以闭合门:

    • 对于 Doors 的源 CAD 图层Doors 的源图层参数,请提供包含门要素的 CAD 或地图图层。
    • 或者,提供门到墙壁的距离参数的值。 该参数值用于指示工具从门要素搜索相关单元的边界的距离。 该参数值必须包含数值和测量单位(国际英寸或毫米)。 默认值为 0.3 国际英寸。
  • 可以使用 CAD 注记映射参数将 CAD 注记映射到 Indoors 模型中的要素。 至少,建议您将信息从 CAD 映射到 Units 图层中的 NAMEUSE_TYPE 字段。 这些字段值用于启用 ArcGIS Pro 以及 Indoors web 和移动应用程序中的功能。 当重新运行工具以更新 Indoors 工作空间中的要素时,NAME 字段也可用于更新方案。 该参数支持从 Block 或 Text 映射注记,以及映射封闭折线实体的实体 Handle。

    Handle 是分配给 .dwg 文件中实体的唯一标识符。 您可以将 Handle 信息映射到 Units、Facilities 或 Levels 图层中的文本类型字段。 当输入 CAD 文件中的单个闭合折线实体表示 Indoors 工作空间中的单个面时,支持映射 Handle。

    CAD 注记映射的值设置为如下所示:

    • 目标室内图层 - 指定 Indoors 工作空间中要将注记映射到的图层。 您可以将 Units、Levels 或 Facilities 设置为此值的输入,它们对应于为目标单元要素目标楼层要素目标设施点要素参数提供的值。 不支持将注记映射到 Details 图层。
    • 目标字段 - 提供要将 CAD 注记映射到的目标室内图层中的字段。
    • 类型 - 指定正在映射的 CAD 注记的实体类型(Text、Block 或 Handle)。 如果源 CAD 数据中的 CAD 注记为 Text 或 MText,请选择 Text。 如果 CAD 注记存储为块注记,请选择 Block。 要将实体 Handle 映射到 Indoors 工作空间,请选择 Handle。
    • 源 CAD 图层 - 提供包含要映射的 CAD 注记的 CAD 图层。
    • 块属性 - 如果将类型值设置为 Block,请提供存储要映射到目标字段的 CAD 注记的块属性的名称。 如果将类型值设置为 Text 或 Handle,请勿提供值。
    • 分隔符 - 如果要映射到目标字段的值存储为分隔文本,则需要为此值设置分隔符。 例如,如果 CAD 注记以句点分隔,例如 CAMPUS.A.A-210,并且您希望将字符串 (A-210) 的第三部分映射为 UNIT_NAME 字段值,请使用句点 (.) 作为分隔符值。
    • 位置 - 如果要映射到目标字段的值存储为分隔文本,则需要设置要映射的值的位置,其中字符串的开头为位置 1。 例如,如果 CAD 注记以句点分隔,例如 CAMPUS.A.A-210,并且您希望将字符串 (A-210) 的第三部分映射为 UNIT_NAME 字段值,请使用 3 作为位置值。
    注:

    当针对 Units 要素类时,如果 CAD 注记源于多个 CAD 图层,则可以向针对同一字段的 CAD 注记映射参数提供多个输入。 如果多个指定 CAD 图层包含 Units 要素的注记,则该工具将使用提供的第一个包含该要素的注记的 CAD 图层中的 CAD 注记。

  • 最小单元宽度参数用于指示面必须被视为 Units 要素的最小宽度。 该参数值必须包含数值和测量单位(国际英尺或米)。 默认值为 3 国际英尺。

  • 最小单元面积参数用于指示面必须被视为单元要素的最小面积。 该参数值必须包含数值和测量单位(国际平方英尺或平方米)。 默认值为 9 国际平方英尺。

  • 对于任何不满足由最小单元宽度最小单元面积参数设置的阈值的面,会将其复制到 ArcGIS Pro 工程默认地理数据库中的临时要素类。 可以检查临时要素类面并根据需要将其中任何一个追加到 Units 图层。

  • 如果存在与楼层名称参数值同名的 Levels 要素,则将按如下方式更新该 Levels 要素及其关联的 Units 和 Details 要素:

    • 将更新 Levels 要素。 将保留默认情况下未填充的任何属性,包括自定义字段。
    • 该工具将比较 CAD 工程图和 Units 图层之间的 Units 要素。 如果找到具有匹配名称或几何的单元,则将对其进行更新。 将保留该工具默认情况下未填充且未使用 CAD 注记映射参数进行映射的任何字段。 将添加 CAD 工程图中存在,但 Units 图层中不存在的要素。 将删除 CAD 工程图中不存在,但 Units 图层中存在的要素。
    • 将从 CAD 工程图中删除 Details 要素并将其重新导入。
    • 如果为单元提供了地图图层作为输入,则该工具将遵循应用于这些图层的所有定义查询或选择。
    注:

    如果楼层名称参数值与现有 Levels 要素的 NAME 字段值不匹配,则该工具将导入 CAD 工程图作为具有指定楼层名称值的新楼层。

  • 间隙容差参数可用于设置输入要素悬空端点的邻近捕捉容差。 这有助于减少不完整单元或未使用的线段的数量。 默认值为 0.039 国际英寸(1 毫米)。

    注:

    增加间隙容差会暂时增加工具处理过程中的 XY 公差,这可能会导致导入几何图形时的精度降低。 增加间隙容差参数时,运行该工具后验证导入几何体的准确性。

参数

标注说明数据类型
源 CAD 数据

包含要导入 Indoors 模型的楼层平面图信息的 .dwg.dgn 文件。

CAD Drawing Dataset
目标楼层要素

符合 Indoors 模型并与目标 Units、Levels 或 Facilities 要素位于同一工作空间中的目标 Levels 要素图层、要素类或要素服务。

Feature Layer
楼层名称

源 CAD 数据所在楼层的唯一楼层名称。

String
垂直顺序

表示每个楼层的垂直顺序的序数整数。 一楼的垂直顺序为零 (0)。 对于一楼之上的楼层,垂直顺序值为正;对于一楼之下的楼层,则为负。

Long
楼层的高程

楼层相对于平坦地形的高程。 此值用于填充 Levels、Units 和 Details 的 z 值。

Linear Unit
目标设施点要素

符合 Indoors 模型并与目标 Units、Levels 或 Facilities 要素位于同一工作空间中的目标 Facilities 要素图层、要素类或要素服务。

Feature Layer
设施点名称

源 CAD 数据所在建筑物的唯一设施点名称。

String
目标单元要素

符合 Indoors 模型并与目标 Units、Levels 或 Facilities 要素位于同一工作空间中的目标 Units 要素图层、要素类或要素服务。

Feature Layer
目标细节要素

符合 Indoors 模型并与目标 Units、Levels 或 Facilities 要素位于同一工作空间中的目标 Details 要素图层、要素类或要素服务。

Feature Layer
从源 CAD 选择图层
(可选)

指定表示单元边界的折线是源自 CAD 文件,还是源自地图要素图层。 如果指定从地图要素图层获取源,则可以在图层上进行选择以导入要素子集。

  • 选中 - 表示单元边界的折线将直接源自 CAD 文件。 这是默认设置。
  • 未选中 - 表示单元边界的折线将源自地图要素图层。
Boolean
Units 的源 CAD 图层
(可选)

CAD 图层,包含定义设施点内可用空间的边和范围的折线实体。 这些折线将用于在目标 Units 图层中创建单元面要素。

String
Units 的源图层
(可选)

要素图层,包含定义设施点内可用空间的边和范围的折线实体。 这些折线将用于在目标 Units 图层中创建单元面要素。

Feature Layer
Levels 的源 CAD 图层
(可选)

CAD 图层,包含定义楼层的边和范围的折线实体。 这些折线将用于在目标 Levels 图层中创建单元面要素。

String
Levels 的源图层
(可选)

要素图层,包含定义楼层的边和范围的折线实体。 这些折线将用于在目标 Levels 图层中创建单元面要素。

Feature Layer
Doors 的源 CAD 图层
(可选)

CAD 图层,包含定义属于单元边界的门的折线实体。 将闭合这些折线以在目标 Units 图层中创建单元面要素。

String
Doors 的源图层
(可选)

要素图层,包含定义属于单元边界的门的折线实体。 将闭合这些折线以在目标 Units 图层中创建单元面要素。

Feature Layer
Details 的源 CAD 图层
(可选)

CAD 图层,包含表示楼层平面图细节(例如墙壁、窗户和门)的折线实体,这些实体将作为折线要素包含在目标 Details 图层中。

String
Details 的源图层
(可选)

要素图层,包含表示楼层平面图细节(例如墙壁、窗户和门)的折线实体,这些实体将作为折线要素包含在目标 Details 图层中。

Feature Layer
Facilities 的源 CAD 图层
(可选)

CAD 图层,包含定义设施点覆盖区的边和范围的折线实体。 如果未提供任何值,则将根据设施点内所有楼层的范围创建或更新设施点覆盖区。

String
Facilities 的源图层
(可选)

要素图层,包含定义设施点覆盖区的边和范围的折线实体。 如果未提供任何值,则将根据设施点内所有楼层的范围创建或更新设施点覆盖区。

Feature Layer
CAD 注记映射
(可选)

指定 CAD 注记要素的字段映射以填充 Indoors 工作空间中图层的字段。

  • 目标室内图层 - Indoors 工作空间中要将注记映射到的图层。 该工具支持映射到为“目标 Facilities”、“目标 Levels”和“目标 Units”参数提供的图层。
  • 目标字段 - 要将注记映射到的目标图层中的字段。 该字段必须已经存在。
  • 类型 - 要映射的注记的类型。 支持 Text、Block 和 Handle 类型。
  • 源 CAD 图层 - CAD 图层,包含将进行映射的注记。
  • 块属性 - 对于具有 Block 类型的注记,提供包含要映射的信息的块属性。
  • 分隔符 - 对于存储在分隔字符串中的注记,请提供分隔字符。
  • 位置 - 对于存储在分隔字符串中的注记,请提供要映射的值的位置。

Value Table
门到墙壁的距离
(可选)

该工具将从门要素搜索单元边界的距离(以国际英寸或毫米为单位)。 默认值为 0.3 国际英寸。

Linear Unit
最小单元宽度
(可选)

空间被视为 Units 要素的最小宽度(以国际英尺或米为单位)。 宽度小于此阈值的要素将写入非单元面要素类,并且不包含在目标 Units 图层中。 默认值为 3 国际英尺。

Linear Unit
最小单元面积
(可选)

空间必须被视为 Units 要素的最小面积(以平方英尺或平方米为单位)。 面积小于此阈值的要素将写入非单元面要素类,并且不包含在目标 Units 图层中。 默认值为 9 国际平方英尺。

Areal Unit
楼层平面图配置文件
(可选)

包含预设参数值的 JSON 配置文件。 提供先前工具运行的配置文件,填充具有相同或相似 CAD 图层和映射的 CAD 文件工具中的参数。

当提供配置文件时,可以在运行该工具之前更改其他参数值。 如果进行了其他参数更改,则会创建一个新的输出配置文件。

选中从源 CAD 选择图层参数时,此参数可用。

File
间隙容差
(可选)

生成单元时将被捕捉到一起的输入要素的悬空端点的邻近容差。 以毫米或国际英寸为单位提供值。 默认值为 0.039 国际英寸(1 毫米)。

Linear Unit

派生输出

标注说明数据类型
更新的 Units

更新后的目标 Units 要素。

Feature Layer

arcpy.indoors.ImportCADToIndoorDataset(input_cad_datasets, target_level_features, level_name, vertical_order, level_elevation, target_facility_features, facility_name, target_unit_features, target_detail_features, {allow_layers_from_cad}, {input_unit_layers_cad}, {input_unit_feature_layers}, {input_level_layers_cad}, {input_level_feature_layers}, {input_door_layers_cad}, {input_door_feature_layers}, {input_detail_layers_cad}, {input_detail_feature_layers}, {input_facility_layers_cad}, {input_facility_feature_layers}, {cad_annotation_mapping}, {door_close_buffer}, {input_unit_minimum_width}, {input_unit_minimum_area}, {floor_plan_config_file}, {input_gap_tolerance})
名称说明数据类型
input_cad_datasets
[input_cad_datasets,...]

包含要导入 Indoors 模型的楼层平面图信息的 .dwg.dgn 文件。

CAD Drawing Dataset
target_level_features

符合 Indoors 模型并与目标 Units、Levels 或 Facilities 要素位于同一工作空间中的目标 Levels 要素图层、要素类或要素服务。

Feature Layer
level_name

源 CAD 数据所在楼层的唯一楼层名称。

String
vertical_order

表示每个楼层的垂直顺序的序数整数。 一楼的垂直顺序为零 (0)。 对于一楼之上的楼层,垂直顺序值为正;对于一楼之下的楼层,则为负。

Long
level_elevation

楼层相对于平坦地形的高程。 此值用于填充 Levels、Units 和 Details 的 z 值。

Linear Unit
target_facility_features

符合 Indoors 模型并与目标 Units、Levels 或 Facilities 要素位于同一工作空间中的目标 Facilities 要素图层、要素类或要素服务。

Feature Layer
facility_name

源 CAD 数据所在建筑物的唯一设施点名称。

String
target_unit_features

符合 Indoors 模型并与目标 Units、Levels 或 Facilities 要素位于同一工作空间中的目标 Units 要素图层、要素类或要素服务。

Feature Layer
target_detail_features

符合 Indoors 模型并与目标 Units、Levels 或 Facilities 要素位于同一工作空间中的目标 Details 要素图层、要素类或要素服务。

Feature Layer
allow_layers_from_cad
(可选)

指定表示单元边界的折线是源自 CAD 文件,还是源自地图要素图层。 如果指定从地图要素图层获取源,则可以在图层上进行选择以导入要素子集。

  • ALLOW_LAYERS_FROM_CAD表示单元边界的折线将直接源自 CAD 文件。 这是默认设置。
  • NO_ALLOW_LAYERS_FROM_CAD表示单元边界的折线将源自地图要素图层。
Boolean
input_unit_layers_cad
[input_unit_layers_cad,...]
(可选)

CAD 图层,包含定义设施点内可用空间的边和范围的折线实体。 这些折线将用于在目标 Units 图层中创建单元面要素。

String
input_unit_feature_layers
[input_unit_feature_layers,...]
(可选)

要素图层,包含定义设施点内可用空间的边和范围的折线实体。 这些折线将用于在目标 Units 图层中创建单元面要素。

Feature Layer
input_level_layers_cad
[input_level_layers_cad,...]
(可选)

CAD 图层,包含定义楼层的边和范围的折线实体。 这些折线将用于在目标 Levels 图层中创建单元面要素。

String
input_level_feature_layers
[input_level_feature_layers,...]
(可选)

要素图层,包含定义楼层的边和范围的折线实体。 这些折线将用于在目标 Levels 图层中创建单元面要素。

Feature Layer
input_door_layers_cad
[input_door_layers_cad,...]
(可选)

CAD 图层,包含定义属于单元边界的门的折线实体。 将闭合这些折线以在目标 Units 图层中创建单元面要素。

String
input_door_feature_layers
[input_door_feature_layers,...]
(可选)

要素图层,包含定义属于单元边界的门的折线实体。 将闭合这些折线以在目标 Units 图层中创建单元面要素。

Feature Layer
input_detail_layers_cad
[input_detail_layers_cad,...]
(可选)

CAD 图层,包含表示楼层平面图细节(例如墙壁、窗户和门)的折线实体,这些实体将作为折线要素包含在目标 Details 图层中。

String
input_detail_feature_layers
[input_detail_feature_layers,...]
(可选)

要素图层,包含表示楼层平面图细节(例如墙壁、窗户和门)的折线实体,这些实体将作为折线要素包含在目标 Details 图层中。

Feature Layer
input_facility_layers_cad
[input_facility_layers_cad,...]
(可选)

CAD 图层,包含定义设施点覆盖区的边和范围的折线实体。 如果未提供任何值,则将根据设施点内所有楼层的范围创建或更新设施点覆盖区。

String
input_facility_feature_layers
[input_facility_feature_layers,...]
(可选)

要素图层,包含定义设施点覆盖区的边和范围的折线实体。 如果未提供任何值,则将根据设施点内所有楼层的范围创建或更新设施点覆盖区。

Feature Layer
cad_annotation_mapping
[cad_annotation_mapping,...]
(可选)

指定 CAD 注记要素的字段映射以填充 Indoors 工作空间中图层的字段。

  • 目标室内图层 - Indoors 工作空间中要将注记映射到的图层。 该工具支持映射到为“目标 Facilities”、“目标 Levels”和“目标 Units”参数提供的图层。
  • 目标字段 - 要将注记映射到的目标图层中的字段。 该字段必须已经存在。
  • 类型 - 要映射的注记的类型。 支持 Text、Block 和 Handle 类型。
  • 源 CAD 图层 - CAD 图层,包含将进行映射的注记。
  • 块属性 - 对于具有 Block 类型的注记,提供包含要映射的信息的块属性。
  • 分隔符 - 对于存储在分隔字符串中的注记,请提供分隔字符。
  • 位置 - 对于存储在分隔字符串中的注记,请提供要映射的值的位置。

Value Table
door_close_buffer
(可选)

该工具将从门要素搜索单元边界的距离(以国际英寸或毫米为单位)。 该参数值必须包含数值和测量单位。 默认值为 0.3 国际英寸。

Linear Unit
input_unit_minimum_width
(可选)

空间必须被视为 Units 要素的最小宽度(以国际英尺或米为单位)。 宽度小于此阈值的要素将写入非单元面要素类,并且不包含在目标 Units 图层中。 该参数值必须包含数值和测量单位。 默认值为 3 国际英尺。

Linear Unit
input_unit_minimum_area
(可选)

空间必须被视为 Units 要素的最小面积(以平方英尺或平方米为单位)。 面积小于此阈值的要素将写入非单元面要素类,并且不包含在目标 Units 图层中。 该参数值必须包含数值和测量单位。 默认值为 9 国际平方英尺。

Areal Unit
floor_plan_config_file
(可选)

包含预设参数值的 JSON 配置文件。 提供先前工具运行的配置文件,填充具有相同或相似 CAD 图层和映射的 CAD 文件工具中的参数。

当提供配置文件时,可以在运行该工具之前更改其他参数值。 如果进行了其他参数更改,则会创建一个新的输出配置文件。

仅当选中 allow_layers_from_cad 参数时,此参数才可用。

File
input_gap_tolerance
(可选)

生成单元时将被捕捉到一起的输入要素的悬空端点的邻近容差。 以毫米或国际英寸为单位提供值。 默认值为 0.039 国际英寸(1 毫米)。

Linear Unit

派生输出

名称说明数据类型
updated_units

更新后的目标 Units 要素。

Feature Layer

代码示例

ImportCADToIndoorDataset 示例 1(Python 窗口)

以下 Python 窗口脚本演示了如何在即时模式下使用 ImportCADToIndoorDataset 函数。

import arcpy
arcpy.indoors.ImportCADToIndoorDataset('C:/Indoors/Building_H/Bldg_H_1.dwg', 'C:/Indoors/ExampleCampus.gdb/Indoor/Levels', 'H1', '0',
                                       "0 Meters", 'C:/Indoors/ExampleCampus.gdb/Indoor/Facilities', 'Building H', 
                                       'C:/Indoors/ExampleCampus.gdb/Indoor/Units', 'C:/Indoors/ExampleCampus.gdb/Indoor/Details',
                                       'ALLOW_LAYERS_FROM_CAD', 'A-ROOMS', '',
                                       'A-FLOOR-OUTLINE', '',
                                       '', '',
                                       '', '',
                                       'Units NAME Text A-AREA-IDEN # # #;Units USE_TYPE Text A-AREA-TYPE # # #', '',
                                       '0.455 Meters', '0.4 SquareMeters', 
                                       '', '')
ImportCADToIndoorDataset 示例 2(Python 窗口)

以下 Python 窗口脚本演示了如何在即时模式下通过 CAD 实体 Handle 映射使用 ImportCADToIndoorDataset 函数。

import arcpy
arcpy.indoors.ImportCADToIndoorDataset('C:/Indoors/Building_H/Bldg_H_1.dwg', 'C:/Indoors/ExampleCampus.gdb/Indoor/Levels', 'H1', '0',
                                       "0 Meters", 'C:/Indoors/ExampleCampus.gdb/Indoor/Facilities', 'Building H', 
                                       'C:/Indoors/ExampleCampus.gdb/Indoor/Units', 'C:/Indoors/ExampleCampus.gdb/Indoor/Details',
                                       'ALLOW_LAYERS_FROM_CAD', 'A-ROOMS', '',
                                       'A-FLOOR-OUTLINE', '',
                                       '', '',
                                       '', '',
                                       "Units HANDLE Handle # # # #", '',
                                       '0.455 Meters', '0.4 SquareMeters', 
                                       '', '')
ImportCADToIndoorDataset 示例 3(独立脚本)

以下独立脚本演示了如何使用 ImportCADToIndoorDataset 函数。

import arcpy

#Set the CAD dataset to import
input_cad_datasets = 'C:/Indoors/Building_H/Bldg_H_2.dwg'

#Set target layers that conform to the ArcGIS Indoors Information model
target_unit_features = 'C:/Indoors/ExampleCampus.gdb/Indoor/Units'
target_detail_features = 'C:/Indoors/ExampleCampus.gdb/Indoor/Details'
target_level_features = 'C:/Indoors/ExampleCampus.gdb/Indoor/Levels'
target_facility_features = 'C:/Indoors/ExampleCampus.gdb/Indoor/Facilities'

#Set the level information
level_name = "H2"
vertical_order = 1
level_information = "8 FeetInt"

#Set the facility name
facility_name = "Building H"

# Choose to import CAD layers added to a map, 
# create the map layers from polyline features in CAD
allow_layers_from_cad = "NO_ALLOW_LAYERS_FROM_CAD"
input_unit_layers_cad = ''
in_CAD_fc = "C:/Indoors/Building_H/Bldg_H_2.dwg/Polyline"
input_unit_feature_layers = arcpy.management.MakeFeatureLayer(in_CAD_fc, 'units_feature_layer', "Layer IN('A-DOOR', 'A-WALL', 'I-WALL')") 
input_level_layers_cad = ''
input_level_feature_layers = arcpy.management.MakeFeatureLayer(in_CAD_fc, 'level_feature_layer', "Layer = 'A-FLOOR-OUTLINE'")
input_facility_layers_cad = ''
input_facility_feature_layers = arcpy.management.MakeFeatureLayer(in_CAD_fc, 'facility_feature_layer', "Layer = 'A-BLDG-OUTLINE'")
input_door_layers_cad = ''
input_door_feature_layers = arcpy.management.MakeFeatureLayer(in_CAD_fc, 'level_feature_layer', "Layer = 'A-DOOR'")

#Map CAD annotation
cad_annotation_mapping = 'Units NAME Text A-AREA-IDEN # # #;'\
                         'Units USE_TYPE Block A-ROOM-INFO ROOMUSE # #;'\
                         'Facilities NAME_LONG Text A-BLDG-INFO # . 2'

# Set the minimum width and area that should be considered a unit feature
door_close_buffer = ''
input_unit_minimum_width = ""
input_unit_minimum_area = ""

# Do not use settings stored in a configuration file
floor_plan_config_file = ""

#Set gap tolerance
input_gap_tolerance="0.039 InchesInt"

# Run the tool
arcpy.indoors.ImportCADToIndoorDataset(input_cad_datasets, target_level_features, level_name, vertical_order,
                                       level_elevation, target_facility_features, facility_name, target_unit_features,
                                       target_detail_features, allow_layers_from_cad, 
                                       input_unit_layers_cad, input_unit_feature_layers,
                                       input_level_layers_cad, input_level_feature_layers,
                                       input_door_layers_cad, input_door_feature_layers,
                                       input_facility_layers_cad, input_facility_feature_layers,
                                       cad_annotation_mapping, door_close_buffer,
                                       input_unit_minimum_width, input_unit_minimum_area, floor_plan_config_file, input_gap_tolerance)
ImportCADToIndoorDataset 示例 4(独立脚本)

以下独立脚本演示了如何使用 ImportCADToIndoorDataset 函数和 JSON 配置文件进行参数设置。

import arcpy

#Set the CAD dataset to import
input_cad_datasets = 'C:/Indoors/Building_H/Bldg_H_2.dwg'

#Set target layers that conform to the ArcGIS Indoors Information model
target_unit_features = 'C:/Indoors/ExampleCampus.gdb/Indoor/Units'
target_detail_features = 'C:/Indoors/ExampleCampus.gdb/Indoor/Details'
target_level_features = 'C:/Indoors/ExampleCampus.gdb/Indoor/Levels'
target_facility_features = 'C:/Indoors/ExampleCampus.gdb/Indoor/Facilities'

#Set the level information
level_name = "H2"
vertical_order = 1
level_information = "8 FeetInt"

#Set the facility name
facility_name = "Building H"

# Choose to import CAD layers as specified in a configuration file 
allow_layers_from_cad = "ALLOW_LAYERS_FROM_CAD"
input_unit_layers_cad = ""
input_unit_feature_layers = "" 
input_level_layers_cad = ""
input_level_feature_layers = ""
input_facility_layers_cad = ""
input_facility_feature_layers = ""
input_door_layers_cad = ""
input_door_feature_layers = ""

#Map CAD annotation as specified in a configuration file
cad_annotation_mapping = ""

# Set advanced options as specified in a configuration file
door_close_buffer = ""
input_unit_minimum_width = ""
input_unit_minimum_area = ""

# Use settings stored in this configuration file
floor_plan_config_file = "C:/Indoors/Bldg_H_1_06_10_2024_16_13_19.json"

# Set gap tolerance
input_gap_tolerance="0.039 InchesInt"

# Run the tool
arcpy.indoors.ImportCADToIndoorDataset(input_cad_datasets, target_level_features, level_name, vertical_order,
                                       level_elevation, target_facility_features, facility_name, target_unit_features,
                                       target_detail_features, allow_layers_from_cad, 
                                       input_unit_layers_cad, input_unit_feature_layers,
                                       input_level_layers_cad, input_level_feature_layers,
                                       input_door_layers_cad, input_door_feature_layers,
                                       input_facility_layers_cad, input_facility_feature_layers,
                                       cad_annotation_mapping, door_close_buffer,
                                       input_unit_minimum_width, input_unit_minimum_area, floor_plan_config_file, input_gap_tolerance)

环境

此工具不使用任何地理处理环境。

许可信息

  • Basic: 否
  • Standard: 否
  • Advanced: 需要 ArcGIS Indoors Pro 或 ArcGIS Indoors Maps

相关主题