ダイアグラム(複数)の更新(Update Diagrams) (スケマティック)
サマリ
スケマティック データセットまたはスケマティック フォルダに保存されている複数のスケマティック ダイアグラムを更新します。
すべてのダイアグラムまたはダイアグラムのサブセット(特定のダイアグラム テンプレートに関連するダイアグラムや、特定の日数の間更新されていないダイアグラムなど)を更新できます。
ジオプロセシング ツールを使用して更新できるのは、スタンダード ビルダ(すなわち、ジオメトリック ネットワークまたはネットワーク データセットを表現するフィーチャから構築されたダイアグラム および カスタム クエリから構築されたスケマティック ダイアグラム)に基づくダイアグラムのみです。特定の入力データを必要とする、ネットワーク データセット ビルダおよび XML ビルダに基づくダイアグラムは、このツールでは更新できません。
実行中に XML ビルダまたはネットワーク データセット ビルダに基づくダイアグラムが検出された場合は、エラーが表示され、処理が停止します。
使用法
-
このツールは主にダイアグラムのバッチ更新に使用されます。しかし、ダイアグラムの生成後にユーザ データが削除され、再読み込みされたときに、GUID に基づいてスケマティック フィーチャをその関連するフィーチャ/オブジェクトと再同期する目的で使用することもできます。
-
[ダイアグラム テンプレート] パラメータを指定した場合は、そのテンプレートに基づくダイアグラムのみが更新されます。
-
[更新がなかった日数] パラメータを指定した場合は、最後の更新日が条件に一致するダイアグラムのみが更新されます。
-
デフォルトでは、[入力スケマティック コンテナ] に指定された値がスケマティック フォルダである場合、そのスケマティック フォルダに含まれているすべてのダイアグラムと、そのサブフォルダに含まれているすべてのダイアグラムに対して更新処理が再帰的に実行されます。サブフォルダに含まれているダイアグラムを更新対象から除外する場合は、再帰パラメータを 0 に設定します。
構文
パラメータ | 説明 | データ タイプ |
in_container |
ダイアグラムが保存されているスケマティック データセットまたはスケマティック フォルダ。このコンテナはすでに存在している必要があります。 | Schematic Dataset; Schematic Folder |
builder_options (オプション) |
スケマティック ビルダの更新オプション。これはオプション パラメータです。
| String |
recursive (オプション) |
| Boolean |
diagram_type [diagram_type,...] (オプション) |
更新するスケマティック ダイアグラムのダイアグラム テンプレート。 | String |
last_update_criteria (オプション) |
ダイアグラムの更新間隔(日数)。デフォルトはゼロ(0)です。この場合、すべてのダイアグラムが毎日更新されます。 | Long |
コードのサンプル
特定のスケマティック フォルダに保存されているスケマティック ダイアグラム、特定のダイアグラム テンプレートによって実装されたスケマティック ダイアグラム、または特定の日数の間更新されていないスケマティック ダイアグラムを更新します。
この Python スクリプトの例の実行方法は次のとおりです。
- 新しい空のマップを使用して ArcCatalog または ArcMap を起動します。
- 以下のスクリプトをコピーして Python ウィンドウに貼り付けます。
- Enter キーを押します。
# Name: UpdateDiagrams.py
# Description: Update schematic diagrams
# 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"
in_schDataset="ElecDemo"
in_schFolder1="Feeders"
in_schFolder2="Inside Plants"
in_diagTempName="GeoSchematic"
recOption1="RECURSIVE"
recOption2="NO_RECURSIVE"
nbDays="7"
# Sets environnement settings
arcpy.env.overwriteOutput = True
arcpy.env.workspace = dataLocation + "/" + gdbName
# Updates diagrams stored on a specified schematic folder;
arcpy.UpdateDiagrams_schematics(in_schDataset + "/" + in_schFolder1)
# Updates diagrams based on a specified diagram template.
arcpy.UpdateDiagrams_schematics(in_schDataset, "#", recOption1, in_diagTempName)
# Updates diagrams stored on a specified schematic folder that have not been updated for N days.
arcpy.UpdateDiagrams_schematics(in_schDataset + "/" + in_schFolder2, "#", recOption1, "#", nbDays)
# 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)