ダイアグラムをフィーチャに変換(Convert Diagram To Features) (Schematics)

サマリ

スケマティック ダイアグラムをフィーチャクラスまたはシェープファイルに変換します。

複数のダイアグラムを同じフィーチャクラス/シェープファイル(スケマティック フィーチャクラスごとに 1 つのフィーチャクラス/シェープファイル)にエクスポートするか、またはダイアグラムごとに異なるフィーチャクラス/シェープファイル(スケマティック フィーチャクラスごと、およびダイアグラムごとに 1 つのフィーチャクラス/シェープファイル)にエクスポートすることができます。

注意注意:

1 つのスケマティック データセットに含まれているすべてのダイアグラムをフィーチャにエクスポートする場合のこのツールの使用例については、サンプル スクリプトのセクションをご参照ください。

使用法

構文

ConvertDiagram_schematics (in_diagram, out_location, {reuse_fc}, {export_related_attributes}, {container_geometry}, {config_keyword})
パラメータ説明データ タイプ
in_diagram

変換するスケマティック ダイアグラム。

Schematic diagram
out_location

スケマティック ダイアグラムの変換先のワークスペース、フィーチャ データセット、またはフォルダ。このコンテナはすでに存在している必要があります。

Workspace;Feature dataset;Folder
reuse_fc
(オプション)

入力スケマティック ダイアグラムを、同じダイアグラム テンプレートに基づく他のダイアグラムと同じフィーチャクラス/シェープファイルにエクスポートするかどうかを指定します。

  • REUSE_FC同じダイアグラム テンプレートで実装された複数のダイグラムを同じフィーチャクラス/シェープファイルにエクスポートする場合は、このオプションを指定する必要があります。指定したダイアグラムが、フィーチャ データセット/フォルダ内のフィーチャクラス/シェープファイルに格納されてエクスポートされます。このダイアグラム名はダイアグラム テンプレート名に、各フィーチャクラス/シェープファイル名はダイアグラム テンプレートに関連付けられたスケマティック フィーチャクラス名にそれぞれ対応します。これはデフォルトです。
  • NO_REUSE_FCダイアグラムが、フィーチャ データセット/フォルダ内の新しいフィーチャクラス/シェープファイルに格納されてエクスポートされます。このダイアグラム名はエクスポートしたダイアグラムのダイアグラム テンプレート名とダイアグラム名を組み合わせた名前に、各フィーチャクラス/シェープファイルはスケマティック フィーチャクラス名とダイアグラム名を組み合わせた名前になります。
String
export_related_attributes
(オプション)

エクスポート ダイアグラムに含まれているスケマティック フィーチャクラスに関連付けられたフィーチャクラス/オブジェクト テーブルに格納されているすべての属性を一緒にエクスポートするかどうかを指定します。

  • NO_RELATED_ATTRIBUTES入力ダイアグラムに含まれている各スケマティック フィーチャと、そのスケマティック フィーチャクラスに含まれている属性のみがエクスポートされます。これはデフォルトです。
  • EXPORT_RELATED_ATTRIBUTES入力ダイアグラムに含まれている各スケマティック フィーチャと、そのスケマティック フィーチャクラスに含まれている属性、および関連付けられたフィーチャクラス/オブジェクト テーブルに格納されている、スケマティック フィーチャ関連の実際のフィーチャのすべての関連属性がエクスポートされます。
注意注意:

スケマティック フィーチャクラスの関連フィーチャクラス/テーブルが何も指定されていない場合、フィーチャの属性はエクスポートできません。

注意注意:

[既存の構成を再使用] オプションを有効にしても、既存の構成に関連付けられたフィーチャ フィールドが存在しない場合は何も起こりません。

String
container_geometry
[container_geometry,...]
(オプション)

入力ダイアグラムに含まれているエクスポート対象のスケマティック コンテナに対して作成するフィーチャのジオメトリ タイプを指定します。

  • POLYGON入力ダイアグラム内の各コンテナがポリゴン フィーチャとしてエクスポートされます。これはデフォルトです。
  • POLYLINE入力ダイアグラム内の各コンテナがポリライン フィーチャとしてエクスポートされます。
  • POINT入力ダイアグラム内の各コンテナがポイント フィーチャとしてエクスポートされます。
注意注意:

[既存の構成を再使用] オプションを使用する場合、既存の構成でコンテナ スケマティック フィーチャに対して POLYGON(あるいは POLYLINE または POINT)フィーチャクラスが作成されているときに、その後の変換で、POLYLINE または POINT(あるいは POLYGON)にフィーチャクラス タイプを変更することはできません。

String
config_keyword
(オプション)

リレーショナル データベース管理システム(RDBMS)内のテーブルの格納パラメータを決定する構成キーワード。ArcSDE 専用。

String

コードのサンプル

ConvertDiagram ジオプロセシング ツールを使用したサンプル スクリプト

下記のスクリプトでは、スケマティック コンテナ(スケマティック データセットまたはスケマティック フォルダ)に含まれているすべてのダイアグラムに対してループ処理を行い、各ダイアグラムを出力場所にあるフィーチャに変換します。

このサンプル スクリプトの使用方法は次のとおりです。

  1. 下記のスクリプトを任意のテキスト エディタにコピーし、拡張子「.py」を付けてテキスト ファイルを保存します。
  2. ArcCatalog を起動して ArcToolbox ウィンドウを開きます。
  3. 新しいスクリプトを次のように追加します。
    • スクリプト名を入力します(ConvertDiagramsTool など)。
    • [スクリプト ファイル] パラメータに、作成した *.py ファイルを指定します。
    • その後、次の 5 つのパラメータを指定します。
      1. [表示名]: 入力スケマティック コンテナ、[データ タイプ]: スケマティック データセットまたはスケマティック フォルダ。[タイプ] プロパティ = 必須、[方向] プロパティ = 入力
      2. [表示名]: 出力場所、[データ タイプ]: ワークスペースまたはフィーチャ データセット。[タイプ] プロパティ = 必須、[方向] プロパティ = 入力
      3. [表示名]: 再帰、[データ タイプ]: ブール型。[タイプ] プロパティ = 必須、[方向] プロパティ = 入力、[デフォルト値] = True
      4. [表示名]: ダイアグラム クラス フィルタ、[データ タイプ]: 文字列。[タイプ] プロパティ = オプション、[方向] プロパティ = 入力
      5. [表示名]: 派生した出力場所、[データ タイプ]: ワークスペースまたはフィーチャ データセット。[タイプ] プロパティ = 派生、[方向] プロパティ = 出力、[取得元] = Output_Location

必須入力パラメータ: 入力スケマティック コンテナ(データセットまたはフォルダ)+ 出力場所(GDB、フィーチャ データセット、またはシェープファイルのフォルダ)

オプションの引数: 再帰フラグ + ダイアグラム クラス フィルタ

出力派生場所: ワークスペースまたはフィーチャ データセット

# Name: ConvertDiagrams.py
# Description: Convert schematic diagrams
# Author: ESRI

# import arcpy, sys, math
msgInputsErr = "Invalid arguments."
msgParseErr = "Cannot parse input arguments."
msgConvertErr = "Error during conversion."

msgNoLicenseAvailable = "Schematics license required"

# Search schematic diagrams recursively in the folders
# list 'pathList'  stores the result
	def RecursiveSearch(inCont, bRecursive):
		try:
			childs = inCont.Children
			dataset = childs.Next()
			while dataset:
				if dataset.DataType == "SchematicFolder" and bRecursive:
					RecursiveSearch(dataset, bRecursive)
				elif dataset.DataType == "SchematicDiagram":
					if diagramClassFilter == "" or diagramClassFilter == dataset.DiagramClassname:
						pathList.append(dataset.CatalogPath)
				dataset = childs.next()
		except:
			raise
	
try:
		if arcpy.CheckExtension("Schematics1") == "Available":
			arcpy.CheckOutExtension("Schematics")
		else:
			raise Exception(msgNoLicenseAvailable)
except Exception as exc:
		print exc
		raise

arcpy.OverWriteOutput = True

# Decode parameters
try:
	inputContainer = arcpy.GetParameterAsText(0) 
	outputLocation = arcpy.GetParameterAsText(1) 
	recursive = arcpy.GetParameterAsText(2)
	if recursive == "false":
		recursive = None
	diagramClassFilter = arcpy.GetParameterAsText(3)

	if inputContainer == "":
		raise Exception()

except:
	print msgParseErr
	arcpy.AddError(msgParseErr)
	raise

# Main 
try:
	pathList = []   # List for diagram names to convert
	arcpy.SetProgressorLabel("Searching diagrams to convert...")
	RecursiveSearch(arcpy.Describe(inputContainer), recursive)

	arcpy.SetProgressor("step", "Converting...", 0, len(pathList), 1)

	for path in pathList:
		# Execute convert	
		mes = "Converting Schematic Diagram : " + path
		# Set the progressor label
		arcpy.SetProgressorLabel(mes)
		arcpy.AddMessage(mes)
		arcpy.ConvertDiagram_schematics(path, outputLocation, "REUSE_FC", "NO_RELATED_ATTRIBUTES", "#")
		arcpy.SetProgressorPosition()

except:
	arcpy.AddError(msgConvertErr)
	raise

環境

関連項目

ライセンス情報

ArcView: 必須 Schematics
ArcEditor: 必須 Schematics
ArcInfo: 必須 Schematics

7/10/2012