マルチパッチ → COLLADA (Multipatch To Collada) (変換)

概要

1 つ以上のマルチパッチ フィーチャを出力フォルダー内の COLLADA (*.dae) ファイルと参照されているテクスチャ画像ファイルのコレクションに変換します。入力として、レイヤーまたはフィーチャクラスのいずれかを指定できます。

使用法

  • COLLADA ファイルは、3D オブジェクトの XML 表現であり、3D ジオメトリ上にドレープされたテクスチャとして機能する追加の画像ファイルの参照が可能です。そのため、マルチパッチ フィーチャを COLLADA にエクスポートすると、3D オブジェクトの XML 表現が格納されている *.dae ファイル、テクスチャが格納されている 1 つまたは複数の画像ファイル (たとえば、*.jpg ファイルや *.png ファイル) など、いくつかのファイルを作成することが可能です。

  • このツールでは、エクスポートしたマルチパッチ フィーチャごとに 1 つの COLLADA 表現が作成されます。このツールは、各フィーチャからのフィールド値 (デフォルトでは、オブジェクト ID) を使用して、出力ファイル名を定義します。このフィールド値は、どの COLLADA ファイルからどのフィーチャがエクスポートされたかを識別しやすくするうえで有効です。また、複数のフィーチャを同じディレクトリにエクスポートするときに一意の名前を定義する方法も提供します。テクスチャ ファイルは COLLADA ファイルと同じディレクトリに格納されます。エクスポート ファイルの合計サイズを最小化するには、複数の COLLADA ファイルで使用されているテクスチャ (レンガや窓が繰り返されたテクスチャなど) を一度だけエクスポートしてから、適用可能な DAE ファイルで参照します。

  • このツールでは、同じファイル名の既存の COLLADA ファイルが自動的に上書きされます。この上書きが発生した場合、エクスポート処理中に新しいファイルで上書きされたファイルを示す警告メッセージが表示されます。エクスポートに失敗したフィーチャについての GP メッセージが生成されるのは、たとえば、出力場所が読み取り専用だったりディスクの空き領域が不足していたりした場合です。

  • エクスポートされたすべてのマルチパッチ フィーチャ用に新しい COLLADA ファイルが作成されるようにするには、作成先ディレクトリを空のフォルダーつまり新しいフォルダーに設定して、フィーチャごとに一意のファイル名フィールドを選択します。属性値が同じである 2 つのフィーチャをエクスポートすると、先にエクスポートされた COLLADA ファイルが 2 番目にエクスポートされたフィーチャで上書きされます。

  • マルチパッチ フィーチャを COLLADA にエクスポートして ArcGIS 外部で変更を行って、繰り返し対話操作で更新するときは、毎回同じ場所にフィーチャをエクスポートしてください。そうすることにより、ディスク上に 3D オブジェクトの最新の状態を表す対象のフィーチャ用のファイルが 1 つだけに維持されます。

  • UTM に格納された建物など、エクスポートされたマルチパッチが投影座標系である場合、WGS84 として座標系を含む KML ファイルも出力フォルダーに作成されます。このプロセスは、測地基準系変換を使用しないことに注意してください。測地基準系変換を使用すると、KML を表示するときに位置が一致しなくなる可能性があります。

    ヒント:

    レイヤーのマルチパッチを変換する場合、[マルチパッチ → COLLADA (Multipatch To Collada)] ツールはレイヤーのレンダラーで定義された色を自動的に埋め込みます。たとえば、利用タイプ属性に基づいてレイヤーがフィーチャをレンダリングしている場合 (たとえば、商業用を赤、居住用を青など)、出力 COLLADA ファイルにはこれらの色が含まれています。表示色は、テクスチャ処理されたマルチパッチ フィーチャとテクスチャ処理されていないマルチパッチ フィーチャの両方に適用され、テクスチャ処理されたマルチパッチ フィーチャでは、フィーチャの基になるテクスチャ ファイルの更新が必要です。単一の表示色 () を使用すると、テクスチャ処理されたマルチパッチを画像を変更せずにエクスポートできます。

構文

arcpy.conversion.MultipatchToCollada(in_features, output_folder, {prepend_source}, {field_name})
パラメーター説明データ タイプ
in_features

エクスポート対象のマルチパッチ フィーチャ。

Feature Layer
output_folder

出力 COLLADA ファイルとテクスチャ画像ファイルの格納先となるフォルダー。

Folder
prepend_source
(オプション)

出力 COLLADA ファイルのファイル名に接頭辞としてソース フィーチャ レイヤーの名前を付加します。

  • PREPEND_SOURCE_NAMEファイル名に接頭辞を付けます。
  • PREPEND_NONEファイル名に接頭辞を付けません。これがデフォルトです。
Boolean
field_name
(オプション)

エクスポートされた各フィーチャに出力 COLLADA ファイル名として使用するフィーチャ属性。フィールドが指定されていない場合は、フィーチャのオブジェクト ID が使用されます。

Field

コードのサンプル

MultipatchToCollada (マルチパッチ → COLLADA) の例 1 (Python ウィンドウ)

次のサンプルは、Python ウィンドウでこのツールを使用する方法を示しています。

import arcpy
from arcpy import env

env.workspace = "C:/data"
arcpy.MultipatchToCollada_conversion("Sample.gdb/Buildings", "C:/COLLADA", 
                                   "PREPEND_SOURCE_NAME", "BldName")
MultipatchToCollada (マルチパッチ → COLLADA) の例 2 (スタンドアロン スクリプト)

次のサンプルは、スタンドアロン 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'
           #Execute MultipatchToCollada
           arcpy.MultipatchToCollada(fc, outDir, prepend, fldName)
else:
    print('There are no feature classes in {0}.'.format(inWorkspace))

環境

このツールは、ジオプロセシング環境を使用しません。

ライセンス情報

  • Basic: はい
  • Standard: はい
  • Advanced: はい

関連トピック