生成占用者要素 (Indoors)

可用于具有 Indoors 扩展模块许可的 ArcGIS 组织。

摘要

创建或更新符合 ArcGIS Indoors 信息模型的员工或占用者点数据。

该工具会根据输入建筑空间(单位)生成点要素,然后使用占用者数据丰富这些点。 此工具的输出可用于支持室内分析和 Indoors web 和移动应用程序中的功能,如搜索、路径分析、旅馆式办公区域预定和空间规划。

使用情况

  • 输入单元要素参数值必须是来自室内数据集或 Indoors 地理数据库的要素图层或要素类。

  • 输入单元要素值必须包括 Units 要素类的 Indoors 模型描述的 AREA_ID 字段。

  • 输入占用者表参数值必须为地理数据库表、Microsoft Excel 工作簿中的工作表 (.xls.xlsx) 或逗号分隔的文本文件 (.csv)。

  • 输入占用者表的值必须包含以下字段:

    • KNOWNAS- 搜索占用者时最可能使用的名字和姓氏
    • EMAIL- 占用者的电子邮件地址
    • CONTACT_PHONE- 占用者的电话号码
    • CONTACT_EXTENSION- 与占用者关联的邮政编码扩展码(如果适用)

  • 您也可以在输入占用者表中包括以下字段以增强 Space Planner 应用程序体验:

    • ORG_LEVEL_1- 占用者部门。
    • ORG_LEVEL_2- 占用者团队。
    • JOB_TITLE- 占用者职称。
    • START_DATE- 占用者的开始日期。
    • SITE_NAME- 占用者的关联站点。 如果您使用的是室内数据集,则此字段中的值必须与 Sites 要素类中的 NAME 字段相匹配。

    了解有关加载占用者数据的详细信息

  • 工具可加载未分配到空间的占用者。 如果占用者 ID 字段参数具有 NULL 值,占用者将以未分配状态加载。

  • 默认情况下,输入单元要素参数的坐标系将用于输出占用者要素类参数。 可通过“输出坐标系”地理处理环境设置覆盖此设置。

  • 输出占用者要素类参数值将包括输入单元要素参数的以下字段:

    • UNIT_ID
    • NAME
    • NAME_LONG
    • LEVEL_ID
    • HEIGHT_RELATIVE

    这些字段将使用输入单元要素参数中的相应值填充。

    注:

    输入单元要素值来自 Indoors 地理数据库时,输出占用者要素类的值将包括以下附加字段:NAME_SUBTITLEDESCRIPTIONSITE_NAMEFACILITY_NAMELEVEL_NAMELEVEL_NUMBERSECTION_IDSECTION_NAMEELEVATION_ABSOLUTEELEVATION_RELATIVEHEIGHT_ABSOLUTEVERTICAL_ORDER。 这些字段将使用输入单元要素参数中的相应值填充。

  • 输出占用者要素类的值包括 Indoor Space Planner 应用程序使用的以下字段:

    • AREA_ID
    • ORG_LEVEL_1
    • ORG_LEVEL_2
    • JOB_TITLE
    • START_DATE
    • SITE_ID

    注:

    SITE_ID 字段将基于以下内容进行填充:

    • 如果占用者已分配到单元,则将根据所分配单元的关联站点填充 SITE_ID 字段。
    • 如果占用者未分配到单元,如果输入占用者表的值中包括 SITE_NAME 字段,则将根据此字段填充 SITE_ID 字段。
    • 如果占用者未分配到单元且 SITE_NAME 字段不在输入占用者表中、已被分配空值或已被分配与 Sites 要素类中的 NAME 字段值不匹配的值,则 SITE_ID 字段将填充为空值。
  • 在为 Indoor ViewerSpace PlannerArcGIS Indoors for iOSArcGIS Indoors for Android 客户端应用程序准备地图时,可在地图的 People 图层中使用该工具的输出。

  • 该工具会更新 Space Planner 所使用的输入单元要素属性。 如果为某个单元生成了居住者点要素,则该单元的属性将会更新,如下所示:

    • ASSIGNMENT_TYPE 设置为 Office。
    • AREA_ID 设置为空值。

参数

标注说明数据类型
输入单元要素

输入面要素,表示可能被占用的建筑空间。 在 ArcGIS Indoors 信息模型中,此项将为 Units 图层。 每个空间的质心将用作一个或多个居住者的点位置。

Feature Layer
单位 ID 字段

输入单元要素参数值中的字段,将用作主键以将建筑空间与输入占用者表参数值中的记录相关联。

Field
输入居住者表

包含有关建筑居住者的信息的输入表。

信息可以存储在地理数据库表、Excel 工作簿中的工作表(.xls.xlsx 文件)或 .csv 文件中。

Table View
居住者 ID 字段

输入占用者表参数值中的字段,将用作主键以将占用者与输入单元要素参数值相关联。

Field
输出居住者要素类

通过连接输入单元要素输入居住者表参数值创建的输出要素类。

Feature Class

派生输出

标注说明数据类型
已更新的单位要素类

已更新的输入单元要素图层。

Feature Class

arcpy.indoors.GenerateOccupantFeatures(in_unit_features, unit_id_field, in_occupant_table, occupant_id_field, out_occupant_feature_class)
名称说明数据类型
in_unit_features

输入面要素,表示可能被占用的建筑空间。 在 ArcGIS Indoors 信息模型中,此项将为 Units 图层。 每个空间的质心将用作一个或多个居住者的点位置。

Feature Layer
unit_id_field

in_unit_features 参数值中的字段,将用作主键以将建筑空间与 in_occupant_table 参数值中的记录相关联。

Field
in_occupant_table

包含有关建筑居住者的信息的输入表。

信息可以存储在地理数据库表、Excel 工作簿中的工作表(.xls.xlsx 文件)或 .csv 文件中。

Table View
occupant_id_field

in_occupant_table 参数值中的字段,将用作主键以将占用者与 in_unit_features 参数值相关联。

Field
out_occupant_feature_class

通过连接 in_unit_featuresin_occupant_table 参数值创建的输出要素类。

Feature Class

派生输出

名称说明数据类型
updated_unit_feature_class

已更新的输入单元要素图层。

Feature Class

代码示例

GenerateOccupantFeatures 示例 1(Python 窗口)

以下 Python 窗口脚本演示了如何在即时模式下使用 GenerateOccupantFeatures 函数。 在此示例中,输入和输出位于同一地理数据库中。

import arcpy
arcpy.indoors.GenerateOccupantFeatures('C:/Indoors/ExampleCampus.gdb/Indoor/Units', 
                                       'UNIT_ID', 
                                       'C:/Indoors/ExampleCampus.gdb/EMPLOYEEINFO', 
                                       'LOCATION', 
                                       'C:/Indoors/ExampleCampus.gdb/Indoor/Occupants')
GenerateOccupantFeatures 示例 2(独立脚本)

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

# Name: Indoors_GenerateOccupantFeatures_example2.py
# Description: Imports occupant information from an Excel spreadsheet to a 
#              point feature class in an indoor dataset or Indoors geodatabase.

import arcpy

# Use the Units feature class in the indoor dataset or Indoors geodatabase as the input unit features
in_unit_features = 'C:/Indoors/ExampleCampus.gdb/Indoor/Units'

# The join will use the NAME field from Units feature class
unit_id_field = 'NAME'

# Use an Excel spreadsheet as the input occupant table
in_occupant_table = r'C:\Indoors\EmployeeInfo.xls\MarketingDept$'

# The spreadsheet's OFFICE column has values that match those in Units' NAME field
occupant_id_field = 'OFFICE'

# Output Occupants feature class
out_occupant_feature_class = 'C:/Indoors/ExampleCampus.gdb/Indoor/Occupants'

# Execute GenerateOccupantFeatures
arcpy.indoors.GenerateOccupantFeatures(in_unit_features, unit_id_field, 
                                       in_occupant_table, occupant_id_field, 
                                       out_occupant_feature_class)

许可信息

  • Basic: 否
  • Standard: 否
  • Advanced: 需要 Indoors

相关主题