Navisworks Addin 插件集成

来源:互联网 发布:ubuntu制作u盘安装 编辑:程序博客网 时间:2024/05/16 10:34

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