属性ルールの作成

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

フロア対応マップを作成し、アプリで使用する際には、正確なフロア プラン データを作成し、維持することが重要です。 ArcGIS Pro における品質管理の方法の 1 つに、データベースに属性ルールを実装することが挙げられます。 [Indoor データセットの作成 (Create Indoor Dataset)] または [Indoors データベースの作成 (Create Indoors Database)] ツールを使用して Indoor データセットを作成するときに、フロア プラン フィーチャクラスに属性ルールのコレクションを追加できます。 Indoor データセットにフロア プランを追加した後、これらの検証ルールを実行して、一意の ID、フロア対応リレーションシップ、空間の整合性など、データに関する一般的および重大な問題を確認できます。

注意:

[Indoors データベースのアップグレード (Upgrade Indoors Database)] ツールを実行して、不足している Indoors 属性ルールを追加したり、既存の属性ルールを最新版に上書きしたりできます。

ファイル ジオデータベースか、ブランチ バージョン対応フィーチャ サービスのデータに対し、検証属性ルールを実行できます。 方法によって、ワークフローがわずかに異なります。

[Indoor データセットの作成 (Create Indoor Dataset)] ツール、[Indoors データベースの作成 (Create Indoors Database)] ツール、または [Indoor データベースのアップグレード (Upgrade Indoors Database)] ツールを使用し、属性ルールを Indoors ワークスペースに追加すると、次のようになります。

  • Indoor データセットのフィーチャクラスに Global ID フィールドが作成されます。
  • Indoor データセットのフィーチャクラスに編集情報の記録フィールドが作成され、編集情報の記録が有効になります。
  • Indoor データセットのフィーチャクラスに、検証フィールドが作成されます。 このフィールドは、[エラー インスペクター] ツールで管理され、属性ルールが最後の更新以降にフィーチャに対して実行されているかどうかを確認する目的に使用されます。
  • 4 つのデータセットが、スタンドアロン レイヤーとしてジオデータベースに追加されます。 これらのフィーチャクラスは、ポイント、ポリライン、ポリゴン、テーブル エラーに対応し、[エラー インスペクター] によって管理されます。 [Indoor データセットの作成 (Create Indoor Dataset)] ツール、[Indoors データベースの作成 (Create Indoors Database)] ツール、[Indoors データベースのアップグレード (Upgrade Indoors Database)] ツールにより LEVEL_ID フィールドが追加され、フロア フィルターを使用してデータ エラーを視覚化できるようになります。 エラー レイヤーをマップに追加してエラー インスペクターを開くと、フロア対応として自動的に構成されます。
    注意:

    Error データセットは、最初の検証属性ルールがジオデータベースに追加されると作成されます。 Error データセットがデータベースにすでに存在するか、既存の Indoors ワークスペースに属性ルールをインポートする場合、データセットに LEVEL_ID フィールドを手動で追加できます。

  • 一連の検証および計算ルールが、Sites、Facilities、Levels、Units、Details フィーチャクラスに適用されます。 検証ルールは、データの問題の有無を確認するために指定したタイミングで実行されます。 適用された計算ルールは、検証フィールドの管理に使用され、フィーチャに対して検証チェックを実行するかどうかが決定されます。

属性ルールなしで Indoors ワークスペースを作成した場合、後から手動でジオデータベースに属性ルールを追加できます。

組織の要件を満たすために、既存の属性ルールを編集したり、ルールを作成したりできます。 属性ルール ビューから、Arcade スクリプトの編集、ルールの有効化、無効化、削除、新規追加など、ルールの管理を行えます。

注意:

ジオデータベースのフィーチャクラスの名前を変更した場合、Arcade スクリプト内の名前も編集する必要があります。

検証チェック

Indoors データセットで次の検証ルールが作成されます。

詳細

ルール名ルール タイプ説明

ユニーク ID

検証

このルールは、Detail ID フィールド値が詳細フィーチャに対して一意であることを確認します。 Detail ID フィールド値が一意ではない詳細フィーチャは、エラーとして返されます。

一意ではない各 Detail ID をフィーチャクラス内で一意になるよう更新します。

Detail Level Information

検証

このルールは、Level ID フィールド値が、Levels フィーチャクラスのフィーチャの Level ID フィールド値と一致するかどうかを確認します。 Indoors モデルにレベル ID が存在する場合、このルールは、各詳細フィーチャの Z 値が、それが関連付けられているレベルに対応していることを確認します。

Levels フィーチャクラスに存在するレベル フィーチャと詳細フィーチャを関連付けるために、Level ID フィールド値を更新します。 Z 値が誤っている場合、詳細の Z 値が、関連付けられたレベル フィーチャの Z 値に一致するかどうかを確認します。

Levels

ルール名ルール タイプ説明

ユニーク ID

検証

このルールは、Level ID フィールド値がレベル フィーチャに対して一意であることを確認します。 Level ID フィールド値が一意ではないレベル フィーチャは、エラーとして返されます。 一意のレベル ID は、フロア認識の構成、ワークフローの更新、データの維持において重要です。

一意ではない各レベル ID が、フィーチャクラス内で一意になるよう更新します。

Valid Facility ID

検証

このルールは、Facility ID フィールド値が、Facilities フィーチャクラスのフィーチャの Facility ID フィールド値と一致するかどうかを確認します。

Facility ID フィールド値を更新し、レベルを Facilities フィーチャクラスの既存の施設フィーチャに関連付けます。

Missing unit(s)

検証

このルールは、各レベルで次のことを確認します。

  • レベルのユニット間で、1 メートルを超えるギャップがないこと。
  • ユニット フィーチャがレベル外にないこと。

エラーのあるレベルのユニットを確認して、ユニット フィーチャが欠落していないか、またはレベル境界外に存在してはならないユニットがレベル境界外にないかを判断します。

Facilities

ルール名ルール タイプ説明

ユニーク ID

検証

このルールは、Facility ID フィールド値が施設フィーチャに対して一意であることを確認します。 一意の Facility ID は、フロア認識の構成、ワークフローの更新、データの維持において重要です。

一意ではない各施設 ID が、フィーチャクラス内で一意になるよう更新します。

Valid Site ID

検証

このルールは、Site ID フィールド値 (Null ではない場合) が、Sites フィーチャクラスのフィーチャの Site ID フィールド値と一致するかどうかを確認します。

Site ID フィールド値を更新し、レベルを Sites フィーチャクラスの既存のサイト フィーチャに関連付けます。 Sites フィーチャクラスにサイト フィーチャがない場合、Facilities フィーチャクラスのフィーチャの Site ID フィールド値が Null であることを確認します。

Sites

ルール名ルール タイプ説明

ユニーク ID

検証

このルールは、Site ID フィールド値がサイト フィーチャに対して一意であることを確認します。 一意のサイト ID は、フロア認識の構成、ワークフローの更新、データの維持において重要です。

一意ではない各サイト ID が、フィーチャクラス内で一意になるよう更新します。

Units

ルール名ルール タイプ説明

ユニーク ID

検証

このルールは、Unit ID フィールド値がユニット フィーチャに対して一意であることを確認します。 Unit ID フィールド値が一意ではないユニット フィーチャは、エラーとして返されます。 一意のユニット ID は、フロア プランの更新やデータの維持において重要です。

注意:

一意でないユニット ID がある場合、[入室者フィーチャの更新 (Update Occupant Features)] ツールを使用して入室者データをインポートすることはできません。

一意ではない各ユニット ID が、フィーチャクラス内で一意になるよう更新します。

Until Level Information

検証

このルールは、Level ID フィールド値が、Levels フィーチャクラスのフィーチャの Level ID フィールド値と一致するかどうかを確認します。 Indoors モデルにレベル ID が存在する場合、このルールは、各ユニット フィーチャの Z 値が、それが関連付けられているレベルに対応していることを確認します。

Levels フィーチャクラスの既存のレベル フィーチャと詳細フィーチャを関連付けるために、Level ID フィールド値を更新します。 Z 値が誤っている場合、詳細の Z 値が、関連付けられたレベル フィーチャの Z 値に一致するかどうかを確認します。

Overlapping geometry

検証

このルールは、ユニットが同じレベルにある別のユニットとオーバーラップしていないことを確認します。

ユニット ジオメトリが重複しないよう更新します。

Unit contains another unit

検証

このルールは、ユニットが別のユニットに完全に含まれていないことを確認します。 これには、次のようなシナリオがあります。

  • 重複するユニットがあります。 この場合、重複するユニットを削除します。
  • 大きいユニットの中に、小さいユニットが完全に含まれています。 この場合、[クリップ (Clip)] ツールを使用して、大きいユニットから小さいユニットを切り取ることができます。

検証属性ルールの作成

Indoors ワークスペースに検証属性ルールを作成するには、次の手順を実行します。

  1. ArcGIS ProIndoors ワークスペースを開きます。
  2. Indoors ワークスペースがエンタープライズ ジオデータベースである場合、ブランチ バージョニングを有効にします。
    1. [カタログ] ウィンドウで、エンタープライズ ジオデータベース コネクションを右クリックし、[ジオデータベース コネクション プロパティ] をクリックします。

      [ジオデータベース コネクションプロパティ] ダイアログ ボックスが表示されます。

    2. [バージョニング タイプ][ブランチ] オプションを選択します。
    3. [OK] をクリックします。
  3. [属性ルールの作成] チェックボックスをオンにして、[Indoors データベースの作成 (Create Indoors Database)] または [Indoor データセットの作成 (Create Indoor Dataset)] ツールを実行します。

属性ルールを追加したら、検証チェックを実行し、フロア プラン データのエラーを特定できます。

既存の Indoors ワークスペースに属性ルールを追加する

既存の Indoor データセットのフィーチャクラスに属性ルールを追加するには、次の手順を実行します。

  1. Indoor データセットに Global ID を追加します。
  2. Indoor データセットの編集情報の記録を有効化します。
  3. Indoors ワークスペースがエンタープライズ ジオデータベースである場合、ブランチ バージョニングを有効にします。
    1. [カタログ] ウィンドウで、エンタープライズ ジオデータベース コネクションを右クリックし、[ジオデータベース コネクション プロパティ] をクリックします。

      [ジオデータベース コネクションプロパティ] ダイアログ ボックスが表示されます。

    2. [バージョニング タイプ][ブランチ] オプションを選択します。
    3. [OK] をクリックします。
  4. [属性ルールの追加 (Import Attribute Rules)] ツールを実行し、各フィーチャクラスに属性ルールを追加します。

    属性ルールは、<Installation location>\Resources\AttributeRules\Indoors\en-US\<Feature class name>.csvArcGIS Pro のインストールに .csv ファイルとして格納されます。

属性ルールを追加したら、検証チェックを実行し、フロア プラン データのエラーを特定できます。