調用Navisworks的 Api . 我這里是基於.NET 開發的.
我主要是嘗試着獲取一下工程量的API。不過還在研究。
插件的啟動入口. //插件描述 [PluginAttribute("BJYTTakeOff","ADSK",DisplayName = "工程量查看")] public class AddinActvitor : AddInPlugin { //執行 public override int Execute(params string[] parameters) { FrmTakeOff takeOff=new FrmTakeOff(); takeOff.ShowDialog(); return 0; } }
try { //獲取工程量對象 if (Autodesk.Navisworks.Api.Application.MainDocument != null) { DocumentTakeoff docTakeoff = Autodesk.Navisworks.Api.Application.MainDocument.GetTakeoff(); //獲取條目表 // ItemTable table = docTakeoff.Items; //開始數據庫操作 if (docTakeoff != null) { using (NavisworksCommand cmd = docTakeoff.Database.Value.CreateCommand()) { //SQL句法 // TK_ITEM是條目表在數據庫中的名字 cmd.CommandText = "SELECT ID,Parent,Name FROM TK_ITEM"; //讀取數據庫 DataTable dt = new DataTable(); NavisworksDataAdapter sdAdapter = new NavisworksDataAdapter(cmd); sdAdapter.Fill(dt); if (dt.Rows.Count > 0) { treeList1.DataSource = dt; } } } } } catch (Exception ex) { MessageBox.Show(ex.ToString()); }