ArcGIS Indoors Pro または ArcGIS Indoors Maps エクステンションで利用できます。
[フロアプランを Indoors ジオデータベースにインポート (Import Floorplans To Indoors Geodatabase)] ツールは、構成ファイルを入力として使用します。 構成ファイルは、CAD ファイルの特定、CAD フロア プラン データのインポート、インポートされたデータの Indoor フィーチャクラス内のフィーチャと属性への変換を行うためにツールが必要とする情報を含む Microsoft Excel ワークブックです。
テンプレート構成ファイルは、ArcGIS Pro インストールに付属し、<installation location>\Program Files\ArcGIS\Pro\Resources\Indoors\MappingFile\Config_CAD_Indoors_Template.xlsx にあります。 プロジェクトで使用するためのテンプレート構成ファイルのコピーを作成します。
ヒント:
構成スプレッドシートを更新する前に、CAD ドローイングをマップに追加し、CAD レイヤーの名前とコンテンツを理解しておくと役に立つ場合があります。
構成ファイルを設定するには、各シートを次のように完成させます。
フィーチャクラスへの CAD レイヤーのマッピング
Layer to Feature Class ワークシートでは、CAD ファイル内の CAD レイヤーを Indoor フィーチャクラスの対応するフィーチャにマッピングします。
注意:
ArcGIS Pro 2.8 以前では、このワークシートは「CAD Layer to FC Mapping」という名前でした。
[フロアプランを Indoors ジオデータベースにインポート (Import Floorplans To Indoors Geodatabase)] ツールでは、閉合済みまたは未閉合のポリライン エンティティを含む CAD レイヤーからポリゴン フィーチャを生成できます。 たとえば、CAD ドローイングに 1 つのレイヤーがあり、ユニット (執務室、廊下、その他のナビゲーション可能なスペースなど) を定義する閉合済みのポリラインが含まれている場合は、この CAD レイヤーの名前を UNITS 列に入力します。
また、CAD ドローイングに複数のレイヤーがあり、ユニットの境界エッジを定義する未閉合のポリラインが含まれている場合は、これらの CAD レイヤーの名前を UNIT_LINES 列に入力することもできます。
次のように Layer to Feature Class シートを設定します。
注意:
ゾーンとセクションに関連する列は、Indoors ジオデータベース ([Indoors データベースの作成 (Create Indoors Database)] ツールで作成) のユーザーにのみ適用されます。 Indoors ジオデータベースを使用している場合は、[フロアプランを Indoors ジオデータベースにインポート (Import Floorplans To Indoors Geodatabase)] ツールを使用して、これらの列を設定することができます。
- FACILITIES 列には、施設の形状と範囲を定義する閉合済みのポリラインが含まれている CAD レイヤーを表示します。
また、複数の CAD レイヤーがあり、施設の範囲とエッジを定義する未閉合のポリラインが含まれている場合は、これらの CAD レイヤーを FACILITY_LINES 列に表示することもできます。
注意:
構成の後半で、レベル ポリゴンをマージして、施設の形状と範囲を定義することができます。 このオプションを選択した場合でも、FACILITIES または FACILITY_LINES のいずれかの列を設定する必要があります。 マージされたレベル ポリゴンを使用して施設の形状と範囲を定義すると、この列は無視されます。
- LEVELS 列には、個々のレベルの範囲を定義する閉合済みのポリラインが含まれている CAD レイヤーを表示します。
これには、グラウンド フロア、地下階、中二階、建物内で同じ Z 値を持つその他のスペースなどが含まれます。 また、複数の CAD レイヤーがあり、個々のレベルの範囲を定義する未閉合のポリライン (外壁やドアなど) が含まれている場合は、これらの CAD レイヤーを LEVEL_LINES 列に表示することもできます。
- UNITS 列には、個々のユニット (部屋、廊下、その他のナビゲーション可能なスペースなど) の範囲を定義する閉合済みのポリラインが含まれている CAD レイヤーを表示します。
また、複数の CAD レイヤーがあり、個々のユニットの範囲を定義する未閉合のポリライン (内壁や外壁など) が含まれている場合は、これらの CAD レイヤーを UNIT_LINES 列に表示することもできます。
- DETAILS 列には、インポートする内部の詳細 (壁、扉、窓など) を定義する閉合済みまたは未閉合のポリラインが含まれている CAD レイヤーを表示します。
注意:
インポートする内部の詳細を選択するときは屋内 GIS の使い方を検討してください。 たとえば、HVAC または電気設備は、施設管理で使用する場合は重要ですが、オフィス ホテリングの管理の場合は重要ではありません。
- 必要に応じて、ユニット ポリゴンの生成時に閉じる必要があるドア開口部を定義します。
ここに示すような開閉を表す円弧を使用して開いた状態のドアが描画された CAD レイヤーを UNIT_LINES 列に表示すると、よりシンプルなポリゴンが生成されるため、この方法をお勧めします。
- OPENINGS 列には、出力ユニット ポリゴンを生成する際にドアを表し、ドアを閉じる必要がある閉合済みまたは未閉合のポリラインが含まれている CAD レイヤーを表示します。
- Level Properties シートの CLOSE_DOORS 列に Y を設定します。
- UNIT_LINES 列には、ドアの CAD レイヤーを表示しないでください。
- ファイルを保存します。
CAD アノテーションの属性フィールドへのマッピング
CAD データには、一意識別子、一般名、その他の重要な情報のアノテーションが含まれる場合もあります。 [フロアプランを Indoors ジオデータベースにインポート (Import Floorplans To Indoors Geodatabase)] ツールは、CAD アンカー ポイントと Annotation to Field シートの構成に基づき、この情報を属性データとしてインポートされたフィーチャに追加します。 Annotation to Field シートは、このツールの [入力 Excel ファイル] パラメーターで使用される .xlsx ファイルに含まれるワークシートです。 ツールは、CAD アノテーションのカスタム属性へのマッピング、区切り文字で区切られたアノテーション値の解析、ブロック アノテーションの抽出などに対応しています。 Indoors Model に準拠している場合、CAD アノテーションは、Units、Levels、Facilities、Sections、Zones の各フィーチャクラスにマッピングできます。
注意:
Annotation to Field シートが ArcGIS Pro 2.9 に追加されたので、CAD アノテーションをカスタム属性フィールドにインポートできます。 以前のバージョンの構成ファイルには、このシートが含まれていないので、CAD アノテーションが CAD Layer to FC Mapping シートにマッピングされました。 どちらのバージョンの構成ファイルも、ArcGIS Pro 2.9 で使用できます。
Annotation to Field シートには 3 つの列があります。
- SOURCE_ANNOTATION- アノテーションを含む CAD レイヤーを指定します。
- TARGET_FEATURE_CLASS- アノテーションを格納するフィーチャクラスを指定します。
- TARGET_FIELD_NAME- アノテーションを格納するターゲット フィーチャクラスの属性フィールドを指定します。
ワークシートの一部の行は、Indoors ターゲット フィーチャクラスおよび属性フィールドを使用して、部分的に準備が済んでいます。 たとえば、行 2 は、Units フィーチャクラスの UNIT_ID 属性フィールドをターゲットにしています。 SOURCE_ANNOTATION 列に値を入力すると、アノテーション付きの CAD レイヤーがある行を完成させることができます。 属性フィールドに属性を追加する必要がない場合は、この列を空白のままにするか、その行を削除できます。 CAD アノテーションを追加したい場合は、Annotation to Field シートの追加行に、情報を入力します。
Units フィーチャクラスをターゲットにしており、CAD アノテーションが複数の CAD レイヤーから取得される場合、同じフィールドをターゲットとする複数の行に入力できます。 指定された CAD レイヤーの 2 つ以上に Unit フィーチャのアノテーションが含まれる場合、ツールでは、フィーチャのアノテーションを含むワークシートに記される最初の CAD レイヤーの CAD アノテーションを使用します。
以下は、完成した Annotation to Field シートの例です。
この例では、Annotation to Field シートに対して以下の更新が行われました。
- 行 2 については、適切な CAD アノテーションがないため、SOURCE_ANNOTATION 列は空白のままです。 [フロアプランを Indoors ジオデータベースにインポート (Import Floorplans To Indoors Geodatabase)] ツールは、Units フィーチャに対して一意の ID を自動的に生成します。
- 行 3 と行 4 は、いずれも Unit の NAME フィールドをターゲットにしています。 Unit フィーチャの NAME フィールドを設定するにはツールが、はじめに A-AREA-NAME レイヤーの CAD アノテーションを探します。 アノテーションが見つからない場合、次に the A-AREA-ALT-NAME レイヤーで CAD アノテーションを探します。 構成された CAD レイヤーにアノテーションが見つからない場合、ツールは Unit の NAME に対して自動的に値を生成します。
- 行 5 の SOURCE_ANNOTATION 列は、部屋の用途を説明した CAD アノテーションを含む A-AREA-TYPE という CAD レイヤーに設定されています。
- Zones および Sections に関連する行は使用されていなかったので、削除しました。
- A-ADMIN-NAME という名前の CAD レイヤーから Levels フィーチャクラスのカスタム ADMIN_NAME 属性フィールドにアノテーションをマッピングするための行 6 が追加されました。 カスタム ADMIN_NAME フィールドは、[フロアプランを Indoors ジオデータベースにインポート (Import Floorplans To Indoors Geodatabase)] ツールの実行前に、Levels フィーチャクラスに存在している必要があります。
ソース アノテーションの構文
SOURCE_ANNOTATION 列では、区切り文字で区切られた CAD アノテーションやブロック アノテーションを解析して一部を抽出する特殊構文を使用できます。 CAD アノテーションが文字または改行によって区切られた長い文字列で構成される場合は、SOURCE_ANNOTATION 列で次の構文を使用して特定の値を抽出できます。
<レイヤー名>|<位置>|<区切り文字>
例 1 - A-ANNO-LYR という CAD レイヤーには、次のようにピリオドで区切られた文字列の形でアノテーションがあります。
CAMPUS.A.A-210
文字列の 3 番目の部分「A-210」を返すには、SOURCE_ANNOTATION 列に次の値を入力します。
A-ANNO-LYR|3|.
例 2 - CAD レイヤーには、次のような複数の文字列 (MTEXT) の形でアノテーションがあります。
CAMPUS
H360
文字列の 2 番目の部分 (「H360」) を返すには、次のように「\P」を区切り文字として使用します。
A-ANNO-LYR|2|\P
CAD データにブロック アノテーションが含まれている場合は、SOURCE_ANNOTATION 列で次の構文を使用して特定の値を抽出できます。
<レイヤー名>|1|{<FIELD_NAME>}
この構文で、<FIELD_NAME> はアノテーション内で参照しているタグを示します。 たとえば、OFFICE_ID というタグを持つブロック アノテーションを含む A-ANNO-LYR という CAD レイヤーから一意の識別子を抽出するには、次の構文を使用します。
A-ANNO-LYR|1|{OFFICE_ID}
注意:
タグに、ジオデータベース フィールド名で使用できない文字 (ハイフンやその他の特殊文字) が含まれている場合、ArcGIS Pro ではアンダースコアに変換されます。 これらの文字を含むタグからブロック アノテーションをマッピングするには、マッピング テンプレート内でその文字をアンダースコアに置換します。 たとえば、CAD ドローイングで、A-ANNO-LYR という名前の CAD レイヤーに ROOM-NAME というタグを持つブロック アノテーションが含まれる場合、次の構文を使用します。
A-ANNO-LYR|1|{ROOM_NAME}
Annotation to Field シートへの入力
Annotation to Field シートに、次のように入力します。
- 「L1w205」や「A-101」などの一意の部屋識別子を含む CAD レイヤーの名前を、行 2 の SOURCE_ANNOTATION 列に入力します。 適切な CAD アノテーションを利用できない場合、この列を空白のままにすることができます。[フロアプランを Indoors ジオデータベースにインポート (Import Floorplans To Indoors Geodatabase)] ツールが UNIT_ID の一意の値を自動的に生成します。
フロア プランを更新し、スペース プランニングとワークスペースの予約に使用するフィールドを維持することができるように、各ユニット フィーチャに一意の値を含む CAD レイヤーを指定する必要があります。
注意:
[フロアプランを Indoors ジオデータベースにインポート (Import Floorplans To Indoors Geodatabase)] ツールは、CAD アノテーションのアンカー ポイントを使用して、関連するユニット フィーチャを特定します。 アノテーションをマッピングする CAD レイヤーを指定する前に、CAD アノテーションを調べてアンカー ポイントが関連する空間内に配置されていることを確認します。
- 行 3 の SOURCE_ANNOTATION 列に「Davies Hall」や「Server Room #4」など、一般的な部屋名を含む CAD レイヤーの名前を入力します。 適切な CAD アノテーションを利用できない場合、この列を空白のままにすることができます。ツールは、Units の NAME 属性の値を自動的に生成します。
- 行 4 の SOURCE_ANNOTATION 列に、「Office」、「Stairway」、「Conference Room」など、用途を説明する文字列を含む CAD レイヤーの名前を入力します。 適切な CAD アノテーションを利用できない場合、この列を空白のままにすることができます。ツールは、Units の USE_TYPE 属性に Null 値を割り当てます。
USE_TYPE 属性は Units には必要ありませんが、この属性を追加すると屋内のマップおよびシーンに用途別のユニットをシンボル表示することができます。
- 屋内 GIS の一部に Zones および Sections フィーチャクラスがある場合は、それらを含むよう必要に応じて行 5 ~ 8 の SOURCE_ANNOTATION 列に値を入力します。
適切な CAD アノテーションを利用できない場合、この列を空白のままにすることができます。ツールは、Zones および Sections フィーチャの ID と名前の値を生成します。 Zones フィーチャと Sections フィーチャについて一意の値を持つ CAD アノテーションを指定すると、ID フィールド値と、ArcGIS Pro で作成するカスタム フィールドが正しく更新されます。
注意:
Zones および Sections フィーチャクラスは、[Indoors データベースの作成 (Create Indoors Database)] ツールで作成されます。 屋内 GIS に Zones および Sections フィーチャクラスが含まれていない場合は、これらの行を削除するか、空のままにすることができます。
- 必要に応じて追加の行を作成して値を入力し、他の CAD アノテーションを Indoors 属性にマッピングします。
- SOURCE_ANNOTATION 列に、アノテーションを含む CAD レイヤーの名前を入力します。
- TARGET_FEATURE_CLASS 列に、アノテーションを格納する Indoors フィーチャクラスの名前を入力します。
注意:
Indoors Model に準拠している場合、CAD アノテーションは、Units、Levels、Facilities、Sections、Zones の各フィーチャクラスにマッピングできます。
- TARGET_FIELD_NAME 列に、アノテーションを格納する属性フィールドの名前を入力します。
属性フィールドはターゲット フィーチャクラスにすでに存在している必要があります。 Text、Short、Long、Float、Double の各フィールド データ タイプを使用できます。
注意:
ターゲット フィールドが、構成ファイルの他の場所の情報に基づいて入力される場合、そのフィールドについては、Annotation to Field のマッピングは無視されます。
- ファイルを保存します。
施設のプロパティの構成
Facility Properties シートには、インポートする 1 つまたは複数の施設に関するメタデータ (各施設の名前や高さなど) が保存されます。 このメタデータは、インポート プロセス中に Indoor データセットのフィーチャと属性に適用されます。
*_ID 列は、Indoor データセットにインポートされたフィーチャごとに一意の ID 文字列を生成するために使用されます。 各フィーチャの一意識別子には、関連するフィーチャの ID が含まれているので、フィーチャを関連する位置にリンクできます。 たとえば、レベル ID には、そのレベルがある施設の施設 ID が含まれます。
注意:
[フロアプランを Indoors ジオデータベースにインポート (Import Floorplans To Indoors Geodatabase)] ツールを実行すると、一意の ID 文字列内のキー値を分割するために使用される区切り文字を選択できます。
たとえば、ABCXYZ 大学にメイン キャンパスとブランチ キャンパスがあるシナリオを検討します。 大学の施設は、有名な科学者の名前が付けられています。 CAD データで、部屋番号の一部にハイフンが含まれているので、区切り文字にピリオド (.) を使用することにします。 このシナリオの *_ID 値は次のようになります。
列の名前 | 値の例 |
---|---|
SITE_ID | ABCXYZ.MAIN ABCXYZ.BRANCH |
FACILITY_ID | ABCXYZ.MAIN.GALILEO ABCXYZ.MAIN.CURIE ABCXYZ.BRANCH.FEYNMAN |
LEVEL_ID | ABCXYZ.MAIN.CURIE.1 ABCXYZ.MAIN.CURIE.2 ABCXYZ.MAIN.CURIE.3 |
注意:
フロア対応マップおよびシーンをサポートするために、*_ID 列の値の前に、すべての関連フィーチャの ID を選択した一意の ID の区切り文字で区切り、正確な順序で付加する必要があります。
次のように Facility Properties シートを設定します。
- SITE_ID 列に、各サイトの一意識別子をリストします。
必要に応じて、使用可能な一意の ID の区切り文字のいずれかの前に付加して、追加情報 (組織や国など) を含めます。
- 必要に応じて、SITE_NAME 列に、各サイトの一般的な名前をリストします。
- 必要に応じてコピーおよび貼り付けて、そのサイトの施設ごとに 1 つの行で、各サイトに追加の行を作成します。
- SITE_ID 列の値をコピーして、FACILITY_ID 列に貼り付けます。
- FACILITY_ID 列に、区切り文字と各施設の一意の ID の文字列を追加します。
注意:
必ずすべての *_ID 列で同じ区切り文字を使用するようにしてください。
- NAME 列に、マップ ラベルとして使用する一般的な施設名をリストします。
この列の値は 100 文字以内にする必要があります。
- 必要に応じて、NAME_LONG 列に、完全な施設名をリストします。
この列の値は最大は 255 文字です。
- ELEVATION_RELATIVE 列には、平らなテレイン サーフェスを基準として施設の最下部の標高を表示します。
ほとんどの場合、施設の最下部の相対標高は 0 です。
注意:
このフィールドは、施設フィーチャの Z 値の計算に使用します。
- HEIGHT_RELATIVE 列に、施設があるテレイン サーフェスを基準とする各施設の高さをリストします。
- MERGE_LEVELS 列に、Y または N を入力して、[フロアプランの Indoors ジオデータベースへのインポート (Import Floorplans To Indoors Geodatabase)] ツールがその施設のポリゴン フィーチャを生成する方法を構成します。
- Y - 施設のポリゴン フィーチャは施設のレベル ポリゴンを結合して生成されます。
- N - 施設のポリゴン フィーチャは、Layer to Feature Class シートの FACILITIES 列または FACILITY_LINES 列にリストされている CAD レイヤーから生成されます。
- ファイルを保存します。
レベル プロパティの構成
Level Properties シートには、インポートするフロアのメタデータと構成オプションが格納されます。
次のように Level Properties シートを設定します。
- Facility Properties シートの FACILITY_ID 列の値をコピーして、Level Properties シートの FACILITY_ID 列に貼り付けます。
- 必要に応じてコピーおよび貼り付けて、施設ごとに追加の行を作成します。 その施設のレベルごとに 1 つの行にする必要があります。
- FACILITY_ID 列の値をコピーして、LEVEL_ID 列に貼り付けます。
- LEVEL_ID 列に、区切り文字と各レベルの一意の ID の文字列を追加します。
通常、これはレベル番号です。
注意:
必ずすべての *_ID 列で同じ区切り文字を使用するようにしてください。
- NAME 列に、一般的なフロア名をリストします。
ツールはこれらの値を使用して、Units および Details フィーチャクラスの LEVEL_NAME 属性を設定します。
- NAME_SHORT 列に、フロアのショート ネームをリストします。
この列の値は 4 文字以内にする必要があります。 これらの値は、ArcGIS Pro またはモバイルおよび Web アプリ版 ArcGIS Indoors でフロア対応マップおよびシーンを操作するときに、フロア フィルターで使用されます。
- LEVEL_NUMBER 列に、各フロアの番号を示す整数 (施設のエレベーターに表示される数字など) をリストします。
ヒント:
施設によってはフロア番号がない場合があります。 たとえば、13 という数字は、多くの人が縁起の悪い番号と見なしているため、高い建物によってはこの数字のフロアがない場合があります。
- VERTICAL_ORDER 列に、同じ施設内にある他のレベルを基準とした各フロアの垂直方向の順番を示す整数をリストします。
各施設のグラウンド フロアにゼロ (0)、グラウンド フロアよりも上のレベルに正の連続した整数、グラウンド フロアよりも下のレベルに負の連続した整数を使用します。
- ELEVATION_RELATIVE 列に、地表を基準とした各レベルの最下部の高度をリストします。
ほとんどの場合、施設のグラウンド フロアの相対高度は 0 メートル、地上のフロアは正の相対高度値、地下のフロアは負の値を持ちます。
注意:
このフィールドは、レベル、ユニット、および詳細フィーチャの Z 値の計算に使用します。
- HEIGHT_RELATIVE 列に、レベルの最下部を基準とする各レベルの最上部の高さをリストします。
ヒント:
ほとんどの施設の HEIGHT_RELATIVE 値を検査する方法の 1 つは、HEIGHT_RELATIVE 列にある施設の地上レベルの値を合計し、その合計値を施設の HEIGHT_RELATIVE 値と比較することです。
- CLOSE_DOORS 列に、Y または N を入力して、CAD ポリラインからユニット フィーチャを生成するときに [フロアプランの Indoors ジオデータベースへのインポート (Import Floorplans To Indoors Geodatabase)] ツールがレベルのドアを閉じたドアとして処理するかどうかを構成します。
- Y - ドアは、ユニット フィーチャの生成時に閉じたドアとして処理されます。
- N - ドアは、閉じたドアとして処理されません。
注意:
CLOSE_DOORS 列は、Layer to Feature Class シートの UNIT_LINES 列と OPENINGS 列の両方が入力されているときにのみ有効です。
- PROCESS 列に、Y または N を入力して、[フロアプランの Indoors ジオデータベースへのインポート (Import Floorplans To Indoors Geodatabase)] ツールが処理するレベルを構成します。 この列を使用して、テストまたは更新の目的で個々のレベルを処理できます。
- Y - レベルはツールにより処理されます。
- N - レベルは処理されません。
- ファイルを保存します。
ソース ファイルの構成
Source Files シートには CAD ドローイングへのファイル パスが保存され、各ドローイングは Level Properties シートで定義されたレベルと関連付けられます。 1 つのレベルの CAD データが、相互にオーバーレイする複数のドローイングに置かれている場合、各ドローイング ファイルのソース パスを定義して、それらを 1 つのレベルに関連付けられます。
注意:
レベルごとに複数の CAD ドローイングからデータをインポートするための Source Files シートが ArcGIS Pro 2.7 で追加されました。 ArcGIS Pro 2.7 以前は、構成ファイルには Source Files が含まれておらず、CAD ファイル ソース パスは Level Properties シートに直接格納されていました。 どちらの構成ファイルも、現在のリリースで使用できます。
次のように Source Files シートを設定します。
- Level Properties シートの LEVEL_ID 列の値をコピーして、Source Files シートの LEVEL_ID 列に貼り付けます。
- 必要に応じてコピーおよび貼り付けて、レベルごとに追加の行を作成します。
その施設のデータを含むソース CAD ファイルごとに 1 つの行にする必要があります。
注意:
あるレベルのすべての CAD レイヤーが 1 つの CAD ドローイングにある場合、そのレベルの追加の行をコピーおよびペーストする必要はありません。
- SOURCE_PATH 列に、各ソース CAD ファイルへの完全なネットワークまたはローカル ファイル パスをリストします。
- ファイルを保存します。
構成スプレッドシートを完了したら、Indoor データセットに CAD フロア プランをインポートできます。