1 准备工作

工欲善其事,必先利其器。在正式开始之前,我觉得有必要先盘点一下需要准备些什么。

1.1 硬件设备

PC机一台(谢绝Apple)。

配置不能太低,至少要i3以上的cpu、4g以上的内存和支持DX11的独立显卡,否则跑不动Revit,建议不低于i5 CPU和8g内存。SSD不是必须品,我敢保证,当你把360、电脑管家和金山毒霸之类装了四五个以后,开机时间肯定会比裸奔的5400转机械硬盘长很多(珍爱生命,远离国产软件全家桶)。

1.2 必要软件

1.2.1 64位Windows 7或8操作系统(Revit 2017开始支持Windows 10)

1.2.2 Revit 2014/2015/2016/2017/2018任选(低于2014也没支持的必要了)

1.2.3 Visual Studio 2008或更高版本(建议2012及以上)

1.2.4 从4.0开始的各种.NET框架

网上有种说法,什么开发Revit 2015需要Visual Studio 2013,开发Revit 2017需要Visual Studio 2015云云,其实根本没说到点子上。Visual Studio只是个集成开发环境(IDE)而已,在这里真正起作用的是.NET框架。根据官方某英文页面的说法,Revit与.NET版本对应关系如下:

Revit版本

.NET版本

2014

4.0

2015/2016/2017

4.5

2018

4.5.2

 

 

 

 

但根据我的实践,Revit 2017对应的其实也是.NET 4.5.2,所以一定要注意,正所谓尽信书不如无书。

1.3 知识储备

1.3.1 Revit基本操作

如果连Revit能做什么、怎么做都不清楚,二次开发就无从谈起。为此,我特意借了本《官方标准教程》,从头到尾学习了一遍。其实类似的书很多,随便找哪本都差不多,没必要掌握太过高深复杂的技巧,毕竟学习的目的不是去做专职建模员。

真正可能有点麻烦的,是与操作Revit隐性相关的工程方面的知识。如果连图纸都看不懂,拿着Revit也就是瞎玩而已。当然对于建筑系或土木系科班出身的人,这完全不是问题;如果不是,我个人建议是先找下面两本大学教材看看透:一本是《工程制图》,另一本是《房屋建筑学》,都是大一的基础课程,版本不限。

1.3.2 软件开发基础

理论上所有支持托管代码的语言都能用来进行Revit二次开发,包括Python、Javascript等等,但实际上还是用微软原生的VB.NET、C#、C++、F#之类能获得更好的支持。一上来也不需要达到太专业的程度,具备如下几个方面就可以了:

首先是掌握上述某种语言的语法规范,就是诸如变量、表达式、分支循环和函数之类。WPF了解点皮毛即可,以后看别人的源代码时可能会碰到;至于.NET Core,我表示你确实想多了……

这几种语言当中,VB.NET我是实际写过几个桌面程序的,不过我对它的严谨性颇有疑虑,毕竟是脱胎于VB的;C#我以前没学过,只知道它相当简洁,而且是.NET的“亲儿子”;C++我也还算熟悉,可它是出了名的复杂,但凡有可能我都不会选择用它;至于F#,这玩意是啥?我仅仅听过名字,貌似以前微软还有个叫J#的倒霉孩子……

最终我选择C#,毕竟它同我最熟悉的Delphi一样都是Anders Hejlsberg的作品,天然有亲和力。虽然以前没学过,但是好在有其他语言基础,想必不会太困难。我自己是直接拿微软官方的《C# 5.0 语法规范》看的。对于没有编程基础的人,我个人推荐这本书——《Visual C# 2012 大学教程》,虽说老一点,但完全够用,关键是非常详细,700页的内容全是最基础的东西,要是换到别的入门书里顶多也就占二、三百页的篇幅。顺便提一句,这本书原名叫《Visual C# 2012 How to Program》,跟“大学教程”不沾边,作者是美国人Deitel,千万别弄错成国内作者的同名书。

其次是如何使用Visual Studio。对于有WinForm开发经验的人来说当然不成问题;对于用Qt、Eclipse之类跨平台开发的人来说问题也不大,上大学时总该学过;对于没有编程基础的人……看上面那本书就够啦。

最后是面向对象的思想,就是要理解诸如类啦,三大特征封装、继承、多态啦这些。对于有开发经验的人来说是基本功,对于没有编程基础的人还是用上面那本书解决,差不多就行。

什么?你说Revit二次开发知识?不懂就对了,都懂了还用学么!

1.4 资料来源

我准备了下面这些资料:

1.4.1 出版物

目前国内出版的Revit二次开发书籍只有两本。一本是《AUTODESK REVIT二次开发基础教程》,另一本是《API开发指南——Autodesk Revit》。因为稀少,所以好坏也无从谈起,既然想学习Revit二次开发,必然是要入手的。

至于这方面的外文书籍,我表示自己英语战五渣,真心看不懂,也没有关注过。

1.4.2 网站

首先当然是欧特克的官方Revit开发网站,可以在这里下载SDK和一些教程、视频(都是英语的)。不过这地方经常出404错误,不明觉厉。我觉得SDK最有价值因为含有大量示例源码,而教程看起来就挺吃力,视频更是听不懂:(

其次是Revit的官方在线帮助。里面有专门一章是写给开发者的。这里给出的地址是最新的2018版,想访问之前的版本把地址里的数字换掉就行。

接着是国内两位大牛的博客:叶雄进和卢石碧。一位是橄榄山的BOSS,一位是《AUTODESK REVIT二次开发基础教程》的作者。同时善用度娘,在博客园、CSDN、新浪博客等地方可以搜索到不少其他作者的博文。

另外还有一位国外大牛Jeremy Tammiik的博客,貌似干货不少,可惜我看不大懂:(

最后,自然是GitHub,可以搜索到一些源码作为参考。

1.4.3 交流群

在QQ群里搜索“revit”,看到带“二次开发”、“BIM开发”之类字样的就申请入伙吧。可以和别人进行技术交流或寻求帮助。

就这样,我已经摩拳擦掌、整装待发了。下回,我打算从一个最最最简单的插件——“Hello World”开始,正式踏上Revit二次开发之路。