ダイアグラムをフィーチャに変換 (スケマティック)

ライセンス レベル:BasicStandardAdvanced

サマリ

スケマティック ダイアグラムを標準フィーチャクラスまたはシェープファイルに変換します。

スケマティック ダイアグラムは、非表示のフィーチャクラスにすべて格納されます。これらのフィーチャクラスは Schematics に固有であり、残りのスケマティック構成テーブルおよび有効な情報を必要とします。このツールを使用することで、すべてのダイアグラムと構成が含まれるスケマティック データセット全体を提供しなくても、他のユーザとダイアグラムを共有することができます。複数のダイアグラムを変換しようとする場合、それらをすべて同じ一連の標準フィーチャクラスまたはシェープファイルに配置するのか、あるいは各ダイアグラムに専用のフィーチャクラスまたはシェープファイルを与えるのかを選択することができます。

注意注意:

スケマティック データセットまたはスケマティック フォルダに含まれるすべてのダイアグラムを変換できるスクリプト ツール サンプルについては、「コード サンプル」のセクションをご参照ください。

使用法

構文

ConvertDiagram_schematics (in_diagram, out_location, {reuse_fc}, {export_related_attributes}, {container_geometry}, {config_keyword})
パラメータ説明データ タイプ
in_diagram

変換するスケマティック ダイアグラム レイヤ。

Schematic Layer
out_location

スケマティック ダイアグラムの変換先のワークスペースまたはフィーチャ データセット。このコンテナはすでに存在している必要があります。

Workspace;Feature Dataset
reuse_fc
[reuse_fc,...]
(オプション)

入力スケマティック ダイアグラム レイヤを、同じダイアグラム テンプレートに基づく他のダイアグラムと同じ標準フィーチャクラス/シェープファイルに変換するかどうかについて指定します。

  • REUSE_FC指定したダイアグラムを、同じダイアグラム テンプレートに基づく他のダイアグラムがすでに変換されたか、これから変換される、同じ標準フィーチャクラス/シェープファイルに変換する場合、これを指定する必要があります。この場合、指定したダイアグラムの変換後の格納先は、選択した出力場所に応じて以下のようになります。
    • ダイアグラム テンプレート名に対応する名前のフィーチャ データセットおよびスケマティック フィーチャクラス名に対応する名前の各フィーチャクラス。
    • ダイアグラム テンプレート名に対応する名前のフォルダおよびスケマティック フィーチャクラス名に対応する名前の各シェープファイル。
    これはデフォルトです。
  • NO_REUSE_FC入力ダイアグラムを変換して、新しいフィーチャ データセット/フォルダに格納します。このダイアグラム名は入力ダイアグラムのダイアグラム テンプレート名とダイアグラム名を組み合わせた名前に、各フィーチャクラス/シェープファイルはスケマティック フィーチャクラス名とダイアグラム名を組み合わせた名前になります。
Boolean
export_related_attributes
(オプション)

スケマティック フィーチャクラスに関連付けられた実際のフィーチャクラス/オブジェクト テーブルに格納されているすべての属性を一緒に変換するかどうかを指定します。

  • NO_RELATED_ATTRIBUTES入力ダイアグラムに含まれている各スケマティック フィーチャと、そのスケマティック フィーチャクラスに含まれている属性のみが変換されます。これはデフォルトです。
  • EXPORT_RELATED_ATTRIBUTES入力ダイアグラムに含まれている各スケマティック フィーチャ、そのスケマティック フィーチャクラスに含まれている属性、および実際の関連フィーチャに関連するすべての属性が変換されます。
注意注意:

スケマティック フィーチャクラスの関連フィーチャクラス/テーブルが何も指定されていない場合、フィーチャの属性は変換できません。

注意注意:

[REUSE_FC][EXPORT_RELATED_ATTRIBUTES] を使用する場合、関連属性を変換するには、関連するフィーチャ フィールドを含む構成がすでに存在している必要があります。

Boolean
container_geometry
[container_geometry,...]
(オプション)

入力ダイアグラムに含まれている変換対象のスケマティック コンテナに対して作成するフィーチャのジオメトリ タイプを指定します。

  • POLYGON入力ダイアグラム内の各コンテナがポリゴン フィーチャとして変換されます。これはデフォルトです。
  • POLYLINE入力ダイアグラム内の各コンテナがポリライン フィーチャとして変換されます。
  • POINT入力ダイアグラム内の各コンテナがポイント フィーチャとして変換されます。
注意注意:

[既存の構成を再使用] オプションを使用する場合、既存の構成でコンテナ スケマティック フィーチャに対してポリゴン(あるいはポリラインまたはポイント)フィーチャクラスが作成されているときに、その後の変換で、ポリラインまたはポイント(あるいはポリゴン)にフィーチャクラス タイプを変更することはできません。

String
config_keyword
(オプション)

リレーショナル データベース管理システム(RDBMS)内のテーブルの格納パラメータを決定する構成キーワード。ArcSDE 専用。

String

コードのサンプル

ConvertDiagram の例(スクリプト ツール)

次のスクリプトは、スクリプト ツールで ConvertDiagram 関数を使用する方法を示しています。このスクリプト ツールでは、入力スケマティック コンテナ(スケマティック データセットまたはスケマティック フォルダ)に含まれているすべてのダイアグラムに対してループ処理を行い、各ダイアグラムを出力場所にある標準フィーチャまたはシェープファイルに変換します。

このスクリプト ツールの作成方法および構成方法を以下に示します。

  1. 下記のスクリプトを任意のテキスト エディタにコピーし、拡張子「.py」を付けてテキスト ファイルを保存します。
  2. ArcCatalog を起動して ArcToolbox ウィンドウを開きます。
  3. 新しいスクリプトを次のように追加します。
    • スクリプト名を入力します(ConvertDiagramsTool など)。
    • [スクリプト ファイル] パラメータに、作成した *.py ファイルを指定します。
    • その後、次の 5 つのパラメータを指定します。
      1. [表示名]: 入力スケマティック コンテナ、[データ タイプ]: スケマティック データセットまたはスケマティック フォルダ。[タイプ] プロパティ = 必須、[方向] プロパティ = 入力
      2. [表示名]: 出力場所、[データ タイプ]: ワークスペースまたはフィーチャ データセット。[タイプ] プロパティ = 必須、[方向] プロパティ = 入力
      3. [表示名]: 再帰、[データ タイプ]: ブール型。[タイプ] プロパティ = 必須、[方向] プロパティ = 入力、[デフォルト値] = True
      4. [表示名]: ダイアグラム クラス フィルタ、[データ タイプ]: 文字列。[タイプ] プロパティ = オプション、[方向] プロパティ = 入力
      5. [表示名]: 派生した出力場所、[データ タイプ]: ワークスペースまたはフィーチャ データセット。[タイプ] プロパティ = 派生、[方向] プロパティ = 出力、[取得元] = Output_Location

必須入力パラメータ: 入力スケマティック コンテナ(データセットまたはフォルダ)+ 出力場所(GDB、フィーチャ データセット、またはシェープファイルのフォルダ)

オプションの引数: 再帰フラグ + ダイアグラム クラス フィルタ

出力派生場所: ワークスペースまたはフィーチャ データセット

# Name: ConvertDiagrams.py
# Description: Convert schematic diagrams
# Requirement: ArcGIS Schematics エクステンション

# import arcpy, sys, math
import arcpy, sys, math
msgInputsErr = "Invalid arguments."
msgParseErr = "Cannot parse input arguments."
msgConvertErr = "Error during conversion."

msgNoLicenseAvailable = "ArcGIS Schematics エクステンション license required"

# Recursively searches for schematic diagrams in the folders
def RecursiveSearch(inCont, bRecursive):
    try:
        childs = inCont.Children
        dataset = None
        for dataset in childs:
            if dataset.DataType == "SchematicFolder" and bRecursive:
                RecursiveSearch(dataset, bRecursive)
            elif dataset.DataType == "SchematicDiagram":
                if diagramClassFilter == "" or diagramClassFilter == dataset.DiagramClassname:
                    pathList.append(dataset.CatalogPath)
    except:
        raise
    
try:
# Checks out the ArcGIS Schematics エクステンション license    
    if arcpy.CheckExtension("Schematics") == "Available":
        arcpy.CheckOutExtension("Schematics")
    else:
        raise Exception(msgNoLicenseAvailable)
except Exception as exc:
    print exc
    raise

arcpy.env.overwriteOutput = True


# Decodes parameters
try:
    inputContainer = arcpy.GetParameterAsText(0)
    outputLocation = arcpy.GetParameterAsText(1)
    recursive = arcpy.GetParameterAsText(2)
    if recursive == "false":
        recursive = None
    diagramClassFilter = arcpy.GetParameterAsText(3)
    
    if inputContainer == "":
        raise Exception()
    
except:
    print msgParseErr
    arcpy.AddError(msgParseErr)
    raise

# Main code
try:
    pathList = []   # List for diagram names to convert
    arcpy.SetProgressorLabel("Searching diagrams to convert...")
    RecursiveSearch(arcpy.Describe(inputContainer), recursive)

    arcpy.SetProgressor("step", "Converting...", 0, len(pathList), 1)

    for path in pathList:
        # Execute convert
        mes = "Converting Schematic Diagram : " + path
        # Set the progressor label
        arcpy.SetProgressorLabel(mes)
        arcpy.AddMessage(mes)
        arcpy.ConvertDiagram_schematics(path, outputLocation, "REUSE_FC", "NO_RELATED_ATTRIBUTES", "#")
        arcpy.SetProgressorPosition()

    # Returns the ArcGIS Schematics エクステンション licence
    arcpy.CheckInExtension("Schematics")

except:
    arcpy.AddError(msgConvertErr)
    raise

環境

関連トピック

ライセンス情報

ArcGIS for Desktop Basic: 次のものが必要 スケマティクス
ArcGIS for Desktop Standard: 次のものが必要 スケマティクス
ArcGIS for Desktop Advanced: 次のものが必要 スケマティクス
5/10/2014