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
×
√
面板
×
√
视点操作
√
√
相机操作
√ 功能有限
√ 功能完备
属性集操作
√
√
× 可部分利用保存视点
对象动画
× 可部分利用对象位置变换
对象颜色
√
√
对象透明度
√
√
对象位置变换
√
√
添加自定义模型*
×
加载自定义文件*
×
×