.NET API は、AutoCAD Civil 3D のすべての機能性を開示していない上に、COM API よりも開示している部分が小さいです。.NET: で現在まだ開示されていない領域は次の通りです:
さらに、機能が実装されているものの、まだ完成していない領域がいくつか存在します。
.NET プロジェクトでこの機能が必要な場合は、該当する COM オブジェクトを使用できます。
AutoCAD Civil 3D COM API を .NET から使用するには
複数の Autodesk.AutoCAD.Interop ネームスペースでタイプが見つからないという警告(警告タイプ 1684)が表示される場合があります。この警告を無効にするには、プロジェクトのプロパティにある[作成]タブの[警告を抑止する]に 1684 と入力します。
ここに、COM 干渉を使用するドキュメントからポイント グループおよびサーフェスの数を取得する C# の例を挙げます。
string m_sAcadProdID = "AutoCAD.Application"; string m_sAeccAppProgId = "AeccXUiLand.AeccApplication.10.3"; ... private void useCom() { //Construct AeccApplication object, Document and Database objects m_oAcadApp = (IAcadApplication)System.Runtime.InteropServices.Marshal.GetActiveObject(m_sAcadProdID); if (m_oAcadApp != null) { m_oAeccApp = (IAeccApplication)m_oAcadApp.GetInterfaceObject(m_sAeccAppProgId); m_oAeccDoc = (IAeccDocument)m_oAeccApp.ActiveDocument; // get the Database object via a late bind m_oAeccDb = (Autodesk.AECC.Interop.Land.IAeccDatabase)m_oAeccDoc.GetType().GetProperty("Database").GetValue(m_oAeccDoc, null); long lCount = m_oAeccDb.PointGroups.Count; m_sMessage += "Number of PointGroups = " + lCount.ToString() + "\n"; lCount = m_oAeccDb.Surfaces.Count; m_sMessage += "Number of Surfaces = " + lCount.ToString() + "\n\n"; MessageBox.Show(m_sMessage); m_sMessage = ""; } }
解釈可能性に関するより詳しい例については、<インストール フォルダ>¥Sample¥AutoCAD Civil 3D¥COM¥ にある CSharpClient および VbDotNetClient サンプル プロジェクトを参照してください。.