码迷,mamicode.com
首页 > Windows程序 > 详细

Navisworks 提供了.NET, COM和NwCreate 三种API

时间:2016-12-26 21:52:23      阅读:730      评论:0      收藏:0      [点我收藏+]

标签:lan   自己   使用   透明   开发   生成   软件   解释器   部分   

Navisworks 提供了.NET, COM和NwCreate 三种API。而通常我们说Navisworks API其实指的只是COM或.NET,因为NwCreate的功能比较特殊。待我一一道来: 

  • COM API: 这是很早很早以前就提供的接口。COM有多老基本它就有多老了。它能完成大部分产品里有的功能。
  • .NET API: 这是2011版本开始提供的。用来逐渐取代COM API。但并不是简单的把COM 功能搬过来,而是从底层写起,并且,增加了很多COM没有的功能。

      .NET API诞生后,我们只在.NET里增加新功能,COM API只做维护。还有零星的一点COM功能.NET暂时没有暴露,但可以通过COM Interop去访问之。换句话讲,您可以 在.NET API里调用到COM的能力。下面这个表格是两种API的大致对比,以作参考。.

 

 

API 能力

COM

.NET

模型聚合

模型基本信息访问

模型结构树

对象属性访问

√ 但API结构繁琐

√ API结构清晰

对象查找

√ 但API结构繁琐

√ API结构清晰

LINQ查找

×

对象用户自定义属性添加和修改

×, 但可以通过COM Interop使用

自动化API

材质和渲染

× 2015之前有Presenter API,2015后去除

×

工程进度管理和操作

×

导入外部工程进度

×

碰撞检测

√  功能有限

√  功能完备

浏览模式

注释

×

算量

×

文档数据库

×

控件

√  ActiveX控件

√  .NET 控件

访问和添加超链接

×, 但可以通过COM Interop使用

访问和添加快速属性

×, 但可以通过COM Interop使用

剖面

√  功能很有限

×, 但可以通过COM Interop使用

全局选项

×  部分可通过注册表操作

×  部分可通过注册表操作

用户交互

×

√  目前仅插件支持

临时图形

×

支持WPF

×

Ribbon

×

面板

×

视点操作

相机操作

√ 功能有限

√ 功能完备

属性集操作

场景动画

×链接地址链接地址可部分利用保存视点

× 可部分利用保存视点

对象动画

×链接地址链接地址可部分利用对象位置变换

×  可部分利用对象位置变换

对象颜色

对象透明度

对象位置变换

添加自定义模型*

×

×

加载自定义文件*

×

×

 

  • NwCreate: 用来创建模型的 --- 或许您会问,前面不是提到,Navisworks不是设计软件?嗯,是的,Navisworks本身不能创建模型,只是聚合已有的模型。而通常的API能力如上面的表格,都是对模型的审阅和管理。NwCreate是一个C++库,让开发者能
    1. 自行从零开始,创建模型场景,生成模型,并存为nwd文件。类似于一个OpenGL程序,在自己的画布里绘制出自己的模型。
    2. 或者,能做一种插件,解释特定的文件格式。Navisworks能打开60多种文件格式,但要是有些格式很特别,而您又知道怎么解释其中的数据,那可以利用NwCreate写个插件,当打开特定格式文件时,插件获取文件数据,按照要求绘制相应的模型。也就是说让您能做自己的文件解释器。

           总之,NwCreate是为开发者而生,创建模型所用。但它也不能在现有的模型上再添加模型,只是从零开始构建一个新模型文档。  

 

所以,我们说普通意义上的Navisworks API指的是COM或.NET。有时,您的程序也会和 NwCreate结合。例如:不能在现有的模型上再添加模型,那用NwCreate创建出模型,再聚合到主模型也是一个思路。

Navisworks 提供了.NET, COM和NwCreate 三种API

标签:lan   自己   使用   透明   开发   生成   软件   解释器   部分   

原文地址:http://www.cnblogs.com/bimzz/p/6223938.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!