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());
            }

posted @ 2014-12-08 11:46  在 水 一 方  阅读(3938)  评论(25编辑  收藏  举报