サマリ
さらに多くの GIS データを作成するために、高度に正規化された定義済みのスキーマを使用して、CAD ファイルのコレクションをフィーチャクラスおよびデータテーブルに変換します。
出力は、中間ステージング ジオデータベースに格納されます。その後はそのジオデータベースを使用したり、さらに後処理を実行したりすることができます。
使用法
このツールは、デフォルトではファイル ジオデータベース (*.GDB) を出力しますが、ユーザーが適切な拡張子を定義すれば、パーソナル ジオデータベース (*.MDB) も出力します。
一定のフィーチャクラスのセットが、指定した出力フィーチャ データセットに生成されます。これらのフィーチャクラスには、ライン、面積、ポイント、およびドキュメント範囲のジオメトリが格納されます。また、必要に応じて、一意のブロック名またはセル名ごとにフィーチャクラスを生成できます。
このツールは、ジオデータベースを新規に作成し、既存のジオデータベースへの追加は行いません。
データまたはリレーションシップの結合を実行する必要がある場合は、後処理が必要になります。出力は CAD 入力から生成されたデータであり、リレーションシップは存在しません。このようにフラットな構造をしているため、自由にデータを元どおりに構成することができます。
入力ファイル パラメーターを使用すると、1 回の操作で異なる種類の CAD データ (DGN、DWG、DXF) を追加できます。
CAD プロパティ テーブルは出力ワークスペースに作成されます。これらの正規化されたテーブル同士は、EntID ([CAD からインポート (Import From CAD)] ツールにより作成されたフィーチャクラスにも存在する) などのキー フィールドを使用してリンクできます。
出力フィーチャ データセットまたはワークスペース内のテーブルの名前が、ImportCAD により作成されたものと同じ場合、そのテーブルは削除され、再作成されます。
[CAD からインポート (Import From CAD)] ツールでは、アノテーション フィーチャクラスの作成はサポートされていません。
CAD プロパティ テーブルは、モデルまたはスクリプトで [データの選択] ツールを使用して、出力ワークスペースからアクセスできます。同様に、CAD データから生成されたフィーチャクラスも、出力フィーチャ データセットで [データの選択] ツールを使用してアクセスできます。
CAD テキストと属性エンティティがポイント フィーチャに変換されます。
[CAD からインポート (Import From CAD)] は ArcSDE フィーチャクラスへの出力は行うことができません。このツールは新しいパーソナル ジオデータベースを作成します。
CadDoc フィーチャクラスの DocPath フィールドまたは TxtProp テーブルの TextMemo フィールドをステージング ジオデータベースから ArcSDE ジオデータベースへコピーする場合は、認識しておくべき制限がいくつかあります。CadDoc フィーチャクラスの DocPath フィールドおよび TxtProp テーブルの TextMemo フィールドはいずれも、フィールド長が長すぎて ArcSDE ジオデータベースに格納できないメモ フィールドを含んでいます。ArcSDE ジオデータベースの制限に関する情報については、システム管理者にお問い合わせください。これらのフィールド内の情報の一部は、他のフィールドに重複して出力されます。それらの他のフィールドはフィールド長が短いため、ArcSDE ジオデータベースに移行することができます。DocName フィールドには DocPath フィールドの一部が含まれ、TextValue フィールドには TextMemo フィールドの一部が含まれます。
一般に、この機能は、スクリプトまたは ModelBuilder モデルで一連の他のジオプロセシング機能を使って CAD データを既存のジオデータベースへ変換するプロセスで使用されます。そのため、この機能から生成される結果のデータは通常一時的なものです。
正規化されたテーブルは、指定した出力ワークスペースに生成されます。これらのテーブルには、レイヤー プロパティ、テキスト プロパティ、エンティティ プロパティ、ブロックまたはセルの属性、拡張エンティティ データまたは MSLink 値が表形式の属性として含まれます。
入力 CAD ファイルの投影情報ファイルが存在する場合は、そのファイルの投影情報が自動的に空間参照パラメーターに設定されます。複数の CAD ファイルが入力として使用される場合、空間参照は、入力リスト内で投影情報ファイルを持つ最初の CAD ファイルから取得されます。
ステージング ジオデータベースに対してデフォルトの空間参照を生成するときは、必ず CAD ファイルのデフォルト範囲モデルを基盤として使用する必要があります。これは、デフォルトの CAD フィールド範囲の範囲外にエンティティがある場合、それらのエンティティは拒否される可能性があることを意味します。必ず、最大の範囲が指定されたモデルを DGN 描画のデフォルト モデルとして使用するようにしてください。単一の設計ファイルでの複数モデルの使用は MicroStation バージョン 8 でのみサポートされています。
DGN ファイルに複数のモデルがある場合は、1 番目のモデルが最大のドメインを持っていることを確認してください。[CAD からインポート (Import From CAD)] は、1 番目のモデルから DGN ファイル全体のドメインを計算します。そうでない場合は、1 番目のモデルのドメインを、すべてが収まるように、十分な大きさに拡大してください。
空間参照パラメーターとして PRJ ファイルを使用している場合は、必ず X、Y、Z ドメインを設定してください。ドメインを設定しない場合、一部のフィーチャが、リアルタイムで計算されたドメインの範囲外にある場合にインポートされなくなることがあります。
CAD アノテーションをジオデータベース アノテーションに変換する必要がある場合、[CAD アノテーションからインポート (Import CAD Annotation)] ツールなどの専用のツールが用意されています。
構文
ImportCAD_conversion (Input_Files, out_personal_gdb, {spatial_reference}, {Explode_Complex})
パラメータ | 説明 | データ タイプ |
Input_Files [Input_Files,...] | ジオデータベース フィーチャに変換する CAD ファイルのコレクション。 | CAD Drawing Dataset |
out_personal_gdb | すべての入力 CAD フィーチャが、付属するテーブルとともに配置される新しい出力ジオデータベース。テーブルまたはフィーチャを結合する必要がある場合は、後処理が必要です。 | Workspace |
spatial_reference (オプション) | 出力ステージング ジオデータベースに適用される空間参照。 | Spatial Reference |
Explode_Complex (オプション) | DWG/DXF または DGN のセルのいずれか、またはその両方にブロックが挿入された場合、コンプレックス オブジェクトの構成要素ごとにフィーチャが作成されるか、その定義済みの挿入ポイントに単一ポイント フィーチャだけが作成されるかを指定します。
| Boolean |
コードのサンプル
# To create Points from the CAD block inserts.
# Create the Geoprocessor object
import arcgisscripting
gp = arcgisscripting.create()
# Script arguments...
blocks = sys.argv[1]
if blocks == '#':
blocks = "C:/Test_data/CAD/MetroGAS/res00051_pc22j_ImportCAD1.mdb/blocks"
# provide a default value if unspecified
res00051_pc22j_dwg = sys.argv[2]
if res00051_pc22j_dwg == '#':
res00051_pc22j_dwg = "C:/Test_data/CAD/MetroGAS/res00051_pc22j.dwg"
# provide a default value if unspecified
Select_Set_Name = sys.argv[3]
if Select_Set_Name == '#':
Select_Set_Name = "[SetName] = 'COD_90_50M'"
# Local variables...
Pivoted_AttrTags_by_OwnerID = "C:/Test_data/CAD/MetroGAS/res00051_pc22j_ImportCAD1.mdb/Attrib_PivotTable"
Attrib_Table = "C:/Test_data/CAD/MetroGAS/res00051_pc22j_ImportCAD1.mdb/Attrib"
Entities_Table = "C:/Test_data/CAD/MetroGAS/res00051_pc22j_ImportCAD1.mdb/Entity"
joined = "joined"
Output_Staging_Geodatabase = "C:/Test_data/CAD/MetroGAS/res00051_pc22j_ImportCAD1.mdb"
points_new2 = "points_new"
Point = "C:/Test_data/CAD/MetroGAS/res00051_pc22j_ImportCAD1.mdb/CADStaging/Point"
points_new = "points_new"
points_new3 = "points_new"
try:
# Process: Import from
CAD...gp.ImportCAD_conversion("'C:/Test_data/CAD/MetroGAS/res00051_pc22j.dwg'", Output_Staging_Geodatabase, "", "Do_Not_Explode_Complex")
# Process: Select Data...
gp.SelectData_management(Output_Staging_Geodatabase, "CADStaging/Point", )
# Process: Make Layer...
gp.MakeFeatureLayer_management(Point, points_new, "", "", "EntID EntID VISIBLE")
# Process: Select Data (Entities Table)...
gp.SelectData_management(Output_Staging_Geodatabase, "Entity", )
# Process: Add Join...
gp.AddJoin_management(points_new, "EntID", Entities_Table, "EntID", "OUTER", )
# Process: Select Data (Attrib Table)...
gp.SelectData_management(Output_Staging_Geodatabase, "Attrib", )
# Process: Make Table View...
gp.MakeTableView_management(Attrib_Table, joined, Select_Set_Name, "", "EntID EntID VISIBLE;OwnerID OwnerID VISIBLE;AttrFlag AttrFlag VISIBLE;MSSet MSSet VISIBLE;AtrTag AtrTag VISIBLE;AtrHndl AtrHndl VISIBLE;AttrType AttrType VISIBLE;AttrStr AttrStr VISIBLE;AttrLong AttrLong VISIBLE;AttrDbl AttrDbl VISIBLE")
# Process: Pivot Table...
gp.PivotTable_management(joined, "'Attrib.OwnerID';'OwnerID'", "AttrTag", "AttrStr", Pivoted_AttrTags_by_OwnerID)
# Process: Add Join2...
gp.AddJoin_management(points_new2, "Point.EntID", Pivoted_AttrTags_by_OwnerID, "OwnerID", "INNER", )
# Process: Copy Features...
gp.CopyFeatures_management(points_new3, blocks, "", "0", "0", "0")
except:
# If an error occurred while running a tool print the messages
print gp.GetMessages()
環境
ライセンス情報
- ArcGIS for Desktop Basic: ○
- ArcGIS for Desktop Standard: ○
- ArcGIS for Desktop Advanced: ○