ラベル | 説明 | データ タイプ |
入力マルチパッチ フィーチャ | エクスポート対象のマルチパッチ フィーチャ | Feature Layer |
出力 COLLADA フォルダー | 出力 COLLADA ファイルおよびテクスチャ画像ファイルの格納先となるフォルダー | Folder |
ソース名の前に追加 (オプション) | 出力 COLLADA ファイルの名前をソース フィーチャ レイヤーの名前の前に付加するかどうかを指定します。
| Boolean |
フィールド名の使用 (オプション) | エクスポートされた各フィーチャの出力 COLLADA ファイル名として使用するフィーチャ属性。 フィールドを指定しない場合、フィーチャの Object ID が使用されます。 | Field |
COLLADA のバージョン | ファイルのエクスポート先の COLLADA のバージョンを指定します。
| String |
サマリー
1 つ以上のマルチパッチ フィーチャを出力フォルダー内の COLLADA ファイル (*.dae) および参照テクスチャ画像ファイルのコレクションに変換します。
使用法
COLLADA ファイルは、3D ジオメトリ上にドレープされたテクスチャとして機能する追加の画像ファイルを参照できる 3D オブジェクトの XML 表現です。 これは、マルチパッチ フィーチャを COLLADA にエクスポートすると、3D オブジェクトの XML 表現を含む *.dae ファイルおよびテクスチャを含む 1 つ以上の画像ファイル (たとえば、*.jpg ファイルや *.png ファイル) など、複数のファイルが作成されることを意味します。
このツールは、エクスポート対象のマルチパッチ フィーチャごとに 1 つの COLLADA 表現を作成します。 ツールは、各フィーチャのフィールド値 (デフォルトでは Object ID) を使用して出力ファイル名を定義します。 これにより、どのフィーチャがどの COLLADA ファイルにエクスポートされたか識別できるようになり、複数のフィーチャを同じディレクトリにエクスポートするときに一意の名前を定義するための手法が提供されます。 テクスチャ ファイルは、COLLADA ファイルと同じディレクトリに格納されます。 エクスポート ファイルの合計サイズを最小化するには、複数の COLLADA ファイル (繰り返しのレンガまたは窓のテクスチャなど) で使用されるテクスチャを一度だけエクスポートし、適用可能な *.dae ファイルで参照します。
このツールは、同じファイル名の既存の COLLADA ファイルを自動的に上書きします。 その場合には、エクスポート プロセス中に新しいファイルで上書きされたファイルを示す警告メッセージが表示されます。 出力場所が読み取り専用であるか、ディスクがいっぱいである場合など、エクスポートに失敗したフィーチャに対して、ジオプロセシング メッセージも生成されます。
エクスポートされたすべてのマルチパッチ フィーチャに新しい COLLADA ファイルが作成されるようにするには、格納先ディレクトリを空または新しいフォルダーに設定して、フィーチャごとに一意のファイル名フィールドを選択します。 属性値が同じ 2 つのフィーチャをエクスポートすると、エクスポートされた 2 つ目のフィーチャが 1 つ目の COLLADA ファイルを上書きします。
マルチパッチ フィーチャを COLLADA にエクスポートし、ArcGIS の外部で変更を行って繰り返し更新する場合は、毎回同じ場所にフィーチャをエクスポートします。 こうすることで、3D オブジェクトの最新の状態を表す、そのフィーチャの 1 つのファイルをディスクに保持できます。
エクスポートされたマルチパッチが投影座標系にある場合 (UTM ゾーンで保存された建物など)、座標を WGS84 として含む *.kml ファイルも出力フォルダーに作成されます。 このプロセスは測地基準系変換を使用しないため、KML を表示する際に位置の精度が低下する場合があります。
ヒント:
マルチパッチをレイヤーから変換するとき、ツールはレイヤーのレンダラーで定義された色を自動的に埋め込みます。 たとえば、レイヤーが用途タイプ属性 (商用は赤、住居用は青など) に基づくレンダリング フィーチャの場合、これらの色は出力 COLLADA ファイルに含められます。 表示される色はテクスチャ処理されたマルチパッチ フィーチャとテクスチャ処理されていないマルチパッチ フィーチャの両方に適用されます。テクスチャ処理されたマルチパッチ フィーチャはそのフィーチャの基になるテクスチャ ファイルに更新する必要があります。 単一の白の表示色を使用して、画像を変更せずにテクスチャ処理されたマルチパッチをエクスポートできます。
パラメーター
arcpy.conversion.MultipatchToCollada(in_features, output_folder, {prepend_source}, {field_name}, collada_version)
名前 | 説明 | データ タイプ |
in_features | エクスポート対象のマルチパッチ フィーチャ | Feature Layer |
output_folder | 出力 COLLADA ファイルおよびテクスチャ画像ファイルの格納先となるフォルダー | Folder |
prepend_source (オプション) | 出力 COLLADA ファイルの名前をソース フィーチャ レイヤーの名前の前に付加するかどうかを指定します。
| Boolean |
field_name (オプション) | エクスポートされた各フィーチャの出力 COLLADA ファイル名として使用するフィーチャ属性。 フィールドを指定しない場合、フィーチャの Object ID が使用されます。 | Field |
collada_version | ファイルのエクスポート先の COLLADA のバージョンを指定します。
| String |
コードのサンプル
次のサンプルは、Python ウィンドウでこのツールを使用する方法を示しています。
import arcpy
arcpy.env.workspace = "C:/data"
arcpy.conversion.MultipatchToCollada("Sample.gdb/Buildings", "C:/COLLADA",
"PREPEND_SOURCE_NAME", "BldName")
次のサンプルは、スタンドアロン Python スクリプトでこのツールを使用する方法を示しています。
'''*********************************************************************
Name: Convert Multipatch To Collada
Description: Converts multipatch features in an input workspace
to a Collada model.
*********************************************************************'''
# Import system modules
import arcpy
# Script variables
inWorkspace = arcpy.GetParameterAsText(0)
# Set environment settings
arcpy.env.workspace = inWorkspace
# Create list of feature classes in workspace
fcList = arcpy.ListFeatureClasses()
# Determine if the list contained any feature classes
if fcList:
# Iterate through each feature class
for fc in fcList:
# Describe the feature class
desc = arcpy.Describe(fc)
# Determine if feature class is a multipatch
if desc.shapeType is 'MultiPatch':
# Ensure unique name for output folder
outDir = arcpy.CreateUniqueName('collada_dir')
# Specify that collada file is prefixed by source name
prepend = 'PREPEND_SOURCE_NAME'
# Specify the feature attribute used to name Collada files
fldName = 'OID'
# Run MultipatchToCollada
arcpy.conversion.MultipatchToCollada(fc, outDir, prepend, fldName)
else:
print('There are no feature classes in {0}.'.format(inWorkspace))
環境
ライセンス情報
- Basic: Yes
- Standard: Yes
- Advanced: Yes