概要
スケマティック ダイアグラムを作成します。
関連するスケマティック ビルダーに応じて、フィーチャ レイヤー、フィーチャクラス、オブジェクト テーブル、ネットワーク解析レイヤー、または XML データからダイアグラムを作成できます。
使用法
出力スケマティック ダイアグラム名がすでに存在する場合、既存のダイアグラムが削除されてから再作成される必要があります。この削除が行われないようにするには、[ジオプロセシング オプション] ダイアログ ボックスの [ジオプロセシング処理の出力ファイルを上書き] チェックボックスをオフにします。
作成するダイアグラムに対して指定したダイアグラム テンプレートに関連するスケマティック ビルダーに応じて、[入力データ] パラメーターの指定が必要な場合と不要な場合があります。
- ダイアグラム テンプレートが、ジオメトリック ネットワークまたはネットワーク データセットから動作するように構成されたスタンダード ビルダーに基づく場合、このパラメーターの指定は必須です。フィーチャ レイヤー、フィーチャクラス、またはオブジェクト テーブルを入力テーブルとして指定できます。
- ダイアグラム テンプレートがネットワーク データセット ビルダーに基づく場合は、ユニークなネットワーク解析レイヤーを [入力データ] パラメーターとして指定する必要があります。
- ダイアグラム テンプレートが XML ビルダーに基づく場合は、ユニークな XML ファイルを [入力データ] パラメーターとして指定する必要があります。
- ダイアグラム テンプレートがカスタム クエリから動作するように構成されたスタンダード ビルダーに基づく場合、入力データの指定は不要です。
構文
CreateDiagram(out_location, out_name, diagram_type, {in_data}, {builder_options})
パラメーター | 説明 | データ タイプ |
out_location | ダイアグラムの作成先のスケマティック データセットまたはスケマティック フォルダー。 | Schematic Dataset;Schematic Folder |
out_name | 作成するスケマティック ダイアグラムの名前。 | String |
diagram_type | 作成するスケマティック ダイアグラムのスケマティック ダイアグラム テンプレート。 | String |
in_data [in_data,...] (オプション) | ダイアグラムを生成する入力データ。 [入力データ] パラメーターには、ダイアグラムの生成のベースとして使用するエレメントを指定します。定義済みスケマティック ビルダーのほとんどで、このパラメーターを指定する必要があります。
| Table View;Data Element;Layer |
builder_options (オプション) | スケマティック ビルダーの作成パラメーター。これらのパラメーターはネットワーク データセット ビルダーに基づくダイアグラムのみで必要で、ノードをマージするかどうかを指定します。
| String |
コードのサンプル
CreateDiagram (ダイアグラムの作成) とジオメトリック ネットワーク データで動作するスタンダード ビルダー - 例 1 (スタンドアロン Python スクリプト)
ジオメトリック ネットワークにまとめられた 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 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 スクリプトの例の実行方法は次のとおりです。
- 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 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 スクリプトの例の実行方法は次のとおりです。
- 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 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 スクリプトの例の使用方法は次のとおりです。
- ArcCatalog を起動します。
- このスクリプトは ElecDemo チュートリアル ジオデータベースのコピーで使用して、元のプラント内ダイアグラムを上書きしないようにします。
- カタログ ツリーで、C:\ArcGIS\ArcTutor\Schematics\Schematics_In_ArcMap フォルダーに移動します。
- ElecDemo ジオデータベースをコピーして貼り付けます。新しく作成した ElecDemo_1 ジオデータベースが、サンプルのスクリプトで処理するジオデータベースです。
- 以下のスクリプトをコピーして、ArcCatalog または ArcMap Python ウィンドウに貼り付けます。
- 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)
環境
ライセンス情報
- Basic: 次のものが必要 スケマティクス
- Standard: 次のものが必要 スケマティクス
- Advanced: 次のものが必要 スケマティクス