ダイアグラムの作成(Create Diagram) (Schematics)

ライセンス レベル:BasicStandardAdvanced

サマリ

スケマティック ダイアグラムを作成します。

関連するスケマティック ビルダに応じて、フィーチャ レイヤ、フィーチャクラス、オブジェクト テーブル、ネットワーク解析レイヤ、または XML データからダイアグラムを作成できます。

使用法

構文

CreateDiagram_schematics (out_location, out_name, diagram_type, {in_data}, {builder_options})
パラメータ説明データ タイプ
out_location

ダイアグラムの作成先のスケマティック データセットまたはスケマティック フォルダ。

注意注意:

このコンテナはすでに存在している必要があります。

Schematic Dataset;Schematic Folder
out_name

作成するスケマティック ダイアグラムの名前。

String
diagram_type
[diagram_type,...]

作成するスケマティック ダイアグラムのスケマティック ダイアグラム テンプレート。

String
in_data
[in_data,...]
(オプション)

ダイアグラムを生成する入力データ。

[入力データ] パラメータには、ダイアグラムの生成のベースとして使用するエレメントを指定します。定義済みスケマティック ビルダのほとんどで、このパラメータを指定する必要があります。

  • ダイアグラム テンプレートが、ジオメトリック ネットワークまたはネットワーク データセットから動作するように構成されたスタンダード ビルダと連動する場合、[入力データ] パラメータで少なくともフィーチャ レイヤ、フィーチャクラス、またはオブジェクト テーブルを参照する必要があります。
  • ダイアグラム テンプレートがネットワーク データセット ビルダと連動する場合、[入力データ] パラメータでユニークなネットワーク解析レイヤを参照する必要があります。関連するネットワーク解析が実行されない場合、解析済みの解析レイヤを入力として使用できるように、解析の実行が試みられます。
  • ダイアグラム テンプレートが XML ビルダに関連付けられている場合、ダイアグラムを生成するためのデータが外部コンポーネントによって提供されるなら、[入力データ] パラメータの指定はオプションです。しかし、ビルダ プロパティで外部コンポーネントを定義していない場合は、[入力データ] パラメータで XML ファイルを参照する必要があります。どちらの場合も、入力 XML データは XMLBuilderDiagram XML スキーマ ファイルに従って構築する必要があります。
  • ダイアグラム テンプレートが、カスタム クエリから動作するように構成されたスタンダード ビルダと連動する場合、入力データは不要です。
注意注意:

ダイアグラム テンプレートが、ジオメトリック ネットワークまたはネットワーク データセットから動作するように構成されたスタンダード ビルダ、XML ビルダまたはネットワーク データセット ビルダと連動する場合、入力データを指定しないと、ダイアグラムを作成できません。

Table View;Data Element;Layer
builder_options
(オプション)

スケマティック ビルダの作成パラメータ。これらのパラメータはネットワーク データセット ビルダに基づくダイアグラムのみで必要で、ノードをマージするかどうかを指定します。

  • MERGE_NODESルート解析結果のルートに沿って複数回取得されたネットワーク エレメント ジャンクションを、生成するスケマティック ダイアグラムで 1 つのスケマティック フィーチャ ノードによって表現することを指定します。また、到達圏解析で同じ位置にあるミッドスパン ジャンクション エレメントをマージすることもできます。
  • NO_MERGE_NODESスケマティック フィーチャ ノードをマージしないことを指定します(デフォルト)。
String

コードのサンプル

CreateDiagram(ダイアグラムの作成)とジオメトリック ネットワーク データで動作するスタンダード ビルダ - 例 1(スタンドアロン Python スクリプト)

ジオメトリック ネットワークにまとめられた GIS フィーチャから、サンプルのスケマティック ダイアグラムを作成します。

この Python スクリプトの例の実行方法は次のとおりです。

  1. 新しい空のマップを使用して ArcCatalog または ArcMap を起動します。
  2. 以下のスクリプトをコピーして Python ウィンドウに貼り付けます。
  3. Enter キーを押します。

# Name: CreateDiagramStd.py
# Description: Create schematic diagrams sample from GIS features organized into a geometric network
# Requirement: ArcGIS Schematics エクステンション

# import system modules
import arcpy
msgNoLicenseAvailable = "ArcGIS Schematics エクステンション license required"

try:
    # Checks out the ArcGIS Schematics エクステンション license
    if arcpy.CheckExtension("Schematics") == "Available":
        arcpy.CheckOutExtension("Schematics")
    else:
        raise Exception(msgNoLicenseAvailable)

    # Sets environment settings
    arcpy.env.overwriteOutput = True
    arcpy.env.workspace = "C:\ArcGIS\ArcTutor\Schematics\Schematics_In_ArcMap\ElecDemo.gdb"

    # CreateDiagram from a feature class, Feeder
    arcpy.CreateDiagram_schematics("ElecDemo", "FeederDiagram", "GeoSchematic", "ElectricNetwork\Feeder")

    # CreateDiagram from a feature layer
    # 1) Creates a layer with the selection
    InputLayer = arcpy.MakeFeatureLayer_management("ElectricNetwork\PrimaryLine","PrimaryLineLayer", "PHASECODE =135")
    # 2) Uses the layer as input of CreateDiagram
    arcpy.CreateDiagram_schematics("ElecDemo", "ElectricMainNetworkDiagram", "GeoSchematic", InputLayer)

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

    print "Script completed successfully"

except Exception as e:
    # If an error occurred, print line number and error message
    import traceback, sys
    tb = sys.exc_info()[2]
    print "An error occured on line %i" % tb.tb_lineno
    print str(e)
CreateDiagram(ダイアグラムの作成)とネットワーク データセット ビルダ - 例 2(スタンドアロン Python スクリプト)

解析済みのネットワーク解析レイヤから、サンプルのスケマティック ダイアグラムを作成します。

この Python スクリプトの例の実行方法は次のとおりです。

  1. ArcMap を起動します。
  2. C:\ArcGIS\ArcTutor\Schematics\Schematics_Configuration\Network_Dataset に保存されている ParisTours.mxd ファイルを開きます。
  3. [ジオプロセシング] → [ジオプロセシング オプション] の順にクリックします。
  4. [バックグラウンド処理] セクションの [有効] をオフにして、[OK] をクリックします。
  5. 以下のスクリプトをコピーして Python ウィンドウに貼り付けます。
  6. Enter キーを押します。

# Name : CreateDiagramNDS.py
# Description : Create a schematic diagram from the network dataset builder
# Requirement: ArcGIS Schematics エクステンション,ArcGIS Network Analyst エクステンション 

# import system modules
import arcpy
msgNoLicenseSchematicsAvailable = "ArcGIS Schematics エクステンション license required"
msgNoLicenseNetworkAnalystAvailable = "ArcGIS Network Analyst エクステンション license required"


try:
    # Checks out the ArcGIS Schematics エクステンション licence
    if arcpy.CheckExtension("Schematics") == "Available":
       arcpy.CheckOutExtension("Schematics")
    else:
       raise Exception(msgNoLicenseSchematicsAvailable)

    # Checks out the ArcGIS Network Analyst エクステンション licence
    if arcpy.CheckExtension("Network") == "Available":
       arcpy.CheckOutExtension("Network")
    else:
       raise Exception(msgNoLicenseNetworkAnalystAvailable)
 
    # Sets environnement settings
    arcpy.env.overwriteOutput = True
    arcpy.env.workspace = "C:\ArcGIS\ArcTutor\Schematics\Schematics_Configuration\Network_Dataset\NetworkAnalyst_Schematics.gdb"
    
    # CreateDiagram from a solved route network analysis layer
    # 1) Solves the route network analysis layer, Tour1
    arcpy.Solve_na("Routes\Tour1")
    # 2) Creates diagrams from this solved route network analysis layer
    # a - DiagramTour_MERGED diagram, where a single schematic feature node is created to represent a network junction which is crossed N times along the resultant route (MERGE_NODES option)
    arcpy.CreateDiagram_schematics("NA_SchematicDataset", "DiagramTour_MERGED", "NADiagrams", "Routes\Tour1", "MERGE_NODES")
    # b - DiagramTour_NOTMERGED diagram, where N schematic nodes are created to represent a network junction which is crossed N times along the resultant route (NOT_MERGE_NODES option)
    arcpy.CreateDiagram_schematics("NA_SchematicDataset", "DiagramTour_NOTMERGED", "NADiagrams", "Routes\Tour1", "NO_MERGE_NODES")


    # Returns the licences
    arcpy.CheckInExtension("Schematics")
    arcpy.CheckInExtension("Network")
    
    print "Script completed successfully"

except Exception as e:
    # If an error occurred, print line number and error message
    import traceback, sys
    tb = sys.exc_info()[2]
    print "An error occured on line %i" % tb.tb_lineno
    print str(e)
CreateDiagram(ダイアグラムの作成)と XML ビルダ - 例 3(スタンドアロン Python スクリプト)

XML ビルダに基づくサンプルのスケマティック ダイアグラムを作成します。

この Python スクリプトの例の実行方法は次のとおりです。

  1. ArcCatalog を起動します。
  2. サンプル スクリプトで使用するスケマティック データセットを作成して構成します。
    • カタログ ツリーで、C:\ArcGIS\ArcTutor\Schematics\Schematics_Configuration\XML_Data フォルダに移動します。
    • GISDatabaseForXML ジオデータベースを右クリックし、[新規作成] をポイントして、[スケマティック データセット] をクリックします。
    • 新しく作成するスケマティック データセットの名前として「XMLDataset」と入力し、Enter キーを押します。
    • XMLDataset スケマティック データセットを右クリックし、[編集] をクリックします。
    • データセット エディタのツリーで [XMLDataset] エントリを右クリックし、[新規スケマティック ダイアグラム テンプレート] をクリックします。
    • [名前] テキスト ボックスに「XMLDiagrams」と入力します。
    • [スケマティック ビルダ] セクションで [XML ビルダ] を選択します。
    • [スケマティック ビルダ プロパティ] をクリックし、[スケマティック フィーチャクラスの自動作成] をオンにします。
    • [ビルダ プロパティ] ダイアログ ボックスを閉じます。
    • [OK] をクリックします。
    • [スケマティック データセット エディタ] ツールバーの [保存] をクリックし、スケマティック データセット エディタを閉じます。
  3. 以下のスクリプトをコピーして、ArcCatalog または ArcMap Python ウィンドウに貼り付けます。
  4. Enter キーを押します。

# Name: CreateDiagramXML.py
# Description: Create a sample schematic diagram based on the XML builder
# Requirement: ArcGIS Schematics エクステンション

# import system modules
import arcpy
msgNoLicenseAvailable = "ArcGIS Schematics エクステンション license required"

try:
    # Checks out the ArcGIS Schematics エクステンション license
    if arcpy.CheckExtension("Schematics") == "Available":
        arcpy.CheckOutExtension("Schematics")
    else:
        raise Exception(msgNoLicenseAvailable)

    # Sets environment settings
    arcpy.env.overwriteOutput = True
    arcpy.env.workspace = "C:\ArcGIS\ArcTutor\Schematics\Schematics_Configuration\XML_Data\GISDatabaseForXML.gdb"

    # CreateDiagram from a XML file, SampleNetworkData.xml file
    arcpy.CreateDiagram_schematics("XMLDataset", "XMLDiagramSample", "XMLDiagrams", "C:\ArcGIS\ArcTutor\Schematics\Schematics_Configuration\XML_Data\SampleNetworkData.xml")

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

    print "Script completed successfully"

except Exception as e:
    # If an error occurred, print line number and error message import traceback, sys
    tb = sys.exc_info()[2]
    print "An error occured on line %i" % tb.tb_lineno
    print str(e)
CreateDiagram(ダイアグラムの作成)とカスタム クエリから動作するスタンダード ビルダ - 例 4(スタンドアロン Python スクリプト)

カスタム クエリからサンプルのスケマティック ダイアグラムを作成します。

この Python スクリプトの例の使用方法は次のとおりです。

  1. ArcCatalog を起動します。
  2. このスクリプトは ElecDemo チュートリアル ジオデータベースのコピーで使用して、元のプラント内ダイアグラムを上書きしないようにします。
    • カタログ ツリーで、C:\ArcGIS\ArcTutor\Schematics\Schematics_In_ArcMap フォルダに移動します。
    • ElecDemo ジオデータベースをコピーして貼り付けます。新しく作成した ElecDemo_1 ジオデータベースが、サンプルのスクリプトで処理するジオデータベースです。
  3. 以下のスクリプトをコピーして、ArcCatalog または ArcMap Python ウィンドウに貼り付けます。
  4. Enter キーを押します。

# Name: CreateDiagramCustomQuery.py
# Description: Create a schematic diagram from custom queries
# Requirement: ArcGIS Schematics エクステンション

# import system modules
import arcpy
msgNoLicenseAvailable = "ArcGIS Schematics エクステンション  license required"

try:
    # Checks out the ArcGIS Schematics エクステンション license
    if arcpy.CheckExtension("Schematics") == "Available":
        arcpy.CheckOutExtension("Schematics")
    else:
        raise Exception(msgNoLicenseAvailable)
	
    # Sets environment settings
    arcpy.env.overwriteOutput = True
    arcpy.env.workspace = "C:\ArcGIS\ArcTutor\Schematics\Schematics_In_ArcMap\ElecDemo_1.gdb"

    # CreateDiagram from a diagram template, InsidePlants, which is configured to generate diagrams from custom queries
    arcpy.CreateDiagram_schematics("ElecDemo\Inside Plants", "Substation 08", "InsidePlants")

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

    print "Script completed successfully"

except Exception as e:
    # If an error occurred, print line number and error message
    import traceback, sys
    tb = sys.exc_info()[2]
    print "An error occured on line %i" % tb.tb_lineno
    print str(e)

環境

関連トピック

ライセンス情報

ArcGIS for Desktop Basic: 次のものが必要 Schematics
ArcGIS for Desktop Standard: 次のものが必要 Schematics
ArcGIS for Desktop Advanced: 次のものが必要 Schematics
9/14/2013