このセクションでは、Visual Studio と Autodesk Civil 3D のマネージド クラスを使用する .NET ソリューションのセットアップについて基本的な手順を説明します。手順は、Microsoft Visual C# .NET を使用しても Visual Basic .NET を使用してもほぼ同じです。次の例では、Visual Studio 2010 で C# を使用します。外観は多少異なりますが、Visual Studio の Express (フリー)バージョンを使用することもできます。
Microsoft Visual Studio で Autodesk Civil 3D のマネージド クラスを使用する新規プロジェクトを作成するには
Visual Studio の[新しいプロジェクト]ダイアログ
これらは基本の AutoCAD および Autodesk Civil 3D マネージド ライブラリです。ご使用の .NET アセンブリは、追加のライブラリで定義されたクラスを使用することができます。
デバッグを可能にして、プロジェクトで必要なディスク領域を小さくするには、これらのライブラリを Visual Studio のソリューション エクスプローラで選択し、[ローカル コピー]プロパティを[False]に設定します。
このオプションは、Visual Studio の Express(フリー)バージョンでは利用できません。
using System; using Autodesk.AutoCAD.Runtime; namespace GettingStarted { public class Class1 : IExtensionApplication { #region IExtensionApplication Members public void Initialize() { throw new System.Exception("The method or operation is not implemented."); } public void Terminate() { throw new System.Exception("The method or operation is not implemented."); } #endregion } }
これらのメソッドの既定のコンテンツは削除したり、コメント アウトできます 。Initialize() はAutoCAD Civil 3D の Autodesk Civil 3D コマンドによってアセンブリが最初にロードされたときに呼び起こされます。また、リソースのセットアップ、構成ファイルの読み取り、その他の初期化タスクのためにも利用できます。Terminate() は Autodesk Civil 3D がシャット ダウンしたときに呼び出され(.NET アセンブリをアンロードするためのNETUNLOAD コマンドはありません)、リソースをクリーンアップして解放するために使用できます。
[CommandMethod("HelloWorld")] public void HelloWorld() { }
Application.DocumentManager.MdiActiveDocument.Editor.WriteMessage("\nHello World!\n");
アセンブリを作成して実行できるようになります。Autodesk Civil 3D を起動して、コマンド ラインに NETLOAD と入力します。[NET アセンブリを選択]ダイアログで、アセンブリ DLL(プロジェクトの設定を手順 1 から使用している場合は GettingStarted.dll)を参照します。コマンド ラインに HELLOWORLD と入力すると、コマンドの出力が表示されます。
public void HelloWorld() { CivilDocument doc = Autodesk.Civil.ApplicationServices.CivilApplication.ActiveDocument; ObjectIdCollection alignments = doc.GetAlignmentIds(); ObjectIdCollection sites = doc.GetSiteIds(); String docInfo = String.Format("\nHello World!\nThis document has {0} alignments and {1} sites.\n", alignments.Count, sites.Count); Application.DocumentManager.MdiActiveDocument.Editor.WriteMessage(docInfo); }
Autodesk Civil 3D で、線形とサイトを含むドキュメントを開くか作成します。HELLOWORLD コマンドを実行すると、次に似た出力結果を見ることになります。
他のサンプルについては、Autodesk Civil 3D¥samples¥dotNet フォルダを調べてみてください。