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

适用于 ArcGIS Indoors Pro 或 ArcGIS Indoors Maps 扩展模块。

摘要

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

使用情况

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

  • 目标 Units 要素目标 Details 要素目标 Facilities 要素目标 Levels 要素参数必须参考符合 Indoors 模型的要素类或要素图层。

    注:

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

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

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

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

    注:

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

  • 将根据下表将要素从 IFC 文件导入到 Indoors 模型中:

    IFC 类别Indoors 模型要素类

    Slabs

    Levels

    Spaces

    Units

    所有 Slabs 的范围

    设施点

    Doors、Columns、Walls、Ramps、Stairs、Windows、Curtain Walls、Furniture 和 Structural Columns

    Details

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

    • 要将输入 IFC 数据添加为现有室内数据集中的新设施点,请指定未分配给目标设施点要素中其他设施点的设施点名称。
    • 要更新现有设施点,请使用目标设施点要素中该设施点要素的 NAME 字段值。
      注:

      要更新现有设施点要素,设施点名称参数值必须与设施点要素的 NAME 字段值相匹配。

  • 如果您为目标要素参数设置的位置中存在数据,则会将源 IFC 文件中的“设施点”和“楼层”名称与要素中的“设施点”和“楼层”名称进行比较,以确定要更新的要素。

    • 如果设施点名称参数值与目标设施点要素的 NAME 字段值相匹配,则将更新 Facilities 要素。
    • 如果源 IFC 文件中 Levels 要素的 BldgLevel 字段值与目标 Levels 要素的 NAME 字段值相匹配,则将更新 Levels 要素及其关联的 Details 和 Units 要素。
    • 在更新过程中,将保留 Facilities、Levels 和 Units 图层中默认未填充的字段中的字段值。 将删除并重新添加 Details 要素。
    注:

    如果设施点名称参数值与现有设施点要素的 NAME 字段不匹配,则该工具将导入 IFC 模型作为具有指定设施点名称值的新设施点。

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

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

参数

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

输入 IFC 工作空间。

BIM File Workspace
目标设施点要素

符合 ArcGIS Indoors 信息模型并与目标楼层、单元和细节要素位于同一工作空间中的目标设施点要素图层、要素类或要素服务。

Feature Layer
设施点名称

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

String
目标楼层要素

符合 ArcGIS Indoors 信息模型并与目标设施点、单元和细节要素位于同一工作空间中的目标楼层要素图层、要素类或要素服务。

Feature Layer
目标单元要素

符合 ArcGIS Indoors 信息模型并与目标设施点、楼层和细节要素位于同一工作空间中的目标单元要素图层、要素类或要素服务。

Feature Layer
目标细节要素

符合 ArcGIS Indoors 信息模型并与目标设施点、楼层和单元要素位于同一工作空间中的目标细节要素图层、要素类或要素服务。

Feature Layer
一楼名称

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

String
单元属性映射
(可选)

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

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

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

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

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

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

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

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

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

Feature Layer

派生输出

标注说明数据类型
更新设施点

更新的目标设施点要素。

Feature Layer
更新楼层

更新的目标楼层要素。

Feature Layer
更新单元

更新的目标单元要素。

Feature Layer
更新细节

更新的目标细节要素。

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})
名称说明数据类型
in_bim_file_workspace

输入 IFC 工作空间。

BIM File Workspace
target_facility_features

符合 ArcGIS Indoors 信息模型并与目标楼层、单元和细节要素位于同一工作空间中的目标设施点要素图层、要素类或要素服务。

Feature Layer
facility_name

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

String
target_level_features

符合 ArcGIS Indoors 信息模型并与目标设施点、单元和细节要素位于同一工作空间中的目标楼层要素图层、要素类或要素服务。

Feature Layer
target_unit_features

符合 ArcGIS Indoors 信息模型并与目标设施点、楼层和细节要素位于同一工作空间中的目标单元要素图层、要素类或要素服务。

Feature Layer
target_detail_features

符合 ArcGIS Indoors 信息模型并与目标设施点、楼层和单元要素位于同一工作空间中的目标细节要素图层、要素类或要素服务。

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 文件楼层平面图工具创建的楼层平面图折线要素图层。 此图层中的要素将用于在目标细节图层中创建要素。

Feature Layer

派生输出

名称说明数据类型
updated_facilities

更新的目标设施点要素。

Feature Layer
updated_levels

更新的目标楼层要素。

Feature Layer
updated_units

更新的目标单元要素。

Feature Layer
updated_details

更新的目标细节要素。

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', '', '', '',)
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'

#Set which floor is the ground floor
ground_floor_name="0"

#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'

#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)

环境

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

许可信息

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

相关主题