アプリケーション オブジェクトとドキュメント オブジェクトにアクセスする

AutoCAD Civil 3D COM 階層のルート オブジェクトは、AeccApplication です。このオブジェクトには、メイン アプリケーション ウィンドウ、基本 AutoCAD オブジェクト、および開いているすべてのドキュメントに関する情報が含まれます。 AeccApplication は、AutoCAD オブジェクト AcadApplication から継承されています。 継承されているすべてのメソッドとプロパティの情報については、AutoCAD ObjectARX ドキュメントを参照してください。

AeccApplication オブジェクトにアクセスするには、まず公開された ThisDrawing オブジェクト(AcadDocument 型の AutoCAD オブジェクト)を使用します。その AcadDocument.Application プロパティは、AutoCAD AcadApplication オブジェクトを返します。 ここで、COM オートメーションを使用して希望の AutoCAD Civil 3DAeccApplication オブジェクトを取得します。

次の例は、AeccApplicationAeccDocument へのアクセス プロセスを示しています。

Dim oAcadApp As AcadApplication
Set oAcadApp = ThisDrawing.Application
' Specify the COM name of the object we want to access.
' Note that this always accesses the most recent version
' of AutoCAD Civil 3D installed.
Const sCivilAppName = "AeccXUiLand.AeccApplication.6.0"
Dim oCivilApp As AeccApplication
Set oCivilApp = oAcadApp.GetInterfaceObject(sCivilAppName)
 
' Now we can use the AeccApplication object.
' Get the AeccDocument representing the currently
' active drawing.
Dim oDocument As AeccDocument
Set oDocument = oCivilApp.ActiveDocument
' Set the viewport of the current drawing so that all
' drawing elements are visible.
oCivilApp.ZoomExtents

この例では、AutoCAD Civil 3D 2009 からオブジェクトを取得します。旧バージョンのライブラリにアクセスするには、目的のライブラリのバージョン番号を COM オブジェクト名に使用します。たとえば、AutoCAD Civil 3D 2007 で動作するプログラムを作成するには、次のコード

Const sCivilAppName = "AeccXUiLand.AeccApplication.4.0"

を次のコード行で置き換えます:

Const sCivilAppName = "AeccXUiLand.AeccApplication.6.0"

アプリケーション オブジェクトには、AeccApplication.Documents コレクションと AeccApplication.ActiveDocument プロパティに開いているすべてのドキュメントの参照が含まれています。 AeccDocument は、AutoCAD オブジェクトの AcadDocument から継承されています。継承されているすべてのメソッドとプロパティの情報については、AutoCAD ObjectARX ドキュメントを参照してください。