壁の情報の抽出

IPS エクステンションのライセンスが付与された ArcGIS 組織で利用できます。

ArcGIS IPS は、Bluetooth や Wi-Fi 信号を使用し、建物や施設内にいるユーザーを特定します。 壁などの障害物は無線信号の伝送を妨げ、屋内測位の精度を低下させます。 ArcGIS IPS 配置で最適なパフォーマンスを得るには、壁の正確な位置とサイズを把握しておく必要があります。

壁を作成するには、施設内のすべての壁に対してポリゴン フィーチャを手動で作成する方法がありますが、ミスが起こりがちです。 代わりに、次のいずれかの方法で壁の情報を抽出します。

  • レベル フィーチャとユニット フィーチャから壁フィーチャを生成
  • フロア プラン スケッチから壁フィーチャを生成する
  • BIM データから壁フィーチャを生成する

Indoors データと、組織で提供されているライセンスに最適な方法を使用してください。

レベル フィーチャとユニット フィーチャから壁フィーチャを生成

注意:

このワークフローには ArcGIS Pro Advanced ライセンスが必要です。

この方法では、ArcGIS Indoors Information Model からポリゴンの壁が生成されます。 レベル フィーチャとユニット フィーチャがあれば使用できます。

  • レベル フィーチャは、施設内の各フロアのフットプリントを表します。 各ポリゴンの境界は建物の外観を表し、境界で囲まれるエリアはフロアの表面積を表します。 ジオメトリのギャップは、階段やエレベーターなど、フロアの開口部を表します。
  • ユニット フィーチャは、ワークスペース、環境設備、リテール スペース、エレベーター、階段など、施設内の重複しない機能エリアのフットプリントを表します。 ポリゴンの境界は、これらのエリアを区切る壁の表面のフットプリントをトレースします。

レベル フィーチャとユニット フィーチャから壁フィーチャを生成するには、次の手順を実行します。

  1. ArcGIS Pro を起動します。
  2. 新しいまたは既存のプロジェクトを開きます。
  3. マップに Levels フィーチャクラスと Units フィーチャクラスを追加します。

    マップに追加された Levels フィーチャクラスと Units フィーチャクラス

  4. [コンテンツ] ウィンドウで Units レイヤーを右クリックし、[テーブルの結合とリレート] > [テーブル結合] の順にクリックします。

    これで、Levels レイヤーの Vertical_Order フィールドを Units レイヤーでも使用できるようになります。

    [結合] ダイアログ ボックスが表示されます。

  5. [テーブルの結合 (Add Join)] ツールのパラメーターを構成します。
    1. [入力テーブル] パラメーターを [Units] に設定します。
    2. [入力結合テーブル] パラメーターを [Level ID] に設定します。
    3. [結合テーブル] パラメーターを [Levels] に設定します。
    4. [結合テーブル フィールド] パラメーターを [Level ID] に設定します。
  6. Vertical_Order フィールドの定義クエリを、特定のフロアの Units フィーチャクラスと Levels フィーチャクラスをフィルターするよう設定します。
  7. [解析] タブをクリックし、[ツール] ツール をクリックします。

    [ジオプロセシング] ウィンドウが表示されます。

  8. [ジオプロセシング] ウィンドウで、[ツールボックス] タブをクリックします。
  9. [解析ツール] > [オーバーレイ] を展開し、[イレース] をクリックします。

    [イレース (Erase)] ツールが [ジオプロセシング] ウィンドウで開きます。

  10. [イレース (Erase)] ツールのパラメーターを構成します。
    1. [入力フィーチャ] パラメーターで、フロアでフィルターしたレベルのフィーチャ レイヤーを選択します。
    2. [イレース フィーチャ] パラメーターで、フロアでフィルターしたユニットのフィーチャ レイヤーを選択します。
    3. [出力フィーチャクラス] パラメーターでは、各フロアの結果を区別できる命名規則を使用します。
  11. [実行] をクリックします。

    [イレース (Erase)] ツールは、選択したフロアの壁を表すユニット フィーチャ間のエリアを抽出します。

    フロアで抽出された壁

  12. 利用可能なフロアについて、ステップ 6 ~ 11 を繰り返します。
    ヒント:

    ModelBuilder を使用し、このプロセスを自動化できます。

  13. [戻る] 戻る をクリックして [ジオプロセシング] ウィンドウに戻ります。
  14. [データ管理ツール] > [一般] を展開し、[マージ] をクリックします。

    [マージ (Merge)] ツールが [ジオプロセシング] ウィンドウで開きます。

  15. [マージ (Merge)] ツールのパラメーターを構成します。
    1. [入力データセット] パラメーターで、[イレース (Erase)] ツールによって取得したフロア固有の壁をすべて選択します。
    2. [出力データセット] パラメーターのテキスト ボックスに「Walls」と入力します。
    3. [フィールド マップ] パラメーターで、LEVEL_ID フィールドが出力フィールドとしてリストされていることを確認します。
  16. [実行] をクリックします。

各フロアで抽出された壁が、施設の壁を含む単一のフィーチャクラスにマージされます。 このフィーチャクラスはフロア対応で、[調査なしで屋内測位ファイルを生成 (Generate Indoor Positioning File Without Survey)] ツールへの入力として使用できます。

フロア プラン スケッチから壁フィーチャを生成する

注意:

このワークフローには ArcGIS Pro Advanced ライセンスが必要です。

この方法では、施設のフロア プランのアウトラインを描画する ArcGIS Indoors Information Model からポリゴンの壁が生成されます。 この方法を使用するには、施設の壁のおおよその厚さを把握しておく必要があります。 フロア プラン スケッチから壁フィーチャを生成すると、次のことが起こります。

  • ユニットは、レベルを重複しない機能エリアに分割できますが、エリアの物理的な範囲を正確に表すわけではありません。
  • 隣接する 2 つの部屋を表すユニットの境界は互いに接しており、間にある壁のおおよその中心線を定義します。

フロア プラン スケッチから壁フィーチャを生成するには、次の手順を実行します。

  1. ArcGIS Pro を起動します。
  2. 新しいまたは既存のプロジェクトを開きます。
  3. マップに Levels フィーチャクラスと Units フィーチャクラスを追加します。
  4. [コンテンツ] ウィンドウで Units レイヤーを右クリックし、[テーブルの結合とリレート] > [テーブル結合] の順にクリックします。

    これで、Levels レイヤーの Vertical_Order フィールドを Units レイヤーでも使用できるようになります。

    [結合] ダイアログ ボックスが表示されます。

  5. [テーブルの結合 (Add Join)] ツールのパラメーターを構成します。
    1. [入力テーブル] パラメーターを [Units] に設定します。
    2. [入力結合テーブル] パラメーターを [Level ID] に設定します。
    3. [結合テーブル] パラメーターを [Levels] に設定します。
    4. [結合テーブル フィールド] パラメーターを [Level ID] に設定します。
  6. Vertical_Order フィールドの定義クエリを、特定のフロアの Units レイヤーと Levels レイヤーをフィルターするよう設定します。
  7. [解析] タブをクリックし、[ツール] ツール をクリックします。

    [ジオプロセシング] ウィンドウが表示されます。

  8. [ジオプロセシング] ウィンドウで、[ツールボックス] タブをクリックします。
  9. [データ管理ツール] > [フィーチャ] を展開し、[ポリゴン → ライン] をクリックします。

    [ポリゴン → ライン (Polygon to Line)] ツールが [ジオプロセシング] ウィンドウで開きます。

  10. [ポリゴン → ライン (Polygon to Line)] ツールのパラメーターを構成します。
    1. [入力フィーチャ] パラメーターで、フロアでフィルターしたユニット フィーチャを選択します。
    2. [出力フィーチャクラス] パラメーターで、出力フィーチャクラスの名前を指定します。その際、フロアの結果を区別できる命名規則を使用します。
  11. [実行] をクリックします。

    [ポリゴン → ライン (Polygon to Line)] ツールは、フィルターしたフロアのラインの形式で壁フィーチャを指定します。

  12. 出力フィーチャクラスを調べ、さらにラインを分割するケースを特定します (ドアなどの開口部など)。
  13. 壁の中心線を表さないラインを削除します。
  14. [戻る] 戻る をクリックして [ジオプロセシング] ウィンドウに戻ります。
  15. [ジオプロセシング] ウィンドウで [解析ツール] > [近接] を展開し、[バッファー] をクリックします。

    [ジオプロセシング] ウィンドウで [バッファー (Buffer)] ツールが開きます。

  16. [バッファー (Buffer)] ツールのパラメーターを構成します。
    1. [入力フィーチャ] パラメーターで、フィルターしたフロアの壁を表すライン フィーチャクラスを選択します。
    2. [出力フィーチャクラス] パラメーターで、出力フィーチャクラスの名前を指定します。その際、フロアの結果を区別できる命名規則を使用します。
    3. [バッファーの距離 [値またはフィールドを指定]] パラメーターで、壁の厚さを指定します。
  17. [実行] をクリックします。

    [バッファー (Buffer)] ツールが、フィルターしたフロアのバッファー ポリゴンの形式で壁フィーチャを作成します。

  18. [戻る] 戻る をクリックして [ジオプロセシング] ウィンドウに戻ります。
  19. [ジオプロセシング] ウィンドウで [データ管理] > [ジェネラライズ] を展開し、[ディゾルブ] をクリックします。

    [ディゾルブ (Dissolve)] ツールが [ジオプロセシング] ウィンドウで開きます。

  20. [ディゾルブ (Dissolve)] ツールのパラメーターを構成します。
    1. [入力フィーチャ] パラメーターで [参照] 参照 をクリックし、[バッファー (Buffer)] ツールによって作成されたポリゴン フィーチャクラスを選択します。
    2. [出力フィーチャクラス] パラメーターで、集約フィーチャで作成されるフィーチャクラスの名前を指定します。
    3. [マルチパート フィーチャの作成] チェックボックスがオンになっていることを確認します。

      残りのオプションのパラメーターは空白のままにしておきます。

    すべての壁フィーチャが 1 つのマルチパート フィーチャにマージされます。

    フロア プラン スケッチから壁フィーチャを生成した結果

  21. LEVEL_ID フィールドを作成し、[データ タイプ] 値を [テキスト] に設定します。
  22. 次の [フィールド プロパティ] の値を設定するか、確認します。
    • [フィールド名] -LEVEL_ID
    • [エイリアス] - Level ID
    • [データ タイプ] - テキスト
    • [NULL 値を許可] - チェック ボックスをオン
    • [ドメイン] - 空白のまま
    • [デフォルト] - 空白のまま
    • [長さ] - デフォルト値のまま

    フィールドが作成されると、正しい LEVEL_ID 値をフィーチャと関連付けます。

    注意:

    利用可能なフロアについて、ステップ 6 ~ 22 を繰り返します。

  23. [戻る] 戻る をクリックして [ジオプロセシング] ウィンドウに戻ります。
  24. [ジオプロセシング] ウィンドウで [データ管理ツール] > [一般] を展開し、[マージ] をクリックします。

    [マージ (Merge)] ツールが [ジオプロセシング] ウィンドウで開きます。

  25. [マージ (Merge)] ツールのパラメーターを構成します。
    1. [入力データセット] パラメーターで、レベル ID 値を含むフィーチャクラスを選択します。
    2. [出力データセット] パラメーターのテキスト ボックスに「Walls」と入力します。
  26. [実行] をクリックします。

個々のフロアの壁を含むフィーチャクラスが、施設の壁を含む単一のフィーチャクラスにマージされます。 このフィーチャクラスはフロア対応で、[調査なしで屋内測位ファイルを生成 (Generate Indoor Positioning File Without Survey)] ツールへの入力として使用できます。

BIM データから壁フィーチャを生成する

注意:

このワークフローには ArcGIS Indoors Pro または ArcGIS Indoors Maps のライセンスが必要です。

この方法を使用するには、Indoor 3D データセットの作成ツールで作成した屋内 3D データセットが必要です。

この方法では、施設の BIM データを使用してポリゴンの壁が生成されます。 壁の情報を含む有効な BIM データがあれば、この方法を使用できます。

BIM データから壁フィーチャを生成するには、次の手順を実行します。

  1. ArcGIS Pro を起動します。
  2. 新しいまたは既存のプロジェクトを開きます。
  3. 新しいマップまたはシーンを開きます
  4. [解析] タブをクリックし、[ツール] ツール をクリックします。

    [ジオプロセシング] ウィンドウが表示されます。

  5. [ジオプロセシング] ウィンドウで、[ツールボックス] タブをクリックします。
  6. [Indoors ツール] を展開して、[BIM を Indoor データセットにインポート] をダブルクリックします。

    BIM を Indoor データセットにインポート ツールが [ジオプロセシング] ウィンドウで開きます。

  7. [BIM を Indoor データセットにインポート (Import BIM To Indoor Dataset)] ツールのパラメーターを構成します。
    1. [入力 BIM フロアプラン ポリゴン レイヤー] パラメーターには、ソース BIM ファイルの Floorplan データセットの Floorplan_Polygon フィーチャ レイヤーを選択します。
    2. [ターゲット ユニット フィーチャ] パラメーターで [参照] 参照 をクリックし、Units フィーチャ レイヤーを選択します。
    3. [ターゲット詳細フィーチャ] パラメーターで [参照] 参照 をクリックし、Details フィーチャ レイヤーを選択します。
    4. [ターゲット レベル フィーチャ] パラメーターで [参照] 参照 をクリックし、Levels フィーチャ レイヤーを選択します。
    5. [ターゲット施設フィーチャ] パラメーターで [参照] 参照 をクリックし、Facilities フィーチャ レイヤーを選択します。
    6. [施設 ID] パラメーターで、一意の施設 ID を指定します。
    7. [施設名] パラメーターで、建物の名前を指定します。
    8. [グラウンド フロア名] パラメーターで、建物のグラウンド フロアの名前を指定します。
    9. [3D フィーチャ] セクションの [ターゲット詳細 3D フィーチャ] パラメーターで [参照] 参照 をクリックし、Indoor 3D データセットから 3D Details マルチパッチ フィーチャクラスを選択します。
    注意:

    [BIM を Indoor データセットにインポート (Import BIM to Indoor Dataset)] ツールは、Autodesk Revit の BIM ファイル (拡張子が .rvt のファイル) のみをサポートしています。

    建物モデルのエレメントと、他の BIM 形式をインポートする方法の詳細

  8. [実行] をクリックします。

    建物モデルの BIM データが ArcGIS Indoors Information Model にインポートされます。

  9. [戻る] 戻る をクリックして [ジオプロセシング] ウィンドウに戻ります。
  10. [ジオプロセシング] ウィンドウで [データ管理ツール] > [一般] を展開し、[アペンド] をクリックします。

    [ジオプロセシング] ウィンドウで [アペンド (Append)] ツールが開きます。

  11. [アペンド (Append)] ツールのパラメーターを構成します。
    1. [入力データセット] パラメーターで、Details 3D フィーチャクラスを選択します。
    2. [ターゲット データセット] パラメーターで、Walls 3D フィーチャクラスを選択します。
    3. [フィールド マッチング タイプ] パラメーターで [フィールド マップを使用してフィールドの違いをリコンサイル] を選択します。
    4. [式] パラメーターで [SQL] 切り替えボタンをクリックして SQL モードに切り替え、クエリ USE_TYPE IN ('Walls', 'Columns', 'Structural Columns') を適用します。
    5. 次のフィールドを [更新オプション] でマッピングします。

      ターゲット フィールド入力フィールド

      WALL_ID

      DETAIL_ID

      WALL_TYPE

      USE_TYPE

      LEVEL_ID

      LEVEL_ID

      SOURCE_ID

      SOURCE_ID

  12. [実行] をクリックします。

    Walls 3D フィーチャクラスに、Details 3D フィーチャクラスの壁フィーチャが設定されます。

  13. [ジオプロセシング] ウィンドウで、[戻る] 戻る をクリックして [ツールボックス] リストに戻ります。
  14. [3D Analyst ツール] > [3D フィーチャ] > [抽出] を展開し、[マルチパッチ フットプリント] をクリックします。

    マルチパッチ フットプリント ツールが [ジオプロセシング] ウィンドウで開きます。

  15. [マルチパッチ フットプリント (Multipatch Footprint)] ツールのパラメーターを構成します。
    1. [入力フィーチャクラス] パラメーターで、Walls 3D フィーチャクラスを選択します。
    2. [出力フィーチャクラス] パラメーターのテキスト ボックスに「Walls」と入力します。
    3. [グループ フィールド] パラメーターは空白のままにします。
  16. [実行] をクリックします。

施設の壁を含む Walls フィーチャクラスが作成されます。 このフィーチャクラスはフロア対応ではありません。 レイヤーをフロア対応として定義し、[調査なしで屋内測位ファイルを生成 (Generate Indoor Positioning File Without Survey)] ツールへの入力として使用します。

注意:

BIM モデルにドアの開口部が含まれていない場合は、Walls フィーチャクラスを手動で変更して、開口部を含めます。

壁の情報の検証

壁フィーチャを生成したら、その結果を手動で検証します。 特別なユニットの追加や壁データの修正など、さらに変更を加えて、必要に応じて出力を改善できます。 以下のワークフローでは、施設の壁を含む出力フィーチャクラスが正確であり、[調査なしで屋内測位ファイルを生成 (Generate Indoor Positioning File Without Survey)] ツールへの入力として効果的に使用できることを確認します。

特別なユニットの追加

エスカレーターや柱などの構造物を表す特定のフィーチャを、壁として抽出できないことがあります。 その場合は、次の手順を実行すると、それらを Walls フィーチャクラスに手動で追加できます。

  1. ArcGIS Pro を起動します。
  2. 新しいまたは既存のプロジェクトを開きます。
  3. マップに Units フィーチャクラスを追加します。
  4. 特別なユニットを表すフィーチャを特定し、選択します。
  5. フィーチャをクリップボードにコピーし、形式を選択して貼り付けコマンドを使用して Walls フィーチャクラスに貼り付けます。
    注意:

    または、フィーチャを選択して [アペンド (Append)] ツールを使用し、Walls フィーチャクラスに追加する方法もあります。

    特別なユニット フィーチャを Walls フィーチャクラスに追加します。

  6. 利用可能なフロアについて、ステップ 4 と 5 を繰り返します。

特別なユニットが Walls フィーチャクラスに追加されます。 追加されたフィーチャに正しい LEVEL_ID 値が含まれていることを確認します。

壁データの修正

Units フィーチャクラス データに誤りにより、屋内空間の空間表現が不正になることがあります。 これにより、次のようなことが起こります。

  • 最終的な出力フィーチャクラスに、特定の壁やその他の建物フィーチャが存在しない
  • 最終的な出力フィーチャクラスに余分な壁フィーチャが存在する
注意:

壁データは [バッファー (Buffer)] ツールと [スプリット (Split)] ツールにより修正できます。 これらの解析ツールを使用するには、ArcGIS Pro Advanced ライセンスが必要です。

欠落している壁フィーチャの追加

[フィーチャクラスの作成 (Create Feature Class)] ツール、[バッファー (Buffer)] ツール、[アペンド (Append)] ツールを使用し、欠落しているフィーチャを作成し、それらのフィーチャを Walls フィーチャクラスに追加できます。

欠落している壁フィーチャを追加するには、次の手順を実行します。

  1. Walls フィーチャクラスに壁フィーチャが存在しないケースを特定します。
  2. [解析] タブをクリックし、[ツール] ツール をクリックします。

    [ジオプロセシング] ウィンドウが表示されます。

  3. [ジオプロセシング] ウィンドウで、[ツールボックス] タブをクリックします。
  4. [データ管理ツール] > [フィーチャクラス] を展開し、[フィーチャクラスの作成] をクリックします。

    フィーチャクラスの作成ツールが [ジオプロセシング] ウィンドウで開きます。

  5. [フィーチャクラスの作成 (Create Feature Class)] ツールのパラメーターを構成します。
    1. [フィーチャクラス名] パラメーターで、フィーチャクラスの名前を指定します。
    2. [フィーチャクラスの場所] パラメーターで、フィーチャクラスを格納する場所を指定します。
    3. [ジオメトリ タイプ] パラメーターでドロップダウン矢印をクリックし、[ポリライン] を選択します。
    4. [座標系] パラメーターで、座標系を選択します。
  6. [実行] をクリックします。

    ライン フィーチャクラスが作成されます。

  7. [データ タイプ][テキスト]LEVEL_ID フィールドを作成します。
  8. 次の [フィールド プロパティ] の値を設定するか、確認します。
    • [フィールド名] -LEVEL_ID
    • [エイリアス] - Level ID
    • [データ タイプ] - テキスト
    • [NULL 値を許可] - チェック ボックスをオン
    • [ドメイン] - 空白のまま
    • [デフォルト] - 空白のまま
    • [長さ] - デフォルト値を使用します
  9. 編集セッションを開始し、欠落している壁を表すラインを描画します。

    ラインは、壁フィーチャの横断面の中心にできるだけ近くに描画してください。

    ポリライン フィーチャの作成の詳細

  10. 正しい LEVEL_ID 値を、新規作成されたすべてのフィーチャに関連付けます。
  11. [戻る] 戻る をクリックして [ジオプロセシング] ウィンドウに戻ります。
  12. [ジオプロセシング] ウィンドウで [解析ツール] > [近接] を展開し、[バッファー] をクリックします。

    [ジオプロセシング] ウィンドウで [バッファー] ツールが開きます。

  13. [バッファー (Buffer)] ツールのパラメーターを構成します。
    1. [入力フィーチャ] パラメーターで、前述のステップ 5 で作成した [フィーチャクラス名] 値を使用します。
    2. [バッファーの距離 [値またはフィールドを指定]] 値で、壁の厚さを指定します。
  14. [実行] をクリックします。

    [バッファー (Buffer)] ツールが、フィルターしたフロアのバッファー ポリゴンの形式で壁フィーチャを作成します。

  15. [戻る] 戻る をクリックして [ジオプロセシング] ウィンドウに戻ります。
  16. [ジオプロセシング] ウィンドウで [データ管理ツール] > [一般] を展開し、[アペンド] をクリックします。

    [ジオプロセシング] ウィンドウで [アペンド (Append)] ツールが開きます。

  17. [アペンド (Append)] ツールのパラメーターを構成します。
    1. [入力データセット] パラメーターで、[バッファー (Buffer)] ツールで作成したフィーチャクラスを選択します。
    2. [ターゲット データセット] パラメーターで、Walls フィーチャクラスを選択します。
    3. [フィールド マッチング タイプ] パラメーターで [フィールド マップを使用してフィールドの違いをリコンサイル] を選択します。
  18. [実行] をクリックします。

欠落している壁フィーチャが Walls フィーチャクラスに追加されます。

欠落している壁フィーチャの追加

余分な壁フィーチャの削除

余分な壁フィーチャを削除するには、次の手順を実行します。

  1. Walls フィーチャ レイヤーを選択し、余分な壁フィーチャの有無を確認します。
  2. リボンの [編集] タブをクリックし、[修正] フィーチャの修正 をクリックして編集セッションを開始します。
  3. 余分な壁フィーチャがマルチパート ジオメトリの一部である場合、分解ツール マルチパート フィーチャの分解 を使用し、すべてのパーツを異なるフィーチャに分解します。
    注意:

    分解したフィーチャの属性値は、元のマルチパート ジオメトリの属性値と一致します。

  4. フィーチャ全体を削除するには、そのフィーチャを選択して削除します。

    フィーチャの削除

  5. フィーチャの一部を削除するには、スプリット ツール 分割 を使用して、2 つ以上のフィーチャに分割します。
    注意:

    分割したフィーチャの属性値は、元のフィーチャの属性値と一致します。

  6. 余分な壁を表すパーツを選択し、削除します。

    余分な壁の削除

余分な壁フィーチャが Walls フィーチャクラスから削除されます。

関連トピック