入室者フィーチャの更新 (Update Occupant Features) (Indoors)

ArcGIS Indoors Pro または ArcGIS Indoors Maps エクステンションで利用できます。

サマリー

ArcGIS Indoors Information Model に準拠する Occupants フィーチャクラスを更新します。

このツールは、[Indoors データベースの作成 (Create Indoors Database)] ツールを使用して作成された Occupants フィーチャクラスを更新します。 新しい入室者を追加する必要がある、既存の入室者を削除する必要がある、座席割り当てやフロア プランの変更に応じて既存の入室者情報を更新する必要がある場合に、入室者フィーチャの更新が必要になることがあります。 更新された Occupants フィーチャクラスは、屋内解析および機能 (Indoor ViewerIndoors Mobile での検索、ルート検索、ワークスペースの予約、および Indoor Space Planner での空間プランニングなど) のサポートに使用できます。

使用法

  • 入力入室者テーブルには、KNOWNAS フィールドと EMAIL フィールドが含まれている必要があります。 ORG_LEVEL_1ORG_LEVEL_2JOB_TITLESTART_DATESITE_ID の各フィールドを含めることで、Space Planner アプリの操作性を高めたり、Occupants フィーチャクラスに設定して維持する情報を含む追加のフィールドを含めることもできます。

    複数の入室者の割り当てを入力入室者テーブルの複数の列に格納できます。 次に、複数の列を使用した割り当ての例を示します。

    複数の割り当て列を含むテーブル

    次の表に、入力入室者テーブルの必須フィールドとオプションのフィールドを示します。

    注意:

    SITE_ID フィールドは、ツールのフィールド マッピング コントロールで SITE_ID フィールドをマッピングした場合のみ設定されます。 このフィールドがマッピングされていない場合、入室者 SITE_ID フィールド値は NULL のままになります。

    フィールド説明NULL 許容
    KNOWNAS

    入室者を検索するときによく使用される姓と名。

    いいえ

    EMAIL

    入室者の電子メール アドレス。

    いいえ

    ORG_LEVEL_1

    組織の第 1 レベル。

    はい

    ORG_LEVEL_2

    組織の第 2 レベル。

    はい

    JOB_TITLE

    入室者の役職。

    はい

    START_DATE

    入室者の入室日。

    はい

    SITE_ID

    入室者に関連付けられているサイト。 このフィールドの値は、Indoors モデルからの Sites フィーチャクラスの SITE_ID フィールドにある値と一致している必要があります。

    はい

    入室者データの読み込みに関する詳細

  • このツールは、スペースに割り当てられていない入室者の読み込みをサポートしています。 [ユニット識別子 (入力入室者テーブル)] パラメーターで指定されたフィールドの値が NULL または空白の場合、入室者は未割り当てとして読み込まれます (入室者はユニットに割り当てられません)。 Units フィーチャクラスでホテリング、共用デスク、または割り当て不可ユニットとして定義された、入力入室者テーブルでユニットに割り当てられた入室者も、未割り当てとして読み込まれます。

    注意:

    [入室者ユニット識別子フィールド] パラメーターが空白 (.csv ファイルまたは Excel シート) または <NULL> (ジオデータベース テーブル) の場合、入室者は未割り当てとして読み込まれます。

  • 入室者情報は、一意の入室者識別子フィールド値に基づいて追加、削除、編集されます。

    注意:

    入室者識別子には、各入室者を一意に識別する情報を含む任意のフィールドを指定できます。 推奨のフィールドは EMAIL です。

  • [ターゲット入室者フィーチャ] パラメーター値には、座席割り当てやフロア プランの変更に応じて [入力入室者テーブル] パラメーター値からの対応する値が入力された次のフィールドが含まれます。

    • UNIT_ID
    • UNIT_NAME ([ターゲット入室者フィーチャ] パラメーター値に存在する場合)。
    • LEVEL_ID
    • SITE_ID ([入室者属性のマッピング] パラメーター内の入力入室者テーブルの値でマッピング可能)。
    注意:

    [ユニット識別子 (入力入室者テーブル)] パラメーターの値を指定しなかった場合、[入室者属性マッピング] パラメーターでマッピングされたフィールドのみが更新されます。

  • Space Planner が使用する Units フィーチャクラスの ASSIGNMENT_TYPE 値が更新され、ユニットの空き状況が表示されます。 入室者フィーチャがユニットに割り当てられた場合、そのユニットの ASSIGNMENT_TYPE 値は [オフィス] に設定されます。

  • 入室者が割り当てられているユニット フィーチャに影響する [フロアプランを Indoors ジオデータベースにインポート (Import Floorplans To Indoors Geodatabase)][BIM を Indoor データセットにインポート (Import BIM To Indoor Dataset)] などのツールを使用してフロア プラン データを更新した場合、ツールの実行時に次の処理が行われます。

    • フロア プラン更新後にユニットが存在しなくなった場合、そのユニットに割り当てられている入室者は割り当て解除されます。
    • フロア プラン更新後に ASSIGNMENT_TYPE フィールドの値が Not Assignable に変わった場合、そのユニットに割り当てられている入室者は割り当て解除されます。
    • フロア プラン更新後に入室者が割り当てられているユニット内に入室者フィーチャが存在しなくなった場合、入室者フィーチャは割り当てられているユニットの重心に再び移動します。
    注意:

    更新後のフロア プランに一致させるための入室者データの更新に、[入力入室者テーブル] パラメーターへの入力は必要ありません。

  • このツールを定期的に実行して、入室者データを更新したり、座席割り当てやフロアプランを変更したりできます。 このツールをジオプロセシング サービスとして公開し、Microsoft のスケジューラまたは CRON を使用してこのツールを実行することもできます。

  • このツールでは、ArcGIS Pro セッションで有効な一時ディレクトリ内にサマリー テキスト ファイルが作成されます。 サマリー テキストの永続的なレコードを維持するには、ArcGIS Pro セッション外のフォルダーに保存する必要があります。

パラメーター

ラベル説明データ タイプ
ターゲット入室者フィーチャ

入室者レコードを追加、更新、または削除するターゲット フィーチャ レイヤー、フィーチャクラス、またはフィーチャ サービス。 入力は、各入室者を識別する個別値を含む必要があり、Indoors Model の Occupants フィーチャクラスに準拠する必要があります。

Feature Layer
入力ユニット フィーチャ
(オプション)

入室する建物空間を表す入力ポリゴン フィーチャ。 入力は、Indoors モデルの Units フィーチャクラスに準拠するフィーチャ レイヤー、フィーチャクラス、またはフィーチャ サービスである必要があります。 各スペースの重心は、入室者のポイント位置として使用されます。

Feature Layer
入力入室者テーブル
(オプション)

建物の入室者に関する情報を含む入力テーブル。

入力テーブルは、ジオデータベース テーブル、Microsoft Excel ワークブック (.xls または .xlsx ファイル) のシート、カンマ区切りテキスト ファイル (.csv)、または OLE DB である必要があります。

Table View
入室者識別子 (ターゲット入室者フィーチャ)
(オプション)

入室者を [入力入室者テーブル] パラメーター値と関連付けるプライマリ キーとして使用される [ターゲット入室者フィーチャ] パラメーター値内のフィールド。 フィールド値は一意である必要があります。

Field
入室者識別子 (入力入室者テーブル)
(オプション)

入室者を [ターゲット入室者フィーチャ] パラメーター値と関連付けるプライマリ キーとして使用される [入力入室者テーブル] パラメーター値内のフィールド。 フィールド値は一意である必要があります。

Field
ユニット識別子 (入力ユニット フィーチャ)
(オプション)

入室者を [入力入室者テーブル] パラメーター値のユニット識別子と一致する一意の空間識別情報を格納する [入力ユニット フィーチャ] パラメーター値内のフィールド。 フィールド値は一意である必要があります。

Field
ユニット識別子 (入力入室者テーブル)
(オプション)

入室者の空間割り当てを [入力ユニット フィーチャ] パラメーター値と関連付けるプライマリ キーとして使用される [入力入室者テーブル] パラメーター値内のフィールド。 フィールド値が空白の場合、入室者は未割り当てとして読み込まれます。

このパラメーターは、入室者の空間割り当てを複数格納する入力入室者テーブルからの複数のフィールドをサポートします。 指定されたフィールドだけが Occupants フィーチャクラスの更新に使用されます。

パラメーター値を指定しなかった場合、Occupants フィーチャクラスでは、入室者の座席割り当ては更新されません。 代わりに、Occupant フィーチャクラス内のレコードが入力入室者テーブル内のレコードに一致し、[入室者属性のマッピング] パラメーターでマッピングされた属性が更新されます。

Field
入室者属性のマッピング
(オプション)

[入力入室者テーブル] パラメーター値のフィールド値が設定される [ターゲット入室者フィーチャ] パラメーター内の属性フィールド。 ツールを実行する前に、このフィールドが [ターゲット入室者フィーチャ] パラメーター値に存在している必要があります。 [入力入室者テーブル] パラメーター値のフィールドをフィールド タイプが同じ [ターゲット入室者フィーチャ] パラメーター値のフィールドにマッピングすることをお勧めします。

Field Mappings
新しい入室者を挿入
(オプション)

[入力入室者テーブル] パラメーター値の一致しなかった入室者レコードをターゲット入室者フィーチャ レイヤーに追加するかどうかを指定します。

  • オン - 一致しなかった入室者レコードがターゲット入室者フィーチャ レイヤーに追加されます。 これがデフォルトです。
  • オフ - 一致しなかった入室者レコードはターゲット入室者フィーチャ レイヤーに追加されません。
Boolean
入力入室者テーブルに含まれない入室者を削除
(オプション)

[入力入室者テーブル] パラメーター値の一致しなかった入室者レコードをターゲット入室者フィーチャ レイヤーから削除するかどうかを指定します。

  • オン - 一致しなかった入室者レコードがターゲット入室者フィーチャ レイヤーから削除されます。 これがデフォルトです。
  • オフ - 一致しなかった入室者レコードはターゲット入室者フィーチャ レイヤーから削除されません。
Boolean

派生した出力

ラベル説明データ タイプ
更新された入室者フィーチャ

このツールで使用されるターゲット入室者フィーチャの更新されたバージョン。

Feature Layer

arcpy.indoors.UpdateOccupantFeatures(target_occupant_features, {in_unit_features}, {in_occupant_table}, {occupant_id_from_target_occupant_features}, {occupant_id_from_input_table}, {unit_id_from_units_features}, {unit_id_from_input_table}, {occupant_attributes_mapping}, {allow_insert}, {allow_delete})
名前説明データ タイプ
target_occupant_features

入室者レコードを追加、更新、または削除するターゲット フィーチャ レイヤー、フィーチャクラス、またはフィーチャ サービス。 入力は、各入室者を識別する個別値を含む必要があり、Indoors Model の Occupants フィーチャクラスに準拠する必要があります。

Feature Layer
in_unit_features
(オプション)

入室する建物空間を表す入力ポリゴン フィーチャ。 入力は、Indoors モデルの Units フィーチャクラスに準拠するフィーチャ レイヤー、フィーチャクラス、またはフィーチャ サービスである必要があります。 各スペースの重心は、入室者のポイント位置として使用されます。

Feature Layer
in_occupant_table
(オプション)

建物の入室者に関する情報を含む入力テーブル。

入力テーブルは、ジオデータベース テーブル、Microsoft Excel ワークブック (.xls または .xlsx ファイル) のシート、カンマ区切りテキスト ファイル (.csv)、または OLE DB である必要があります。

Table View
occupant_id_from_target_occupant_features
(オプション)

入室者を in_occupant_table パラメーター値と関連付けるプライマリ キーとして使用される target_occupant_features パラメーター値内のフィールド。 フィールド値は一意である必要があります。

Field
occupant_id_from_input_table
(オプション)

入室者を target_occupant_features パラメーター値と関連付けるプライマリ キーとして使用される in_occupant_table パラメーター値内のフィールド。 フィールド値は一意である必要があります。

Field
unit_id_from_units_features
(オプション)

入室者を in_occupant_table パラメーター値のユニット識別子と一致する一意の空間識別情報を格納する in_units_features パラメーター値内のフィールド。 フィールド値は一意である必要があります。

Field
unit_id_from_input_table
[unit_id_from_input_table,...]
(オプション)

入室者の空間割り当てを in_units_features パラメーター値と関連付けるプライマリ キーとして使用される in_occupant_table パラメーター値内のフィールド。 フィールド値が空白の場合、入室者は未割り当てとして読み込まれます。

このパラメーターは、入室者の空間割り当てを複数格納する入力入室者テーブルからの複数のフィールドをサポートします。 指定されたフィールドだけが Occupants フィーチャクラスの更新に使用されます。

パラメーター値を指定しなかった場合、Occupants フィーチャクラスでは、入室者の座席割り当ては更新されません。 代わりに、Occupants フィーチャクラス内のレコードが入力入室者テーブル内のレコードに一致し、occupant_attributes_mapping パラメーターでマッピングされた属性が更新されます。

Field
occupant_attributes_mapping
(オプション)

in_occupant_table パラメーター値のフィールド値が設定される target_occupant_features パラメーター内の属性フィールド。 ツールを実行する前に、このフィールドが target_occupant_features パラメーター値に存在している必要があります。 in_occupant_table パラメーター値のフィールドをフィールド タイプが同じ target_occupant_features パラメーター値のフィールドにマッピングすることをお勧めします。

Field Mappings
allow_insert
(オプション)

in_occupant_table パラメーター値の一致しなかった入室者レコードをターゲット入室者フィーチャ レイヤーに追加するかどうかを指定します。

  • INSERT_OCCUPANTS一致しなかった入室者レコードがターゲット入室者フィーチャ レイヤーに追加されます。 これがデフォルトです。
  • NO_INSERT_OCCUPANTS一致しなかった入室者レコードはターゲット入室者フィーチャ レイヤーに追加されません。
Boolean
allow_delete
(オプション)

in_occupant_table パラメーター値の一致しなかった入室者レコードをターゲット入室者フィーチャ レイヤーから削除するかどうかを指定します。

  • DELETE_OCCUPANTS一致しなかった入室者レコードがターゲット入室者フィーチャ レイヤーから削除されます。 これがデフォルトです。
  • NO_DELETE_OCCUPANTS一致しなかった入室者レコードはターゲット入室者フィーチャ レイヤーから削除されません。
Boolean

派生した出力

名前説明データ タイプ
updated_occupant_features

このツールで使用されるターゲット入室者フィーチャの更新されたバージョン。

Feature Layer

コードのサンプル

UpdateOccupantFeatures の例 1 (Python ウィンドウ)

次の Python ウィンドウ スクリプトは、イミディエイト モードで UpdateOccupantFeatures 関数を使用する方法を示しています。 この例では、入力および出力はすべて同じジオデータベース内にあります。


import arcpy
arcpy.indoors.UpdateOccupantFeatures('C:/ExampleCampus.gdb/Indoors/Occupants', 
                                    'C:/ExampleCampus.gdb/Indoors/Units', 'C:/OccupantsData/2022Occupants.xlsx/2022Q2$',
                                    'EMAIL', 'EMAIL',
                                    'UNIT_ID', 'SPACE_ASSIGNMENT', 'KNOWNAS "Known As" true false false 255 Text 0 
                                    0,First,#,C:/OccupantsData/2022Occupants.xlsx/2022Q2$,KNOWNAS,0,255;SITE_ID "Site ID" true true false 255 Text 
                                    0 0,First,#',
                                    True, True)
UpdateOccupantFeatures 例 2 (スタンドアロン スクリプト)

次のスタンドアロン スクリプトで、UpdateOccupantFeatures 関数を使用する方法を示します。


# Import system modules import arcpy
# Set local variables 

target_occupant_features = r'C:\ExampleCampus.gdb\Indoors\Occupants'
in_unit_features = r'C:\ExampleCampus.gdb\Indoors\Units'
in_occupant_table = r'C:\OccupantSpreadsheets\BuildingL.xlsx\OccupantsSeatingAssignment$'
occupant_id_from_target_occupant_features = 'EMAIL' 
occupant_id_from_input_table = 'EMAIL' 
unit_id_from_units_features = 'UNIT_ID'
unit_id_from_input_table = "SPACE_ASSIGNMENT"
occupant_attributes_mapping = 'KNOWNAS "Known As" true false false 255 Text 0 0,First,#,
C:\OccupantSpreadsheets\BuildingL.xlsx\OccupantsSeatingAssignment$,KNOWNAS,0,255;CONTACT_PHONE "Contact Phone" true true false 255 Text 0 0,First,#,
C:\OccupantSpreadsheets\BuildingL.xlsx\OccupantsSeatingAssignment$,CONTACT_PHONE,0,255;CONTACT_EXTENSION "Contact Extension" true true false 255 Text 0 0,First,#,
C:\OccupantSpreadsheets\BuildingL.xlsx\OccupantsSeatingAssignment$,CONTACT_EXTENSION,-1,-1;SITE_ID "Site ID" true true false 255 Text 0 0,First,#;JOB_TITLE "Job Title" true true false 255 Text 0 0,First,#,
C:\OccupantSpreadsheets\BuildingL.xlsx\OccupantsSeatingAssignment$,JOB_TITLE,0,255;ORG_LEVEL_1 "Department" true true false 255 Text 0 0,First,#,
C:\OccupantSpreadsheets\BuildingL.xlsx\OccupantsSeatingAssignment$,ORG_LEVEL_1,0,255;ORG_LEVEL_2 "Team" true true false 255 Text 0 0,First,#,
C:\OccupantSpreadsheets\BuildingL.xlsx\OccupantsSeatingAssignment$,ORG_LEVEL_2,0,255;START_DATE "Start Date" true true false 8 Date 0 0,First,#,
C:\OccupantSpreadsheets\BuildingL.xlsx\OccupantsSeatingAssignment$,START_DATE,-1,-1' 

allow_insert = True
allow_delete = True

# Run the tool 
arcpy.indoors.UpdateOccupantFeatures(target_occupant_features, in_unit_features, in_occupant_table,
                                     occupant_id_from_target_occupant_features, occupant_id_from_input_table,
                                     unit_id_from_units_features, unit_id_from_input_table, occupant_attributes_mapping,
                                     allow_insert, allow_delete)

ライセンス情報

  • Basic: No
  • Standard: No
  • Advanced: 次のものが必要 ArcGIS Indoors Pro または ArcGIS Indoors Maps

関連トピック