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的更多相关文章

  1. Apache Spark 2.0三种API的传说:RDD、DataFrame和Dataset

    Apache Spark吸引广大社区开发者的一个重要原因是:Apache Spark提供极其简单.易用的APIs,支持跨多种语言(比如:Scala.Java.Python和R)来操作大数据. 本文主要 ...

  2. iOS实现图形编程可以使用三种API(UIKIT、Core Graphics、OpenGL ES及GLKit)

    这些api包含的绘制操作都在一个图形环境中进行绘制.一个图形环境包含绘制参数和所有的绘制需要的设备特定信息,包括屏幕图形环境.offscreen 位图环境和PDF图形环境,用来在屏幕表面.一个位图或一 ...

  3. php基础系列:PHP连接MySQL数据库用到的三种API

    参考自php手册.本文没有太大意义,仅为方便自己上网查阅. 1.PHP的MySQL扩展2.PHP的mysqli扩展3.PHP数据对象(PDO) MySQL扩展函数 这是设计开发允许PHP应用与MySQ ...

  4. VMWARE虚拟机无法访问的三种方法分析

    bridged(桥接模式). NAT(网络地址转换模式) host-only(主机模式). 理论认识: 1.bridged(桥接模式) 在这个地方模式.虚拟机等同于网络内的一台物理主机,可对手动设置I ...

  5. 转载:VMWARE虚拟机无法访问的三种方法分析

    bridged(桥接模式).NAT(网络地址转换模式)host-only(主机模式).理论认识:1.bridged(桥接模式)在这个地方模式.虚拟机等同于网络内的一台物理主机,可对手动设置IP,子网掩 ...

  6. Java 处理 XML 的三种主流技术及介绍

    Java 处理 XML 的三种主流技术及介绍 原文地址:https://www.ibm.com/developerworks/cn/xml/dm-1208gub/ XML (eXtensible Ma ...

  7. codevs 2924 数独挑战 x(三种做法+超详细注释~)

    2924 数独挑战  时间限制: 1 s  空间限制: 1000 KB  题目等级 : 钻石 Diamond   题目描述 Description “芬兰数学家因卡拉,花费3个月时间设计出了世界上迄今 ...

  8. VMWare提供了三种工作模式上网

    VMWare提供了三种工作模式,它们是bridged(桥接模式).NAT(网络地址转换模式)和host-only(主机模式).要想在网络管理和维护中合理应用它们,你就应该先了解一下这三种工作模式. 1 ...

  9. Qt学习 之 多线程程序设计(QT通过三种形式提供了对线程的支持)

    QT通过三种形式提供了对线程的支持.它们分别是, 一.平台无关的线程类 二.线程安全的事件投递 三.跨线程的信号-槽连接. 这使得开发轻巧的多线程Qt程序更为容易,并能充分利用多处理器机器的优势.多线 ...

随机推荐

  1. Android公共title的应用

    我们在开发Android应用中,写每一个页面的时候都会建一个title,不是写一个LinearLayout就是写一个RelativeLayout,久而久之就会觉得这样繁琐,尤其几个页面是只是标题不一样 ...

  2. spring remoting源码分析--Hessian分析

    1. Caucho 1.1 概况 spring-remoting代码的情况如下: 本节近分析caucho模块. 1.2 分类 其中以hession为例,Hessian远程服务调用过程: Hessian ...

  3. Asp.net Core准备工作

    1.安装环境 安装.Net Core SDK 安装VS2015 Update3 安装DotNetCore.1.0.1-VS2015Tools.Preview2.0.2.exe 2.新建Core工程 项 ...

  4. 海鑫智圣:物联网漫谈之MQTT协议

    什么是MQTT协议 MQTT(消息队列遥测传输协议)是IBM在1999年专门针对物联网等应用场景来制订的轻量级双向消息传输协议,它主要是为了解决物联网上使用到的设备的互相通信的问题,以及这些设备与后端 ...

  5. BZOJ 2119: 股市的预测 [后缀数组 ST表]

    2119: 股市的预测 Time Limit: 10 Sec  Memory Limit: 259 MBSubmit: 331  Solved: 153[Submit][Status][Discuss ...

  6. ReactNative入门(安卓)——API(上)

    Alert - 弹窗 通过 Alert.alert() 方法调用唤起原生弹窗,点击会触发 onPress 回调(参考下方代码)并清除弹窗. import React, { AppRegistry, C ...

  7. 如何开发一个简单的HTML5 Canvas 小游戏

    原文:How to make a simple HTML5 Canvas game 想要快速上手HTML5 Canvas小游戏开发?下面通过一个例子来进行手把手教学.(如果你怀疑我的资历, A Wiz ...

  8. Android开发学习之路-自定义控件(天气趋势折线图)

    之前写了个天气APP,带4天预报和5天历史信息.所以想着要不要加一个折线图来显示一下天气变化趋势,难得有空,就写了一下,这里做些记录,脑袋不好使容易忘事. 先放一下效果: 控件内容比较简单,就是一个普 ...

  9. 二、Redis基本操作——String(实战篇)

    小喵万万没想到,上一篇博客,居然已经被阅读600次了!!!让小喵感觉压力颇大.万一有写错的地方,岂不是会误导很多筒子们.所以,恳请大家,如果看到小喵的博客有什么不对的地方,请尽快指正!谢谢! 小喵的唠 ...

  10. Redis系列之key操作命令与Redis中的事务详解(六)

    序言 本篇主要目的有二: 1.展示所有数据类型中key的所有操作命令,以供大家学习,查阅,更深入的挖掘redis潜力. 2.掌握redis中的事务,让你的数据完整性一致性拥有更优的保障. redis命 ...