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二次开发之路。

踏上Revit二次开发之路 1 准备工作的更多相关文章

  1. 踏上Revit二次开发之路 0 序

    0 序 近来,由于工作上的需要,开始自学Revit二次开发. Revit由欧特克公司专为BIM构建,是建筑业体系中使用最广泛的软件之一.借助欧特克公司在我国市场占有率方面的绝对优势,甚至给不少人带来& ...

  2. 踏上Revit二次开发之路 2 从“HelloWorld”入手

    2 从"HelloWorld"入手 在欧特克的官方网页上有个叫<My First Plug-in Training>的项目,号称可以让一个完全没有编程基础的人照着做出一 ...

  3. 踏上Revit二次开发之路 3 自己的工具按钮

    3 自己的工具按钮 上次的例子只能在"附加模块"→"外部工具"下运行,用作个人作品是没问题,如果打算搞个公司产品的话,估计BOSS是不会满意的.这次我来做一个直 ...

  4. Revit二次开发之绘制钢筋

    第一次在博客园上写东西,也不知道该写些什么,我想就写点最近项目到遇到的问题吧. 最近在做一个小项目,具体需求大概是在一个revit模型中的对应的楼板位置绘制钢筋. 由于刚接触Revit二次开发,之前也 ...

  5. Revit二次开发初体验

    最近换了下工作,由之前的互联网企业转入了BIM软件开发行列.具体原因不多说,作为一个程序员来说学习永无止境.下面来一个Hello World体验下Revit的二次开发 事前准备 VS Revit 20 ...

  6. Revit二次开发 推荐

    学习revit二次开发,建议还是先把revit熟悉一下,去建立一下模型,亲自感受一下是如何创建模型的流程,其中会遇到什么问题.这样在自己做二次开发的时候,一些问题自己就能提前想到,规避掉.我大概用了半 ...

  7. [Revit]Autodesk Revit 二次开发整理(资料、准备工作和环境搭建)

    1 前言 Revit被Autodesk收购之后,整理和开放了一大部分API,供开发者实现自己的功能和程序,总体来说API的功能比较完善,毕竟市面上已经出现了各式各样的插件. 本人也是初学者,在Revi ...

  8. Revit二次开发环境配置(Revit 2020 +Visual Studio 2019)

    Revit二次开发环境搭建(Revit 2019+Visual Studio 2017)准备内容 Revit 2019开发环境的搭建,需要安装的内容如下: Revit 2019(主要的开发环境) Vi ...

  9. Revit二次开发之创建风管

      在Revit中,风管用于连接管件,风道末端和机械设备,今天简单尝试了下使用RevitAPI创建风管,现分享下我的方法.   风管从类型上可分为三类:一般风管,软风管和风管占位符:从形状上也分为三类 ...

随机推荐

  1. 【Git】3、创建Git版本库、配置Git仓库用户邮箱信息

    初识Git 文章目录 初识Git 1.创建Git版本库 认识.git 2.基础配置 2.1.查看配置信息 2.2.配置昵称邮箱信息 2.3.修改配置信息 1.通过命令行 2.通过修改配置文件. 修改全 ...

  2. zabbix自动发现主机并注册

  3. ASP.NET Core错误处理中间件[3]: 异常处理器

    DeveloperExceptionPageMiddleware中间件错误页面可以呈现抛出的异常和当前请求上下文的详细信息,以辅助开发人员更好地进行纠错诊断工作.ExceptionHandlerMid ...

  4. 缓存淘汰算法 LRU 和 LFU

    LRU (Least Recently Used), 即最近最少使用用算法,是一种常见的 Cache 页面置换算法,有利于提高 Cache 命中率. LRU 的算法思想:对于每个页面,记录该页面自上一 ...

  5. canvas星空背景特效+CSS旋转相册学习

    今天在看帖子的时候,看到了个有趣的css旋转相册,刚好之前做了一个星空背景dome,这里给大家分享下代码: 旋转相册参考:https://blog.csdn.net/gitchatxiaomi/art ...

  6. 使用remix实现给合约账户转账

    实现内容:从remix上的虚拟账户上转账给自己编写的智能合约账户 前提基础:对solidity有一些基础了解,对以太坊的账户机制有一定了解. 账户 在以太坊中账户的唯一标识是地址(address). ...

  7. 网络编程 — Linux TCP服务端和客户端

    1. 服务端 #include <stdlib.h> #include <string.h> #include <errno.h> #include <sig ...

  8. jackson学习之四:WRAP_ROOT_VALUE(root对象)

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  9. Redis持久化之RDB和AOF

    Redis是一个键值对数据库服务器,由于Redis是内存数据库,那么有很多内存的特点,例如掉电易失,或者进程退出,服务器中的数据也将消失不见,所以需要一种方法将数据从内存中写到磁盘,这一过程称之为数据 ...

  10. GRASP职责分配模式

    https://mp.weixin.qq.com/s/IaxAnWfVqe3mM0bHFVV5Gg 软件开发必修课:你该知道的GRASP职责分配模式 原创 悟真 阿里技术 今天 收录于话题 #设计模式 ...