ダイアグラムの作成(Create Diagram) (Schematics)
サマリ
スケマティック ダイアグラムを作成します。
関連するスケマティック ビルダに応じて、フィーチャ レイヤ、フィーチャクラス、オブジェクト テーブル、ネットワーク解析レイヤ、または XML データからダイアグラムを作成できます。
使用法
-
出力スケマティック ダイアグラム名がすでに存在する場合、既存のダイアグラムが削除されてから再作成される必要があります。この削除が行われないようにするには、[ジオプロセシング オプション] ダイアログ ボックスの [ジオプロセシング処理の出力ファイルを上書き] チェックボックスをオフにします。
-
作成するダイアグラムに対して指定したダイアグラム テンプレートに関連するスケマティック ビルダに応じて、[入力データ] パラメータの指定が必要な場合と不要な場合があります。
- ダイアグラム テンプレートが、ジオメトリック ネットワークまたはネットワーク データセットから動作するように構成されたスタンダード ビルダに基づく場合、このパラメータの指定は必須です。フィーチャ レイヤ、フィーチャクラス、またはオブジェクト テーブルを入力テーブルとして指定できます。
- ダイアグラム テンプレートがネットワーク データセット ビルダに基づく場合は、ユニークなネットワーク解析レイヤを [入力データ] パラメータとして指定する必要があります。
- ダイアグラム テンプレートが XML ビルダに基づく場合は、ユニークな XML ファイルを [入力データ] パラメータとして指定する必要があります。
- ダイアグラム テンプレートがカスタム クエリから動作するように構成されたスタンダード ビルダに基づく場合、入力データの指定は不要です。
構文
パラメータ | 説明 | データ タイプ |
out_location |
ダイアグラムの作成先のスケマティック データセットまたはスケマティック フォルダ。 注意: このコンテナはすでに存在している必要があります。 | Schematic Dataset;Schematic Folder |
out_name |
作成するスケマティック ダイアグラムの名前。 | String |
diagram_type [diagram_type,...] |
作成するスケマティック ダイアグラムのスケマティック ダイアグラム テンプレート。 | String |
in_data [in_data,...] (オプション) |
ダイアグラムを生成する入力データ。 [入力データ] パラメータには、ダイアグラムの生成のベースとして使用するエレメントを指定します。定義済みスケマティック ビルダのほとんどで、このパラメータを指定する必要があります。
注意: ダイアグラム テンプレートが、ジオメトリック ネットワークまたはネットワーク データセットから動作するように構成されたスタンダード ビルダ、XML ビルダまたはネットワーク データセット ビルダと連動する場合、入力データを指定しないと、ダイアグラムを作成できません。 | Table View;Data Element;Layer |
builder_options (オプション) |
スケマティック ビルダの作成パラメータ。これらのパラメータはネットワーク データセット ビルダに基づくダイアグラムのみで必要で、ノードをマージするかどうかを指定します。
| String |
コードのサンプル
ジオメトリック ネットワークにまとめられた GIS フィーチャから、サンプルのスケマティック ダイアグラムを作成します。
この Python スクリプトの例の実行方法は次のとおりです。
- 新しい空のマップを使用して ArcCatalog または ArcMap を起動します。
- 以下のスクリプトをコピーして Python ウィンドウに貼り付けます。
- 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)
解析済みのネットワーク解析レイヤから、サンプルのスケマティック ダイアグラムを作成します。
この Python スクリプトの例の実行方法は次のとおりです。
- ArcMap を起動します。
- C:\ArcGIS\ArcTutor\Schematics\Schematics_Configuration\Network_Dataset に保存されている ParisTours.mxd ファイルを開きます。
- [ジオプロセシング] → [ジオプロセシング オプション] の順にクリックします。
- [バックグラウンド処理] セクションの [有効] をオフにして、[OK] をクリックします。
- 以下のスクリプトをコピーして Python ウィンドウに貼り付けます。
- 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)
XML ビルダに基づくサンプルのスケマティック ダイアグラムを作成します。
この Python スクリプトの例の実行方法は次のとおりです。
- ArcCatalog を起動します。
- サンプル スクリプトで使用するスケマティック データセットを作成して構成します。
- カタログ ツリーで、C:\ArcGIS\ArcTutor\Schematics\Schematics_Configuration\XML_Data フォルダに移動します。
- GISDatabaseForXML ジオデータベースを右クリックし、[新規作成] をポイントして、[スケマティック データセット] をクリックします。
- 新しく作成するスケマティック データセットの名前として「XMLDataset」と入力し、Enter キーを押します。
- XMLDataset スケマティック データセットを右クリックし、[編集] をクリックします。
- データセット エディタのツリーで [XMLDataset] エントリを右クリックし、[新規スケマティック ダイアグラム テンプレート] をクリックします。
- [名前] テキスト ボックスに「XMLDiagrams」と入力します。
- [スケマティック ビルダ] セクションで [XML ビルダ] を選択します。
- [スケマティック ビルダ プロパティ] をクリックし、[スケマティック フィーチャクラスの自動作成] をオンにします。
- [ビルダ プロパティ] ダイアログ ボックスを閉じます。
- [OK] をクリックします。
- [スケマティック データセット エディタ] ツールバーの [保存] をクリックし、スケマティック データセット エディタを閉じます。
- 以下のスクリプトをコピーして、ArcCatalog または ArcMap Python ウィンドウに貼り付けます。
- 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)
カスタム クエリからサンプルのスケマティック ダイアグラムを作成します。
この Python スクリプトの例の使用方法は次のとおりです。
- ArcCatalog を起動します。
- このスクリプトは ElecDemo チュートリアル ジオデータベースのコピーで使用して、元のプラント内ダイアグラムを上書きしないようにします。
- カタログ ツリーで、C:\ArcGIS\ArcTutor\Schematics\Schematics_In_ArcMap フォルダに移動します。
- ElecDemo ジオデータベースをコピーして貼り付けます。新しく作成した ElecDemo_1 ジオデータベースが、サンプルのスクリプトで処理するジオデータベースです。
- 以下のスクリプトをコピーして、ArcCatalog または ArcMap Python ウィンドウに貼り付けます。
- 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)