マルチパッチ → COLLADA(Multipatch To Collada) (変換)
サマリ
1 つ以上のマルチパッチ フィーチャを出力フォルダ内の COLLADA ファイルと参照されているテクスチャ画像ファイルのコレクションに変換します。入力として、レイヤまたはフィーチャクラスのいずれかを指定できます。
使用法
-
COLLADA ファイルは、3D オブジェクトの XML 表現であり、3D ジオメトリ上にドレープされたテクスチャとして機能する追加の画像ファイルの参照が可能です。そのため、マルチパッチ フィーチャを COLLADA にエクスポートすることにより、3D オブジェクトの XML 表現が格納されている *.dae ファイル、テクスチャが格納されている 1 つまたは複数の画像ファイル(たとえば、*.jpg ファイルや *.png ファイル)など、いくつかのファイルを作成することが可能です。
このツールでは、エクスポートしたマルチパッチ フィーチャごとに 1 つの COLLADA 表現が作成されます。このツールは、各フィーチャからのフィールド値(デフォルトでは、オブジェクト ID)を使用して、出力ファイル名を定義します。このフィールド値は、どの COLLADA ファイルからどのフィーチャがエクスポートされたかを識別しやすくするうえで有効です。また、複数のフィーチャを同じディレクトリにエクスポートするときに一意の名前を定義する方法も提供します。テクスチャ ファイルは、images サブディレクトリ(COLLADA ファイルの下)に格納されます。
このツールでは、同じファイル名の既存の COLLADA ファイルが自動的に上書きされます。この上書きが発生した場合、エクスポート処理中に新しいファイルで上書きされたファイルを示す警告メッセージが表示されます。エクスポートに失敗したフィーチャについての GP メッセージが生成されるのは、たとえば、出力場所が読み取り専用だったりディスクの空き領域が不足していたりした場合です。
エクスポートされたすべてのマルチパッチ フィーチャ用に新しい COLLADA ファイルが作成されるようにするには、作成先ディレクトリを空のフォルダつまり新しいフォルダに設定して、フィーチャごとに一意のファイル名フィールドを選択します。属性値が同じ 2 つのフィーチャをエクスポートすると、先にエクスポートされた COLLADA ファイルが 2 番目にエクスポートされたフィーチャで上書きされます。
マルチパッチ フィーチャを COLLADA にエクスポートして ArcGIS 外部で変更を行って、繰り返し対話操作で更新するときは、毎回同じ場所にフィーチャをエクスポートしてください。そうすることにより、ディスク上に 3D オブジェクトの最新の状態を表す対象のフィーチャ用のファイルが 1 つだけに維持されます。
UTM に格納された建物など、エクスポートされたマルチパッチが投影座標系である場合、WGS84 として座標系を含む KML ファイルも出力フォルダに作成されます。このプロセスは、測地基準系変換を使用しないことに注意してください。測地基準系変換を使用すると、KML を表示するときに位置が一致しなくなる可能性があります。
構文
| パラメータ | 説明 | データ タイプ |
in_features |
エクスポート対象のマルチパッチ フィーチャ。 | Feature Layer |
output_folder |
出力 COLLADA ファイルとテクスチャ画像ファイルの格納先となるフォルダ。 | Folder |
prepend_source (オプション) | 出力 COLLADA ファイルのファイル名に接頭辞としてソース フィーチャ レイヤの名前を付加します。
| Boolean |
field_name |
エクスポートされた各フィーチャに出力 COLLADA ファイル名として使用するフィーチャ属性。フィールドが指定されていない場合は、フィーチャのオブジェクト ID が使用されます。 | String |
コードのサンプル
次の Python ウィンドウ スクリプトで、MultipatchToCollada(マルチパッチ → COLLADA)関数をイミディエイト モードで使用する方法を示します。
import arcpy
from arcpy import env
env.workspace = "C:/data"
arcpy.MultipatchToCollada_conversion("Buildings","C:/COLLADA", PREPEND_SOURCE_NAME, "BldName")次のスタンドアロン スクリプトで、MultipatchToCollada(マルチパッチ → COLLADA)関数の使用方法を示します。
# Name: MultipatchToCollada_Example2.py
# Description: The following stand-alone script demonstrates how to use the
# MultipatchToCollada tool to convert all multipatch shapefiles
# in a target workspace.
# Requirements: 3D Analyst extension
# Author: ESRI
# Import system modules
import arcpy
from arcpy import env
# Obtain a license for the 3D Analyst extension
arcpy.CheckOutExtension("3D")
# Set environment settings
env.workspace = "C:/data"
try:
# Create list of feature classes in workspace
fcList = arcpy.ListFeatureClasses()
# Determine if the list contained any feature classes
if len(fcList) > 0:
# 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":
# Set Local Variables
## 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 = "Name"
#Execute MultipatchToCollada
arcpy.MultipatchToCollada(fc, outDir, prepend, fldName)
del outDir, prepend, fldName
else:
print "There are no multipatch shapefiles in " + env.workspace + "."
else:
print "There are no feature classes in " + env.workspace + "."
except Exception as e:
# Returns any other error messages
print arcpy.GetMessages(2)
del arcpy