分享

如何用Naviswork二次开发读取模型的实体句柄值?

 _鎏_ 2015-08-31

   实体句柄值作为模型的“身份证”,在许多场合都有重要作用。例如,在按条件搜索模型时,便可通过实体句柄的值来进行搜索。实体句柄往往扮演着“桥梁”的角色,将模型与施工信息一一对应起来。模型的实体句柄值可以在“特性”或者“选择树”中显示,然而,在Navisworks二次开发中,如何通过程序来读取实体句柄值呢?

  思路:遍历模型的特性,找到实体句柄,读取值。

        string handlevalue;
        string[] HandleValue;

        string EntityHandle;
        public void 获取实体句柄()//一个获取实体句柄的函数
        {
          if(Autodesk.Navisworks.Api.Application.ActiveDocument != null &&
             !Autodesk.Navisworks.Api.Application.ActiveDocument.IsClear)
            {
                documentControl1.Document.Tool.Value = Autodesk.Navisworks.Api.Tool.Select;    
                foreach (ModelItem item in Autodesk.Navisworks.Api.Application.ActiveDocument.CurrentSelection.SelectedItems)
                {
                    //iterate the item's PropertyCategory entries
                    foreach (PropertyCategory category in item.PropertyCategories)
                    {
                        //iterate over the DataPropertys
                        foreach (DataProperty dataProperty in category.Properties)
                        {
                            if (dataProperty.CombinedName.Name.ToString() == "LcOaNat64AttributeValue")//"LcOaNat64AttributeValue"我个人理解是在系统中的名称,我认为此步也可以读取dataProperty.DisplayName.Name.ToString(),只是需要调试一下,可以尝试                         

  {
                               
                  handlevalue = dataProperty.Value.ToString();//得到是字符串类似“displaystring:EB4”
                   HandleValue = handlevalue.Split(':');//按“:”分割
                   EntityHandle = dataProperty.Value.ToString();
                   MessageBox.Show(EntityHandle);
                            }

                        }
                    }
                   
                 EntityHandle = HandleValue[1];//读取实体句柄
                 MessageBox.Show(EntityHandle);//弹出对话框显示EntityHandle
                }
        }
        }

这样就可以在调用此函数,获取模型的实体句柄了。希望对大家有帮助!如何用Naviswork二次开发读取模型的实体句柄值?

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多