EaBIM一直以来积极响应国家“十二五”推进建筑业信息化的号召,对建筑领域的信息技术开展深入技术交流和探讨!致力于打造“BIM-建筑师-生态技术”三位一体综合资源交流共享平台,希望为BIM与可持续设计理念及技术的普及做出微小的贡献!!!

EaBIM

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

搜索
查看: 23876|回复: 266
打印 上一主题 下一主题

Navisworks 模型数据和API简介

[复制链接]

1514

主题

7465

帖子

1万

积分

admin

Rank: 10Rank: 10Rank: 10Rank: 10Rank: 10Rank: 10Rank: 10Rank: 10Rank: 10Rank: 10

积分
12404

社区QQ达人

跳转到指定楼层
楼主
发表于 2014-1-14 10:06:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

我的同事梁晓冬最近一年对Navisworks的支持工作产生了极高的热情,我想可能是国内对Navisworks关注/使用的用户越来越多吧。前些天我叫他写了一篇针对Navisworks初学者或者希望更进一步了解Navisworks的用户的技术类的介绍性文章。现在我把他的文章转贴在下面供大家学习:

NavisWorks 是目前Autodesk 在建筑业表现最突出的一款施工项目管理产品,它将带您进入具有巨大商机的建筑业施工管理行业,而掌握其API将为您提供基于 NavisWorks集成创新的工具,使您能够成为行业的领跑者。

Navisworks将原始模型数据转换成逻辑数据和全局数据两种类型。逻辑数据是将原始的逻辑结构转换到Navisworks场景中,它呈现出一种继承(树状)结构。全局数据是为了实现模型的快速优化显示。一般逻辑数据发生变化,全局数据将自动重建。

逻辑数据

我们以DWG文件为例。下图是一个简单的DWG在Navisworks中打开后的样子。有两列实体,分别在图层0和图层1上。左边的选择树(Selection Tree)面板中,顶层是文件test.dwg, 接着是0层,1层,在每一层放置了对应的实体。简单实体转换成对应的类型,例如圆à圆,文字à文字。复杂实体,例如块,被转换成 : 块实体à块定义à块定义中的实体。熟悉AutoCAD及其API的用户可以看出,这体现的是和AutoCAD类似的逻辑结构。


                               
登录/注册后可看大图

以上示例经过抽象化,就如下图的树形结构。树上的每个元素是节点,从根节点开始直到最后节点的分支就是一条路径。每个路径是唯一的,末梢节点是几何元素。


                               
登录/注册后可看大图

Navisworks 的API提供了相应的对象来操作逻辑数据。开发包的例子ACTX_06展示了如何遍历逻辑结构树和访问节点属性信息。

API 对象
说 明
InwOaPatition
顶层对象,根节点,存储文件基本信息,材料以及全局转换矩阵
InwOaPath
路径对象,可访问其中的每个节点
InwOaNode
节点对象,可为组节点(图层或insert),几何节点,并存储对应的属性信息

全局数据

当原始数据转换成全局数据时,被离散为很多碎片Fragments)。 Navisworks根据其算法来灵活使用这些碎片,达到显示和速度上的最优化。一个原始实体将可能产生多个碎片。例如:它拥有多个材料,那么每个材料就生成一个碎片。即使在上面DWG例子中一个简单的圆,在转换后也会有两个碎片,分别对应其捕捉点和具体几何数据。全局数据对最终用户来说是不可见的。


                               
登录/注册后可看大图

碎片的API对象是InwOaFragment,它存储了碎片的转换矩阵,碎片所在的路径等信息。Navisworks没有保留原始的几何信息,不过要访问Navisworks场景中的几何数据,可以用碎片的GenerateSimplePrimitives方法。该方法需要传入回调类InwSimplePrimitivesCB,它提供了顶点,三角面片,线元等数据。

属性

由于Navisworks有着自己的数据结构,原始的数据大部分会被转换成属性Attribute)。每个节点会存储多个属性,形成属性集合。而如果是特性属性则会包含多个特性Property)。这些属性存储在节点InwOaNode之中。属性有很多种类,例如材料信息,变换矩阵信息等。它对于对于最终用户是不可见的,而且目前不能创建/删除/修改属性。

每个属性有三个名字。通过这些名字,我们可以用Navisworks查找方面的API去搜素相应的属性及其内容。请参考开发包例子ACTX_05。

名字
说 明
ClassUserName
用户定义的名字。随不同语言版本而不同(只读)
ClassName
所有版本都相同,唯一标识属性的名字(只读)
UserName
可选的名字(读写)


Navisworks还有GUI 属性,它对应用户界面的properties。每个对象存储的GUI属性大部分和上面提到的属性一样。但最终用户能够看到。而且无论UI还是API都可以添加自定义的GUI属性。但需要注意,如果是由Navisworks转换原始数据创建的GUI属性,例如下图中的项目(Item)选项卡,UI或API都不能对它进行修改或删除。开发包实例AUTO_06演示了如何操作GUI属性。


                               
登录/注册后可看大图


对象的ID

很多用户会关心标识对象的ID,也有人注意到Navisworks的任何对象都有一个成员: nwID,实际上它代表的是底层的C++指针,每次启动Navisworks时将会变化。因此它不能作为ID。我们已经提交了一个需求,希望开发部能给对象提供唯一的ID。不过目前也不是毫无办法,其实, Navisworks转换DWG文件会把每个实体的句柄变成一个属性(ClassName: LcOaNat64AttributeValue)。如果是Micorstation (DGN)文件,则转换名为"Element"的属性,如果是ArchiCAD文件,则名为GUID。在UI的properties面板也可以看到。因此,你可以根据文件类型来找寻对应的属性,获取ID。


                               
登录/注册后可看大图

选择集

和大多数CAD软件开发一样,用户经常需要选择集(InwOpSelection)。 通过选择集,我们可以访问到其中包含的路径,节点等信息,进行操作。若最终用户选择了一些实体,API 最顶层对象state的成员CurrentSelection将返回这个选择集。也可以通过API来构造选择集,一个方法是InwOpState::SeekSelection,它传入回调函数类:InwSeekSelection,在这个类方法SelectNode中,按照你设置的条件来构成选择集。另一方法是利用查找方面的API,通过设置属性/特性的条件搜索到一个选择集,请查阅开发包例子ACTX_05。


                               
登录/注册后可看大图

一个选择集如果有了名字,则成为SelectionSet (InwOpSelectionSet)。文件刚转换到Navisworks中是没有SelectionSet的,用户界面也不会显示SelectionSet面板。一旦有了某个SelectionSet,你就可以看到这个面板。


                               
登录/注册后可看大图

综上所述,对Navisworks模型数据的开发主要围绕对逻辑数据,全局数据,属性的操作。具体的信息请参阅开发包的帮助文档以及样例。更多关于Navisworks介绍,请访问:



文章来源:http://blog.csdn.net/barbarahan/article/details/4864519

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 转播转播 分享分享 分享淘帖 支持支持 反对反对

相关帖子

工作时间:工作日的9:00-12:00/13:30-18:00,节假日不在线,请勿留言

5

主题

9

帖子

61

积分

BIM助工

Rank: 2Rank: 2

积分
61

社区QQ达人

推荐
发表于 2016-9-18 17:32:03 | 只看该作者
请问 你说的Navisworks 的API提供了相应的对象来操作逻辑数据。开发包的例子ACTX_06 这个例子在哪里,navisworks2014有么

56

主题

527

帖子

5081

积分

BIM专家

Rank: 8Rank: 8Rank: 8Rank: 8Rank: 8Rank: 8Rank: 8Rank: 8

积分
5081

社区QQ达人

QQ
推荐
发表于 2015-5-21 05:09:50 | 只看该作者
表示听不懂,刚接触,估计还休要修炼修炼

8

主题

767

帖子

1383

积分

BIM经理

Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6

积分
1383
5F
发表于 2014-2-17 11:30:03 | 只看该作者
(*^__^*) 嘻嘻……

4

主题

864

帖子

1390

积分

BIM经理

Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6

积分
1390
6F
发表于 2014-2-17 11:32:59 | 只看该作者
路过!!!
不发表意见……

2

主题

871

帖子

1314

积分

BIM经理

Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6

积分
1314
8F
发表于 2014-2-17 11:37:30 | 只看该作者
(*^__^*) 嘻嘻……

6

主题

853

帖子

1347

积分

BIM经理

Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6

积分
1347
9F
发表于 2014-2-17 11:39:06 | 只看该作者
顶......
楼下跟上.....

6

主题

853

帖子

1347

积分

BIM经理

Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6

积分
1347
10F
发表于 2014-2-17 11:40:46 | 只看该作者
路过!!!
不发表意见……

23

主题

898

帖子

1564

积分

BIM经理

Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6

积分
1564
12F
发表于 2014-2-17 11:45:17 | 只看该作者
路过!!!
不发表意见……

5

主题

857

帖子

1390

积分

BIM经理

Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6

积分
1390
15F
发表于 2014-2-17 11:53:01 | 只看该作者
(*^__^*) 嘻嘻……

5

主题

874

帖子

1406

积分

BIM经理

Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6

积分
1406
16F
发表于 2014-2-17 11:54:37 | 只看该作者
顶......
楼下跟上.....

28

主题

763

帖子

1425

积分

BIM经理

Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6

积分
1425
17F
发表于 2014-2-17 11:56:13 | 只看该作者
路过!!!
不发表意见……
*滑块验证:
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|EaBIM网 ( 苏ICP备2020058923号-1  苏公网安备32011502011255号

GMT+8, 2024-11-23 10:51

Powered by Discuz! X3.2 Licensed

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表