EaBIM
标题: Navisworks 模型数据和API简介 [打印本页]
作者: 萧闫子 时间: 2014-1-14 10:06
标题: Navisworks 模型数据和API简介
我的同事梁晓冬最近一年对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
作者: dglei88 时间: 2014-2-12 21:37
学习了
作者: xy666 时间: 2014-2-17 11:30
(*^__^*) 嘻嘻……
作者: 秦惑 时间: 2014-2-17 11:32
路过!!!
不发表意见……
作者: chen_0003 时间: 2014-2-17 11:34
路过!!!
帮顶……
作者: 乖乖仔 时间: 2014-2-17 11:37
(*^__^*) 嘻嘻……
作者: 车晶晶 时间: 2014-2-17 11:39
顶......
楼下跟上.....
作者: 车晶晶 时间: 2014-2-17 11:40
路过!!!
不发表意见……
作者: 大头佬 时间: 2014-2-17 11:43
路过!!!
帮顶……
作者: dglei88 时间: 2014-2-17 11:45
路过!!!
不发表意见……
作者: 飞天舞 时间: 2014-2-17 11:46
顶!!!!!!!!!!
作者: cocacola 时间: 2014-2-17 11:48
路过!!!
帮顶……
作者: 影馨 时间: 2014-2-17 11:53
(*^__^*) 嘻嘻……
作者: 野风 时间: 2014-2-17 11:54
顶......
楼下跟上.....
作者: 一梦千寻 时间: 2014-2-17 11:56
路过!!!
不发表意见……
作者: 卡巴kala 时间: 2014-2-17 11:57
顶!!!!!!!!!!
作者: levin 时间: 2014-2-17 12:00
顶!!!!!!!!!!
作者: MIMDxFzL 时间: 2014-2-17 12:02
路过!!!
帮顶……
作者: OK佬 时间: 2014-2-17 12:03
顶......
楼下跟上.....
作者: 筱雅 时间: 2014-2-17 12:05
顶起来…………
作者: AK47 时间: 2014-2-17 12:07
路过!!!
帮顶……
作者: xy666 时间: 2014-2-19 15:11
(*^__^*) 嘻嘻……
作者: zj1345 时间: 2014-2-19 15:12
顶!!!!!!!!!!!!!!!!!!!!!!!!!
作者: 欧宝 时间: 2014-2-19 15:14
(*^__^*) 嘻嘻……
作者: 爬爬``PA 时间: 2014-2-19 15:15
路过!!!
不发表意见……
作者: 莞人莞事 时间: 2014-2-19 15:17
顶起来…………
作者: 月之影 时间: 2014-2-19 15:19
路过!!!
不发表意见……
作者: 順順 时间: 2014-2-21 14:40
(*^__^*) 嘻嘻……
作者: 苦田辛君 时间: 2014-2-21 14:41
顶!!!!!!!!!!
作者: 冰雨 时间: 2014-2-21 14:42
(*^__^*) 嘻嘻……
作者: dgpeihua 时间: 2014-2-21 14:43
顶!!!!!!!!!!!!!!!!!!!!!!!!!
作者: dglei88 时间: 2014-2-26 15:56
(*^__^*) 嘻嘻……
作者: 元劭 时间: 2014-2-26 15:58
顶!!!!!!!!!!!!!!!!!!!!!!!!!
作者: an5828 时间: 2014-2-26 16:50
不知道怎么样
作者: 千里独行 时间: 2014-2-27 15:41
路过!!!
帮顶……
作者: 野风 时间: 2014-2-27 15:42
顶!!!!!!!!!!!!!!!!!!!!!!!!!
作者: 代号蓝牙 时间: 2014-2-27 15:43
(*^__^*) 嘻嘻……
作者: 苦田辛君 时间: 2014-2-27 15:43
顶起来…………
作者: 宇航员 时间: 2014-2-28 11:56
顶!!!!!!!!!!!!!!!!!!!!!!!!!
作者: 教父 时间: 2014-2-28 11:58
顶......
楼下跟上.....
作者: 代号蓝牙 时间: 2014-3-4 14:15
(*^__^*) 嘻嘻……
作者: 大头佬 时间: 2014-3-4 14:18
(*^__^*) 嘻嘻……
作者: chen_0003 时间: 2014-3-5 16:53
(*^__^*) 嘻嘻……
作者: 楚客 时间: 2014-3-5 16:55
路过!!!
帮顶……
作者: 苦田辛君 时间: 2014-3-5 16:55
顶......
楼下跟上.....
作者: 欧宝 时间: 2014-3-5 16:56
顶!!!!!!!!!!!!!!!!!!!!!!!!!
作者: 国产008 时间: 2014-3-5 16:57
顶起来…………
作者: 风吹枫落 时间: 2014-3-10 13:10
了解下BIM.....
作者: 木鬼 时间: 2014-3-10 13:12
看看啥…………
作者: 大头佬 时间: 2014-3-10 13:22
楼主辛苦……
作者: 等你回来 时间: 2014-3-10 13:24
谢谢!!!
帮顶……
作者: dgren 时间: 2014-3-10 13:27
顶起来…………
作者: 看看侃侃 时间: 2014-3-10 13:28
谢谢老师…
作者: 筱雅 时间: 2014-3-10 13:31
看看啥…………
作者: 沧海冷月 时间: 2014-3-11 10:54
了解下BIM.....
作者: dgpeihua 时间: 2014-3-11 10:55
谢谢!!!
帮顶……
作者: 泰安oim 时间: 2014-3-11 10:57
谢谢老师…
作者: 宇航员 时间: 2014-3-11 11:00
看看啥…………
作者: 矮矮 时间: 2014-3-11 11:01
顶!!!!!!!!!!
作者: 老朽 时间: 2014-3-11 11:02
看看啥…………
作者: zj1345 时间: 2014-3-11 11:04
看看啥…………
作者: 沧海冷月 时间: 2014-3-12 13:57
路过!!!
帮顶……
作者: dgren 时间: 2014-3-12 13:59
路过!!!
帮顶……
作者: cocacola 时间: 2014-3-12 14:00
(*^__^*) 嘻嘻……
作者: 烈火ivk 时间: 2014-3-12 14:02
顶起来…………
作者: 极HONDA速 时间: 2014-3-12 14:03
路过!!!
不发表意见……
作者: xy666 时间: 2014-3-12 14:06
顶......
楼下跟上.....
作者: 順順 时间: 2014-3-12 14:07
顶......
楼下跟上.....
作者: 嫣雨遥 时间: 2014-3-12 14:08
(*^__^*) 嘻嘻……
作者: 静儿 时间: 2014-3-12 14:10
顶......
楼下跟上.....
作者: chen_0003 时间: 2014-3-12 14:11
顶!!!!!!!!!!!!!!!!!!!!!!!!!
作者: OK佬 时间: 2014-3-12 14:12
路过!!!
帮顶……
作者: 代号蓝牙 时间: 2014-3-12 14:13
顶......
楼下跟上.....
作者: 熊猫 时间: 2014-3-12 14:14
顶!!!!!!!!!!
作者: 风浪子 时间: 2014-3-12 14:15
顶起来…………
作者: 言子 时间: 2014-3-13 14:59
好强大啊,谢谢哈
作者: 千里独行 时间: 2014-4-14 11:33
顶!!!!!!!!!!!!!!!!!!!!!!!!!
作者: We晕晕 时间: 2014-4-14 11:34
路过!!!
不发表意见……
作者: 长风 时间: 2014-4-14 11:35
路过!!!
帮顶……
作者: 妮可 时间: 2014-4-14 11:35
顶!!!!!!!!!!
作者: best 时间: 2014-4-14 11:36
顶......
楼下跟上.....
作者: AK47 时间: 2014-4-14 11:37
顶起来…………
作者: dglei88 时间: 2014-4-14 11:37
(*^__^*) 嘻嘻……
作者: 风吹枫落 时间: 2014-4-14 11:38
路过!!!
不发表意见……
作者: 苦田辛君 时间: 2014-4-14 11:38
(*^__^*) 嘻嘻……
作者: 嫣雨遥 时间: 2014-4-14 11:39
顶!!!!!!!!!!
作者: 中华! 时间: 2014-4-14 11:39
顶!!!!!!!!!!
作者: 风吹枫落 时间: 2014-4-14 11:40
顶起来…………
作者: 猫猫girl 时间: 2014-4-14 11:41
顶起来…………
作者: 千里独行 时间: 2014-4-14 11:41
顶!!!!!!!!!!!!!!!!!!!!!!!!!
作者: 波罗友 时间: 2014-4-14 11:43
顶......
楼下跟上.....
作者: lw7511 时间: 2014-4-14 11:45
(*^__^*) 嘻嘻……
作者: 入樽 时间: 2014-4-14 11:46
(*^__^*) 嘻嘻……
作者: audigy 时间: 2014-4-14 11:48
路过!!!
帮顶……
作者: audigy 时间: 2014-4-14 11:49
顶......
楼下跟上.....
作者: 国产008 时间: 2014-4-14 11:51
路过!!!
帮顶……
作者: gba8297517 时间: 2014-4-14 11:52
顶起来…………
作者: 秦惑 时间: 2014-4-14 11:54
路过!!!
不发表意见……
作者: 元劭 时间: 2014-4-14 11:55
路过!!!
帮顶……
作者: leowave 时间: 2014-4-14 11:57
顶......
楼下跟上.....
欢迎光临 EaBIM (https://eabim.net/) |
Powered by Discuz! X3.2 |