天天看點

Navisworks Addin 插件內建

調用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());
            }      
Navisworks Addin 插件內建