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

摘要

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

使用情况

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

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

    警告:

    Ensure that the BIM data is accurately georeferenced (including any linked Revit models) and the coordinate system of the indoor dataset and indoor 3D dataset match the coordinate system in the associated .wld3 file. Both the horizontal and vertical coordinate system units must match, and any linked Revit models must have the same horizontal and vertical coordinate systems as the host Revit model. 地理配准不精确或者坐标系不匹配可能会导致 3D 要素的缩放问题。

    了解有关在 ArcGIS Pro 中对 BIM 数据进行地理配准的详细信息

  • 目标 Units 要素目标 Detail 要素目标 Facility 要素目标楼层要素目标 Unit 3D 要素目标 Detail 3D 要素目标 Facility 要素参数必须参考符合 Indoors 模型的要素类或要素图层。

    注:

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

    目标 3D 要素可以来自与目标 2D 要素不同的工作空间。

  • 运行提取 BIM 文件楼层平面图工具,可以创建 BIM 模型的 2D 楼层平面图图层类,并将其用作此工具的输入。 如果选中从楼层平面图图层加载参数,则仅将输入楼层平面图图层中存在的要素加载到 Indoors 工作空间。 支持在输入楼层平面图图层上设置的任何选择或定义查询。

    注:

    如果使用由提取 BIM 文件平面图工具创建的楼层平面图图层,则其必须与输入 .ifc 文件位于同一坐标系中。

  • 将根据下表将要素从 .ifc 文件导入到室内数据集中:

    IFC 类别Indoors 模型要素类

    所有 Slabs 的范围

    设施点

    Slabs

    楼层

    Spaces

    单元

    门、柱、墙壁、坡道、楼梯、窗户、幕墙和承重柱

    细节

  • 设施点名称参数用于为室内数据集中导入的设施要素填充 NAME 字段。 在设置此参数值时,请记住以下几点:

    • 要将输入 IFC 数据作为新设施点添加到室内数据集,需为设施点名称参数提供一个与现有设施点要素的 NAME 字段值不匹配的值。
    • 要更新室内数据集中的现有设施点要素,需使用该设施点的 NAME 字段值作为设施点名称参数值。

  • 将一楼高程设置为零参数指定是否将一楼高程定义为 0 或使用一楼地理参考高程。

    • 默认情况下,一楼高程设置为 0,其他楼层和室内设施的 z 值则根据其与一楼的关系进行定义。 选中此参数后,将共享楼层感知型场景,并且高程表面图层将关闭。
    • 当未选中此参数时,楼层的高程将与地理参考 BIM 模型中的楼层高程相匹配。 取消选中此参数允许您与高程表面共享楼层感知型场景。 在取消选中此参数之前,请确保 BIM 模型相对于地面具有准确的地理参考。
  • 如果您为目标要素参数设置的位置中存在数据,则会比较源 .ifc 文件和工具参数的“设施点”和“楼层”名称与目标 Indoors 工作空间,以确定要更新的要素。

    • 如果设施点名称参数值与目标设施点要素的 NAME 字段值相匹配,则将更新 Facilities 要素。
    • 如果源 .ifc 文件中楼层要素的 BldgLevel 字段值与目标楼层要素的 NAME 字段值相匹配,则将更新楼层要素及其关联的详情和单元要素。
    • 在更新过程中,将保留 Facilities、Levels 和 Units 图层中默认未填充的字段中的字段值。 将删除并重新添加 Details 要素。
    • 将为所选设施点要素删除并重新导入 3D 要素。
    警告:

    由于更新工作流中的细节要素被删除并重新导入,因此更新的细节要素的 DETAIL_ID 字段值会发生变化。 如果存在现有 2D 和 3D 细节要素,且您仅更新了 2D 要素,则 ID 可能会不匹配。 要保持细节 ID 的一致性,请在同一工具运行中导入 2D 和 3D 要素。

  • 一楼名称参数用于定义建筑物的一楼。 目标楼层图层要素中每个楼层的垂直顺序、楼层编号、名称缩写和 z 值均派生自此值。 设置为一楼的楼层是使用垂直顺序和 z 值 0 创建的。 将向高程小于定义的一楼的任何楼层分配负垂直顺序和 z 值,将向一楼以上的楼层分配正垂直顺序和 z 值。

  • 使用加载屋顶参数可指定是否导入屋顶元素并与楼层要素一起使用,以便在 Indoors 工作空间中创建楼层要素。 如果未选中加载屋顶参数,则仅使用输入 .ifc 文件中的楼层要素来创建楼层要素。 这是默认设置。

  • 可以使用单元属性映射参数将其他属性从源 .ifc 文件中的 Spaces 图层映射到目标单元图层中的现有字段。 运行该工具之前,字段必须存在。 建议将源 IFC Spaces 图层中的字段映射到具有相同数据类型的目标字段。

  • 使用目标单元 3D 要素目标细节 3D 要素目标设施点 3D 要素参数,将要素导入到由创建室内 3D 数据集工具创建的 Units3D、Details3D 和 Facilities3D 多面体要素类。

    要素将从输入 .ifc 文件导入到目标 3D 图层,方式如下:

    • 目标单元 3D 要素 - 在 Units3D 图层中,将根据 .ifc 文件的“空间”类别创建多面体要素。 任何为单元属性映射参数配置的属性字段映射也将应用于 Units3D 图层中的任何匹配字段名称。
    • 目标细节 3D 要素 - 在 Details3D 图层中,将根据 .ifc 文件的以下类别对象创建多面体要素:门、柱、墙壁、坡道、楼梯、窗户、幕墙和结构柱。
    • 目标设施点 3D 要素 - 在 Facilities3D 图层中,将根据 BIM 文件工作空间中的 ExteriorShell 要素类的对象创建多面体要素。
    • 符号系统是根据 BIM 模型的符号系统生成的。

参数

标注说明数据类型
输入 BIM 文件工作空间

输入 IFC 工作空间。

BIM File Workspace
目标设施点要素

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

Feature Layer
设施点名称

建筑物常用名称。 如果目标设施点图层中存在同名要素,则将更新该要素以及所有关联的楼层、单元和细节要素。

String
目标楼层要素

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

Feature Layer
目标单元要素

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

Feature Layer
目标细节要素

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

Feature Layer
一楼名称

建筑物的一楼。 楼层的垂直顺序派生自此值。 将向高程小于指定的一楼的任何楼层分配负垂直顺序。

String
单元属性映射
(可选)

控制将使用来自输入 IFC Spaces 图层的字段值填充 Units 图层中的哪些属性字段。 运行该工具之前,字段必须存在。 建议将输入 IFC Spaces 图层中的字段映射到具有相同字段类型的 Units 图层中的字段。

Field Mappings
从楼层平面图图层加载
(可选)

指定是否将从提取 BIM 文件楼层平面图工具创建的输入楼层平面图图层加载要素。

  • 选中 - 将从提取 BIM 文件楼层平面图工具创建的输入楼层平面图图层加载要素。 将支持在输入图层上设置的任何选择。
  • 未选中 - 将从 .ifc 文件加载要素。 将加载所有楼层,并且不支持任何选择。 这是默认设置。
Boolean
输入楼层平面图覆盖区图层
(可选)

使用提取 BIM 文件楼层平面图工具创建的楼层平面图覆盖区要素图层。 此图层中的要素将用于在目标设施点图层中创建要素。

Feature Layer
输入楼层平面图面图层
(可选)

使用提取 BIM 文件楼层平面图工具创建的楼层平面图面要素图层。 此图层中的要素将用于在目标楼层和单元图层中创建要素。

Feature Layer
输入楼层平面图折线图层
(可选)

使用提取 BIM 文件楼层平面图工具创建的楼层平面图折线要素图层。 此图层中的要素将用于在目标 Details 图层中创建要素。

Feature Layer
目标单元 3D 要素
(可选)

符合 Indoors 模型的目标 Units3D 要素图层、要素类或要素服务。 在目标 Units3D 图层中,将根据输入 .ifc 文件的“空间”类别创建多面体单元要素。

Feature Layer
目标细节 3D 要素
(可选)

符合 Indoors 模型的目标 Details3D 要素图层、要素类或要素服务。 在目标 Details3D 图层中,将根据输入 .ifc 文件的以下类别创建多面体细节要素:门、柱、墙壁、坡道、楼梯、窗户、幕墙和结构柱。

Feature Layer
目标设施点 3D 要素
(可选)

符合 Indoors 模型的目标 3D Facilities 要素图层、要素类或要素服务。 将在输入 .ifc 文件的 ExteriorShell 类别的目标 Facilities3D 图层中创建多面体设施要素。

Feature Layer
加载屋顶
(可选)

指定是否将屋顶要素作为楼层要素导入。

  • 选中 - 将从输入 .ifc 文件导入屋顶元素,并与楼层要素一起使用,以便在 Indoors 工作空间中创建楼层要素。
  • 未选中 - 不会从 .ifc 文件导入屋顶要素。 这是默认设置。
Boolean
将一楼高程设置为零

指定是否将一楼的高程设置为 0 或设置为地理参考 BIM 模型中楼层要素的高程。

  • 选中 - 一楼高程将设置为 0,其他楼层的 z 值则根据其与一楼的关系进行定义。 这是默认设置。
  • 未选中 - 楼层的高程将与地理参考 BIM 模型中的楼层高程相匹配。
Boolean

派生输出

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

更新后的目标 Facilities 要素。

Feature Layer
更新的 Levels

更新后的目标 Levels 要素。

Feature Layer
更新的 Units

更新后的目标 Units 要素。

Feature Layer
更新的 Details

更新后的目标 Details 要素。

Feature Layer
已更新的 3D 单元

更新后的目标 3D 单元要素。

Feature Layer
已更新的 3D 细节

更新后的目标 3D 细节要素。

Feature Layer
已更新的 3D 设施点

更新后的目标 3D 设施点要素。

Feature Layer

arcpy.indoors.ImportIFCToIndoorDataset(in_bim_file_workspace, target_facility_features, facility_name, target_level_features, target_unit_features, target_detail_features, ground_floor_name, {unit_properties_mapping}, {load_floorplan_layers}, {in_floorplan_footprint}, {in_floorplan_polygon}, {in_floorplan_polyline}, {target_unit3d_features}, {target_detail3d_features}, {target_facility3d_features}, {load_roofs}, ground_elevation_zero)
名称说明数据类型
in_bim_file_workspace

输入 IFC 工作空间。

BIM File Workspace
target_facility_features

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

Feature Layer
facility_name

建筑物常用名称。 如果目标设施点图层中存在同名要素,则将更新该要素以及所有关联的楼层、单元和细节要素。

String
target_level_features

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

Feature Layer
target_unit_features

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

Feature Layer
target_detail_features

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

Feature Layer
ground_floor_name

建筑物的一楼。 楼层的垂直顺序派生自此值。 将向高程小于指定的一楼的任何楼层分配负垂直顺序。

String
unit_properties_mapping
(可选)

控制将使用来自输入 IFC Spaces 图层的字段值填充 Units 图层中的哪些属性字段。 运行该工具之前,字段必须存在。 建议将输入 IFC Spaces 图层中的字段映射到具有相同字段类型的 Units 图层中的字段。

Field Mappings
load_floorplan_layers
(可选)

指定是否将从提取 BIM 文件楼层平面图工具创建的输入楼层平面图图层加载要素。

  • LOAD_FROM_FLOORPLAN_LAYERS将从提取 BIM 文件楼层平面图工具创建的输入楼层平面图图层加载要素。 将支持在输入图层上设置的任何选择。
  • NO_LOAD_FROM_FLOORPLAN_LAYERS将从 .ifc 文件加载要素。 将加载所有楼层,并且不支持任何选择。 这是默认设置。
Boolean
in_floorplan_footprint
(可选)

使用提取 BIM 文件楼层平面图工具创建的楼层平面图覆盖区要素图层。 此图层中的要素将用于在目标设施点图层中创建要素。

Feature Layer
in_floorplan_polygon
(可选)

使用提取 BIM 文件楼层平面图工具创建的楼层平面图面要素图层。 此图层中的要素将用于在目标楼层和单元图层中创建要素。

Feature Layer
in_floorplan_polyline
(可选)

使用提取 BIM 文件楼层平面图工具创建的楼层平面图折线要素图层。 此图层中的要素将用于在目标 Details 图层中创建要素。

Feature Layer
target_unit3d_features
(可选)

符合 Indoors 模型的目标 Units3D 要素图层、要素类或要素服务。 在目标 Units3D 图层中,将根据输入 .ifc 文件的“空间”类别创建多面体单元要素。

Feature Layer
target_detail3d_features
(可选)

符合 Indoors 模型的目标 Details3D 要素图层、要素类或要素服务。 在目标 Details3D 图层中,将根据输入 .ifc 文件的以下类别创建多面体细节要素:门、柱、墙壁、坡道、楼梯、窗户、幕墙和结构柱。

Feature Layer
target_facility3d_features
(可选)

符合 Indoors 模型的目标 3D Facilities 要素图层、要素类或要素服务。 将在输入 .ifc 文件的 ExteriorShell 类别的目标 Facilities3D 图层中创建多面体设施要素。

Feature Layer
load_roofs
(可选)

指定是否将屋顶要素作为楼层要素导入。

  • LOAD_ROOFS将从输入 .ifc 文件导入屋顶元素,并与楼层要素一起使用,以便在 Indoors 工作空间中创建楼层要素。
  • NO_LOAD_ROOFS不会从输入 .ifc 文件导入屋顶要素。 这是默认设置。
Boolean
ground_elevation_zero

指定是否将一楼的高程设置为 0 或是否使用地理参考 BIM 模型中楼层要素的高程。

  • SET_GROUND_ELEVATION_ZERO一楼高程将设置为 0,其他楼层的 z 值则根据其与一楼的关系进行定义。 这是默认设置。
  • NO_SET_GROUND_ELEVATION_ZERO楼层的高程将与地理参考 BIM 模型中的楼层高程相匹配。
Boolean

派生输出

名称说明数据类型
updated_facilities

更新后的目标 Facilities 要素。

Feature Layer
updated_levels

更新后的目标 Levels 要素。

Feature Layer
updated_units

更新后的目标 Units 要素。

Feature Layer
updated_details

更新后的目标 Details 要素。

Feature Layer
updated_units3d

更新后的目标 3D 单元要素。

Feature Layer
updated_details3d

更新后的目标 3D 细节要素。

Feature Layer
updated_facilities3d

更新后的目标 3D 设施点要素。

Feature Layer

代码示例

ImportIFCToIndoorDataset 示例 1(Python 窗口)

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

import arcpy
arcpy.indoors.ImportCADToIndoorDataset('C:/Indoors/AdminBuilding.ifc', 'C:/Indoors/ExampleCampus.gdb/Indoor/Facilities', 'Admin Building',
                                         'C:/Indoors/ExampleCampus.gdb/Indoor/Levels', 'C:/Indoors/ExampleCampus.gdb/Indoor/Units', 
                                         'C:/Indoors/ExampleCampus.gdb/Indoor/Details', '2', '', 
                                         'NO_LOAD_FROM_FLOORPLAN_LAYERS', '', '', '', 
                                         'C:/Indoors/ExampleCampus.gdb/Indoor3D/Units3D',
                                         'C:/Indoors/ExampleCampus.gdb/Indoor3D/Details3D',
                                         'C:/Indoors/ExampleCampus.gdb/Indoor3D/Facilities3D', 
                                         'LOAD_ROOFS', 'SET_GROUND_ELEVATION_ZERO')
ImportIFCToIndoorDataset 示例 2(Python 窗口)

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

import arcpy
    
#Set the IFC file to import
in_bim_file_workspace= 'C:/Indoors/AdminBuilding.ifc'

#Set target layers that conform to the ArcGIS Indoors Information model and Facility Name
target_facility_features='C:/Indoors/ExampleCampus.gdb/Indoor/Facilities'
facility_name="Administrative Building"
target_level_features='C:/Indoors/ExampleCampus.gdb/Indoor/Levels'
target_unit_features='C:/Indoors/ExampleCampus.gdb/Indoor/Units'
target_detail_features='C:/Indoors/ExampleCampus.gdb/Indoor/Details'
target_unit3d_features='C:/Indoors/ExampleCampus.gdb/Indoor3D/Units3D'
target_detail3d_features='C:/Indoors/ExampleCampus.gdb/Indoor3D/Details3D'
target_facilities3d_features='C:/Indoors/ExampleCampus.gdb/Indoor3D/Facilities3D'


#Set which floor is the ground floor, and what elevation method to use
ground_floor_name="0"
ground_elevation_zero = 'SET_GROUND_ELEVATION_ZERO'

#Map additional unit attributes from spaces features
unit_properties_mapping='NAME_LONG "Long Name" true true false 255 Text 0 0,First,#,"Spaces",Family,0,255;' \
                            'CUSTOM_FIELD_DEPARTMENT "Department" true true false 255 Text 0 0,First,#,"Spaces",Department,0,255;' \
                            'CUSTOM_FIELD_FILEUPDATE "IFC File Update" true true false 255 Date 0 0,First,#,"Spaces",DocUpdate,0,255;'
    
#Load from floorplan layers created using Extract BIM File Floorplan tool
load_floorplan_layers="LOAD_FROM_FLOORPLAN_LAYERS"
in_floorplan_footprint='C:/Indoors/ExampleCampus.gdb/Floorplan_Dataset/Footprint'
in_floorplan_polygon='C:/Indoors/ExampleCampus.gdb/Floorplan_Dataset/planPolygon'
in_floorplan_polyline='C:/Indoors/ExampleCampus.gdb/Floorplan_Dataset/planPolyline'
load_roof_layers="LOAD_ROOFS"

#Run the tool
arcpy.indoors.ImportIFCToIndoorDataset_Indoors(in_bim_file_workspace, target_facility_features, facility_name,
                                                target_level_features, target_unit_features, target_detail_features, 
                                                ground_floor_name, unit_properties_mapping, load_floorplan_layers,
                                                in_floorplan_footprint, in_floorplan_polygon, in_floorplan_polyline,
                                                target_unit3d_features, target_detail3d_features, target_facility3d_features, 
                                                load_roof_layers, ground_elevation_zero)

环境

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

许可信息

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

相关主题