生成占用者要素 (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_SUBTITLE、DESCRIPTION、SITE_NAME、FACILITY_NAME、LEVEL_NAME、LEVEL_NUMBER、SECTION_ID、SECTION_NAME、ELEVATION_ABSOLUTE、ELEVATION_RELATIVE、HEIGHT_ABSOLUTE 和 VERTICAL_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 Viewer、Space Planner、ArcGIS Indoors for iOS 或 ArcGIS 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_features 和 in_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

相关主题