Navisworks 提供了.NET, COM和NwCreate 三种API
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++库,让开发者能
- 自行从零开始,创建模型场景,生成模型,并存为nwd文件。类似于一个OpenGL程序,在自己的画布里绘制出自己的模型。
- 或者,能做一种插件,解释特定的文件格式。Navisworks能打开60多种文件格式,但要是有些格式很特别,而您又知道怎么解释其中的数据,那可以利用NwCreate写个插件,当打开特定格式文件时,插件获取文件数据,按照要求绘制相应的模型。也就是说让您能做自己的文件解释器。
总之,NwCreate是为开发者而生,创建模型所用。但它也不能在现有的模型上再添加模型,只是从零开始构建一个新模型文档。
所以,我们说普通意义上的Navisworks API指的是COM或.NET。有时,您的程序也会和 NwCreate结合。例如:不能在现有的模型上再添加模型,那用NwCreate创建出模型,再聚合到主模型也是一个思路。
Navisworks 提供了.NET, COM和NwCreate 三种API的更多相关文章
- Apache Spark 2.0三种API的传说:RDD、DataFrame和Dataset
Apache Spark吸引广大社区开发者的一个重要原因是:Apache Spark提供极其简单.易用的APIs,支持跨多种语言(比如:Scala.Java.Python和R)来操作大数据. 本文主要 ...
- iOS实现图形编程可以使用三种API(UIKIT、Core Graphics、OpenGL ES及GLKit)
这些api包含的绘制操作都在一个图形环境中进行绘制.一个图形环境包含绘制参数和所有的绘制需要的设备特定信息,包括屏幕图形环境.offscreen 位图环境和PDF图形环境,用来在屏幕表面.一个位图或一 ...
- php基础系列:PHP连接MySQL数据库用到的三种API
参考自php手册.本文没有太大意义,仅为方便自己上网查阅. 1.PHP的MySQL扩展2.PHP的mysqli扩展3.PHP数据对象(PDO) MySQL扩展函数 这是设计开发允许PHP应用与MySQ ...
- VMWARE虚拟机无法访问的三种方法分析
bridged(桥接模式). NAT(网络地址转换模式) host-only(主机模式). 理论认识: 1.bridged(桥接模式) 在这个地方模式.虚拟机等同于网络内的一台物理主机,可对手动设置I ...
- 转载:VMWARE虚拟机无法访问的三种方法分析
bridged(桥接模式).NAT(网络地址转换模式)host-only(主机模式).理论认识:1.bridged(桥接模式)在这个地方模式.虚拟机等同于网络内的一台物理主机,可对手动设置IP,子网掩 ...
- Java 处理 XML 的三种主流技术及介绍
Java 处理 XML 的三种主流技术及介绍 原文地址:https://www.ibm.com/developerworks/cn/xml/dm-1208gub/ XML (eXtensible Ma ...
- codevs 2924 数独挑战 x(三种做法+超详细注释~)
2924 数独挑战 时间限制: 1 s 空间限制: 1000 KB 题目等级 : 钻石 Diamond 题目描述 Description “芬兰数学家因卡拉,花费3个月时间设计出了世界上迄今 ...
- VMWare提供了三种工作模式上网
VMWare提供了三种工作模式,它们是bridged(桥接模式).NAT(网络地址转换模式)和host-only(主机模式).要想在网络管理和维护中合理应用它们,你就应该先了解一下这三种工作模式. 1 ...
- Qt学习 之 多线程程序设计(QT通过三种形式提供了对线程的支持)
QT通过三种形式提供了对线程的支持.它们分别是, 一.平台无关的线程类 二.线程安全的事件投递 三.跨线程的信号-槽连接. 这使得开发轻巧的多线程Qt程序更为容易,并能充分利用多处理器机器的优势.多线 ...
随机推荐
- ASP.NET MVC with Entity Framework and CSS一书翻译系列文章之目录导航
ASP.NET MVC with Entity Framework and CSS是2016年出版的一本比较新的.关于ASP.NET MVC.EF以及CSS技术的图书,我将尝试着翻译本书以供日后查阅. ...
- ubuntu如何安装nodejs最新版 本
如何正确的安装nodejs? 我们可以先安装nvm, git clone https://github.com/creationix/nvm.git ~/.nvm 然后打开 ~/.bashrc , ...
- SDWebImage源码解读之SDWebImageCache(下)
第六篇 前言 我们在SDWebImageCache(上)中了解了这个缓存类大概的功能是什么?那么接下来就要看看这些功能是如何实现的? 再次强调,不管是图片的缓存还是其他各种不同形式的缓存,在原理上都极 ...
- ES6的一些常用特性
由于公司的前端业务全部基于ES6开发,于是给自己开个小灶补补ES6的一些常用特性.原来打算花两天学习ES6的,结果花了3天才勉强过了一遍阮老师的ES6标准入门(水好深,ES6没学好ES7又来了...) ...
- RIFF和WAVE音频文件格式
RIFF file format RIFF全称为资源互换文件格式(Resources Interchange File Format),是Windows下大部分多媒体文件遵循的一种文件结构.RIFF文 ...
- IT持续集成之质量管理
研发工具生态 质量相关工作 一次编译产出测试包与上线包 !从源头保证版本的⼀一致性!代码质量控制! 全⽅方位的⾃自动化测试体系保证! 提测冒烟效率! 全⾃自动上线流程杜绝⼈人⼯工犯错! 生产环境应⽤用 ...
- 编译器开发系列--Ocelot语言4.类型定义的检查
这里主要介绍一下检查循环定义的结构体.联合体.是对成员中包含自己本身的结构体.联合体进行检查.所谓"成员中包含自己本身",举例来说,就是指下面这样的定义. struct point ...
- NSURLSession详解
导语 现在NSURLConnection在开发中会使用的越来越少,iOS9已经将NSURLConnection废弃,现在最低版本一般适配iOS7,所以也可以使用. NSURLConnection相对于 ...
- 数据库 DML、DDL、DCL区别 .
总体解释: DML(data manipulation language): 它们是SELECT.UPDATE.INSERT.DELETE,就象它的名字一样,这4条命令是用来对数据库里的数据进行操作的 ...
- JavaScript中的this
本文尽量避免概念性的讲解,那样太抽象 所以下面以一些简单的例子,从易到难对this的用法总结 1.方法中的this会指向当前执行该方法的对象 如: var name = "window&qu ...