ダイアグラムの更新(Update Diagram) (Schematics)

ライセンス レベル:BasicStandardAdvanced

サマリ

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

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

使用法

構文

UpdateDiagram_schematics (in_diagram, {in_data}, {builder_options})
パラメータ説明データ タイプ
in_diagram

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

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

ダイアグラム更新のベースとなる入力データ。

[入力データ] パラメータの指定は、定義済みのすべてのビルダで必須ではありません。これはオプション パラメータです。

  • ダイアグラム テンプレートが、カスタム クエリから動作するように構成されたスタンダード ビルダと連動する場合、入力テーブルは設定しません。
  • ダイアグラム テンプレートが XML ビルダと連動する場合、[入力データ] パラメータで XML ファイルを参照する必要があります。
  • ダイアグラム テンプレートがネットワーク データセット ビルダと連動する場合、入力データを指定する必要があります。ユニークなネットワーク解析レイヤを参照しなければなりません。関連するネットワーク解析が実行されない場合、解析済みの解析レイヤを入力として使用できるように、解析の実行が試みられます。
  • ダイアグラム テンプレートがジオメトリック ネットワークまたはネットワーク データセットから動作するように構成されたスタンダード ビルダと連動する場合、[入力データ] パラメータを指定しないと、[ダイアグラムの更新(Update Diagram)] ツールは、ダイアグラムの生成に使用されたネットワーク フィーチャ/オブジェクトの初期セットから動作するか、またはダイアグラムがハイライトされたトレースから生成された場合、スケマティック データベースに保存されているトレース パラメータに基づく更新されたジオメトリック ネットワーク トレース結果から動作します。[入力データ] パラメータを指定しない場合は、少なくともフィーチャ レイヤ、フィーチャクラス、またはオブジェクト テーブルを参照し、[ビルダ オプション] 値に従ってそのデータに対して更新が実行されるようにする必要があります。

Table View;Data Element;Layer
builder_options
[builder_options,...]
(オプション)

スケマティック ビルダの更新オプション。更新オプションはオプションです。指定したスケマティック ダイアグラムを実装するダイアグラム テンプレートに関連付けられているビルダによって異なります。

  • カスタム クエリから生成されたダイアグラム(スタンダード ビルダ): KEEP_MANUAL_MODIFNO_KEEP_MANUAL_MODIF、またはREFRESH
  • XML データから生成されたダイアグラム(XML ビルダ): KEEP_MANUAL_MODIF または NO_KEEP_MANUAL_MODIF
  • ネットワーク データセットに対する解析結果から生成されたダイアグラム(ネットワーク データセット ビルダ): NO_MERGE_NODES;KEEP_MANUAL_MODIFNO_MERGE_NODES;NO_KEEP_MANUAL_MODIFMERGE_NODES;KEEP_MANUAL_MODIF、または MERGE_NODES;NO_KEEP_MANUAL_MODIF
  • ジオメトリック ネットワークまたはネットワーク データセットにまとめられたフィーチャから生成されたダイアグラム(スタンダード ビルダ):
    • [入力データ] パラメータが指定されていない場合 - KEEP_MANUAL_MODIFNO_KEEP_MANUAL_MODIF、または REFRESH
    • [入力データ] パラメータが指定されている場合 - REBUILD;KEEP_MANUAL_MODIFREBUILD;NO_KEEP_MANUAL_MODIFAPPEND;KEEP_MANUAL_MODIFAPPEND;NO_KEEP_MANUAL_MODIFAPPEND_QUICK;KEEP_MANUAL_MODIF、または APPEND_QUICK;NO_KEEP_MANUAL_MODIF

  • KEEP_MANUAL_MODIF入力データが設定されていない場合の、XML ビルダまたはスタンダード ビルダに基づくダイアグラムのデフォルト オプション。入力ダイアグラムのコンテンツを、このダイアグラムを最初に生成するときに使用した元の選択内容/トレース/クエリに対して同期するか(スタンダード ダイアグラム)、または最初にダイアグラムを生成するときに使用した XML 入力データの更新バージョンから同期し(XML ダイアグラム)、手動で削除/削減/再接続したスケマティック フィーチャを更新後のダイアグラムに保持します。
  • NO_KEEP_MANUAL_MODIF入力データが設定されていないときに、XML ビルダまたはスタンダード ビルダに基づくダイアグラムで利用できるオプション。入力ダイアグラムのコンテンツを、このダイアグラムを最初に生成するときに使用した元の選択内容/トレース/クエリに対して同期するか(スタンダード ダイアグラム)、または最初にダイアグラムを生成するときに使用した XML 入力データの更新バージョンから同期し(XML ダイアグラム)、手動で削除/削減/再接続したスケマティック フィーチャを更新後のダイアグラムに復元します。
  • REFRESH入力データが設定されていないときに、スタンダード ビルダに基づくダイアグラムで利用できるオプション。入力ダイアグラム内のすべてのスケマティック フィーチャの属性を、ジオメトリック ネットワークまたはネットワーク データセット フィーチャクラス内の関連するネットワーク フィーチャの現在の状態に更新するだけです。
  • REBUILD;KEEP_MANUAL_MODIF入力データの設定時にスタンダード ビルダに基づくダイアグラムで利用できるオプション(デフォルト)。指定した入力フィーチャ レイヤ、フィーチャクラス、またはオブジェクト テーブルに従って入力ダイアグラムを完全に再構築し、手動で削除/削減/再接続したスケマティック フィーチャを更新後のダイアグラムに保持します。
  • REBUILD;NO_KEEP_MANUAL_MODIF入力データの設定時にスタンダード ビルダに基づくダイアグラムで利用できるオプション。指定した入力フィーチャ レイヤ、フィーチャクラス、またはオブジェクト テーブルに従って入力ダイアグラムを完全に再構築し、手動で削除/削減/再接続したスケマティック フィーチャを更新後のダイアグラムに復元します。
  • APPEND;KEEP_MANUAL_MODIF入力データの設定時にスタンダード ビルダに基づくダイアグラムで利用できるオプション。指定した入力フィーチャ レイヤ、フィーチャクラス、またはオブジェクト テーブルに関連付けられたスケマティック フィーチャをアペンドして、入力ダイアグラムのコンテンツを完全に同期し、手動で削除/削減/再接続したスケマティック フィーチャを更新後のダイアグラムに保持します。
  • APPEND;NO_KEEP_MANUAL_MODIF入力データの設定時にスタンダード ビルダに基づくダイアグラムで利用できるオプション。指定した入力フィーチャ レイヤ、フィーチャクラス、またはオブジェクト テーブルに関連付けられたスケマティック フィーチャをアペンドして、入力ダイアグラムのコンテンツを完全に同期し、手動で削除/削減/再接続したスケマティック フィーチャを更新後のダイアグラムに復元します。
  • APPEND_QUICK;KEEP_MANUAL_MODIF入力データの設定時にスタンダード ビルダに基づくダイアグラムで利用できるオプション。指定した入力フィーチャ レイヤ、フィーチャクラス、またはオブジェクト テーブルに関連付けられたスケマティック フィーチャをアペンドして、入力ダイアグラムのコンテンツを部分的に同期し、手動で削除/削減/再接続したスケマティック フィーチャを更新後のダイアグラムに保持します。
  • APPEND_QUICK;NO_KEEP_MANUAL_MODIF入力データの設定時にスタンダード ビルダに基づくダイアグラムで利用できるオプション。指定した入力フィーチャ レイヤ、フィーチャクラス、またはオブジェクト テーブルに関連付けられたスケマティック フィーチャをアペンドして、入力ダイアグラムのコンテンツを部分的に同期し、手動で削除/削減/再接続したスケマティック フィーチャを更新後のダイアグラムに復元します。
  • NO_MERGE_NODES;KEEP_MANUAL_MODIFネットワーク データセット ビルダに基づくダイアグラムのデフォルト オプション。指定した解析済みのネットワーク解析レイヤから、このレイヤに複数回出現するノードをマージせずに入力ダイアグラムを更新し、手動で削除/削減/再接続したスケマティック フィーチャを更新後のダイアグラムに保持します。
  • NO_MERGE_NODES;NO_KEEP_MANUAL_MODIFネットワーク データセット ビルダに基づくダイアグラムで利用できるオプション。指定した解析済みのネットワーク解析レイヤから、このレイヤに複数回出現するノードをマージせずに入力ダイアグラムを更新し、手動で削除/削減/再接続したスケマティック フィーチャを更新後のダイアグラムに復元します。
  • MERGE_NODES;KEEP_MANUAL_MODIFネットワーク データセット ビルダに基づくダイアグラムで利用できるオプション。指定した解析済みのネットワーク解析レイヤから入力ダイアグラムを更新して、このレイヤに複数回出現するノードをマージし、手動で削除/削減/再接続したスケマティック フィーチャを更新後のダイアグラムに保持します。
  • MERGE_NODES;NO_KEEP_MANUAL_MODIFネットワーク データセット ビルダに基づくダイアグラムで利用できるオプション。指定した解析済みのネットワーク解析レイヤから入力ダイアグラムを更新して、このレイヤに複数回出現するノードをマージし、手動で削除/削減/再接続したスケマティック フィーチャを更新後のダイアグラムに復元します。
String

コードのサンプル

UpdateDiagram(ダイアグラムの更新)とカスタム クエリから動作するスタンダード ビルダ - 例 1(スタンドアロン Python スクリプト)

全体がカスタム クエリから構築されたサンプルのスケマティック ダイアグラムを更新します。この場合、ダイアグラム名パラメータのみが必須です。

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

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

# Name: UpdateDiagramCustomQuery.py
# Description: Update a schematic diagram entirely built 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.gdb"

    # UpdateDiagram by only refreshing the attributes on schematic features contained in the input diagram; builder_options=REFRESH
    arcpy.UpdateDiagram_schematics("ElecDemo\Inside Plants\Substation 08", "#", "REFRESH")

    # UpdateDiagram by fully synchronizing the diagram content regarding the custom queries; no udpate parameters required
    arcpy.UpdateDiagram_schematics("ElecDemo\Inside Plants\Substation 08")

    # 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 occurred on line %i" % tb.tb_lineno
    print str(e)
UpdateDiagram(ダイアグラムの更新)とジオメトリック ネットワーク データで動作するスタンダード ビルダ - 例 2(スタンドアロン Python スクリプト)

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

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

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

# Name: UpdateDiagramStd.py
# Description: Update schematic diagrams built from 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"

    # Creates some new diagrams that will be used to exemplify the UpdateDiagram command:
    arcpy.CreateDiagram_schematics("ElecDemo", "FeederDiagram", "GeoSchematic", "ElectricNetwork\Feeder")
    arcpy.CreateDiagram_schematics("ElecDemo", "FeederDiagramBIS", "GeoSchematic", "ElectricNetwork\Feeder")
    arcpy.CreateDiagram_schematics("ElecDemo", "WholeElectricNetworkDiagram", "GeoSchematic", "ElectricNetwork\PrimaryLine;ElectricNetwork\SecondaryLine")
    InputLayer = arcpy.MakeFeatureLayer_management("ElectricNetwork\PrimaryLine","PrimaryLineLayer", "PHASECODE =135")
    arcpy.CreateDiagram_schematics("ElecDemo", "PrimaryLinesDiagram", "GeoSchematic", InputLayer)


    # UpdateDiagram by fully synchronizing the diagram content regarding the original network features that were used to initially generate it; no udpate parameters required
    arcpy.UpdateDiagram_schematics("ElecDemo\Feeders\Feeder 0801-Rice Creek")

    # UpdateDiagram by only refreshing the attributes on schematic features contained in the input diagram; builder_options=REFRESH
    arcpy.UpdateDiagram_schematics("ElecDemo\Feeders\Feeder 0802-Goldmine", "#", "REFRESH")

    # UpdateDiagram by rebuilding the input diagram from a feature class; builder_options=REBUILD;KEEP_MANUAL_MODIF or REBUILD;NO_KEEP_MANUAL_MODIF
    arcpy.UpdateDiagram_schematics("ElecDemo\WholeElectricNetworkDiagram", "ElectricNetwork\PrimaryLine", "REBUILD;KEEP_MANUAL_MODIF")

    # UpdateDiagram by appending new features to the input diagram with a partial synchronization of the diagram content; builder_options=APPEND_QUICK;KEEP_MANUAL_MODIF or APPEND_QUICK;NO_KEEP_MANUAL_MODIF
    arcpy.UpdateDiagram_schematics("ElecDemo\FeederDiagram", "ElectricNetwork\Substation", "APPEND_QUICK;KEEP_MANUAL_MODIF")

    # UpdateDiagram by appending new features to the input diagram with a full synchronization of the diagram content; builder_options=APPEND;KEEP_MANUAL_MODIF or APPEND;NO_KEEP_MANUAL_MODIF
    arcpy.UpdateDiagram_schematics("ElecDemo\FeederDiagramBIS", "ElectricNetwork\ServiceLocation", "APPEND;KEEP_MANUAL_MODIF")

    # UpdateDiagram by rebuilding the input diagram from an input layer; builder_options=REBUILD;KEEP_MANUAL_MODIF or REBUILD;NO_KEEP_MANUAL_MODIF
    arcpy.UpdateDiagram_schematics("ElecDemo\PrimaryLinesDiagram", InputLayer, "REBUILD;KEEP_MANUAL_MODIF")
	
    # 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 occurred on line %i" % tb.tb_lineno
    print str(e)
UpdateDiagram(ダイアグラムの更新)と 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: UpdateDiagramXML.py
# Description: Update schematic diagrams 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, SampleNetworkFeeder1.xml
    arcpy.CreateDiagram_schematics("XMLDataset", "XMLDiagramFeeder1", "XMLDiagrams", "C:\ArcGIS\ArcTutor\Schematics\Schematics_Configuration\XML_Data\SampleNetworkFeeder1.xml")

    # Updates the XMLDiagramFeeder1 diagram from another XML file, SampleNetworkUpdatedFeeder1.xml
    arcpy.UpdateDiagram_schematics("XMLDataset\XMLDiagramFeeder1", "C:\ArcGIS\ArcTutor\Schematics\Schematics_Configuration\XML_Data\SampleNetworkUpdatedFeeder1.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 occurred on line %i" % tb.tb_lineno
    print str(e)
UpdateDiagram(ダイアグラムの更新)とネットワーク データセット ビルダ - 例 4(スタンドアロン Python スクリプト)

ネットワーク データセット ビルダに基づくスケマティック ダイアグラムを更新します。

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

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

# Name: UpdateDiagramNDS.py
# Description: Update sample schematic diagrams based on 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 environment settings
    arcpy.env.overwriteOutput = True
    arcpy.env.workspace = "C:\ArcGIS\ArcTutor\Schematics\Schematics_Configuration\Network_Dataset\NetworkAnalyst_Schematics.gdb"

    # UpdateDiagram from a solved route network analysis layer
    # 1) Solves the route network analysis layer, 
    arcpy.Solve_na("Routes\Tour2")
    # 2) Creates diagrams from this solved route network analysis layer
    # a - DiagramTour_A diagram, created with merged nodes to represent network junctions which are crossed several times along the resultant route (MERGE_NODES option)
    arcpy.CreateDiagram_schematics("NA_SchematicDataset", "DiagramTour2_A", "NADiagrams", "Routes\Tour2", "MERGE_NODES")
    # b - DiagramTour_B diagram, without merged nodes (NO_MERGE_NODES option)
    arcpy.CreateDiagram_schematics("NA_SchematicDataset", "DiagramTour2_B", "NADiagrams", "Routes\Tour2", "NO_MERGE_NODES")
    # 3) Updates those diagrams from the same solved route network analysis layer by changing the merge nodes option
    arcpy.UpdateDiagram_schematics("NA_SchematicDataset\DiagramTour2_A", "Routes\Tour2", "NO_MERGE_NODES;KEEP_MANUAL_MODIF")
    arcpy.UpdateDiagram_schematics("NA_SchematicDataset\DiagramTour2_B", "Routes\Tour2", "MERGE_NODES;KEEP_MANUAL_MODIF")

    # 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 occurred 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