ダイアグラムの作成(Create Diagram) (スケマティック)

ライセンス レベル: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 Schematics general settings
    dataLocation="C:/ArcGIS/ArcTutor/Schematics/Schematics_In_ArcMap"
    gdbName="ElecDemo.gdb"
    out_schDataset="ElecDemo"
    out_diagAName="FeederDiagram"
    out_diagBName="ElectricMainNetworkDiagram"
    out_diagTempName="GeoSchematic"
    input_FC1="ElectricNetwork/Feeder"
    input_FC2="ElectricNetwork/PrimaryLine"
    input_LayerName="PrimaryLineLayer"
    input_Filter="PHASECODE=135"

    # Sets environment settings
    arcpy.env.overwriteOutput = True
    arcpy.env.workspace = dataLocation + "/" + gdbName

    # CreateDiagram from a feature class, Feeder
    arcpy.CreateDiagram_schematics(out_schDataset, out_diagAName, out_diagTempName, input_FC1)

    # CreateDiagram from a feature layer
    # 1) Creates a layer with the selection
    InputLayer = arcpy.MakeFeatureLayer_management(input_FC2, input_LayerName, input_Filter)
    # 2) Uses the layer as input of CreateDiagram
    arcpy.CreateDiagram_schematics(out_schDataset, out_diagBName, out_diagTempName, 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 general settings
    dataLocation="C:/ArcGIS/ArcTutor/Schematics/Schematics_Configuration/Network_Dataset"
    gdbName="NetworkAnalyst_Schematics.gdb"
    out_schDataset="NA_SchematicDataset"
    out_diagAName="DiagramTour_MERGED"
    out_diagBName="DiagramTour_NOTMERGED"
    out_diagTempName="NADiagrams"
    in_NALayerName="Routes/Tour1"
    option1="MERGE_NODES"
    option2="NO_MERGE_NODES"

    # Sets environnement settings
    arcpy.env.overwriteOutput = True
    arcpy.env.workspace = dataLocation + "/" + gdbName

    # CreateDiagram from a solved route network analysis layer
    # 1) Solves the route network analysis layer, Tour1
    arcpy.Solve_na(in_NALayerName)
    # 2) Creates diagrams from this solved route network analysis layer
    # a - A diagram where a single node is created to represent a GIS point crossed N times along this route (option1)
    arcpy.CreateDiagram_schematics(out_schDataset, out_diagAName, out_diagTempName, in_NALayerName, option1)
    # b - A diagram where N nodes are created to represent a GIS point crossed N times along this route (option2)
    arcpy.CreateDiagram_schematics(out_schDataset, out_diagBName, out_diagTempName, in_NALayerName, option2)

    # 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 Schematics general settings
    dataLocation="C:/ArcGIS/ArcTutor/Schematics/Schematics_Configuration/XML_Data"
    gdbName="GISDatabaseForXML.gdb"
    out_schDataset="XMLDataset"
    out_diagName="XMLDiagramSample"
    out_diagTempName="XMLDiagrams"
    input_XmlFile="SampleNetworkData.xml"

    # Sets environment settings
    arcpy.env.overwriteOutput = True
    arcpy.env.workspace = dataLocation + "/" + gdbName

    # CreateDiagram from a XML file, SampleNetworkData.xml file
    arcpy.CreateDiagram_schematics(out_schDataset, out_diagName, out_diagTempName, dataLocation + "/" + input_XmlFile)

    # 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 キーを押します。ArcGIS Schematics エクステンション

# Name: CreateDiagramCustomQuery.py
# Description: Create a schematic diagram from custom queries
# Requirement: 

# 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 Schematics general settings
    dataLocation="C:/ArcGIS/ArcTutor/Schematics/Schematics_In_ArcMap"
    gdbName="ElecDemo_1.gdb"
    out_schDataset="ElecDemo"
    out_schFolder="Inside Plants"
    out_diagName="Substation 08"
    out_diagTempName="InsidePlants"

    # Sets environment settings
    arcpy.env.overwriteOutput = True
    arcpy.env.workspace = dataLocation + "/" + gdbName

    # CreateDiagram from a diagram template configured from custom queries
    arcpy.CreateDiagram_schematics(out_schDataset + "/" + out_schFolder, out_diagName, out_diagTempName)

    # 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: 次のものが必要 スケマティクス
ArcGIS for Desktop Standard: 次のものが必要 スケマティクス
ArcGIS for Desktop Advanced: 次のものが必要 スケマティクス
5/10/2014