踏上Revit二次开发之路 1 准备工作
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 准备工作的更多相关文章
- 踏上Revit二次开发之路 0 序
0 序 近来,由于工作上的需要,开始自学Revit二次开发. Revit由欧特克公司专为BIM构建,是建筑业体系中使用最广泛的软件之一.借助欧特克公司在我国市场占有率方面的绝对优势,甚至给不少人带来& ...
- 踏上Revit二次开发之路 2 从“HelloWorld”入手
2 从"HelloWorld"入手 在欧特克的官方网页上有个叫<My First Plug-in Training>的项目,号称可以让一个完全没有编程基础的人照着做出一 ...
- 踏上Revit二次开发之路 3 自己的工具按钮
3 自己的工具按钮 上次的例子只能在"附加模块"→"外部工具"下运行,用作个人作品是没问题,如果打算搞个公司产品的话,估计BOSS是不会满意的.这次我来做一个直 ...
- Revit二次开发之绘制钢筋
第一次在博客园上写东西,也不知道该写些什么,我想就写点最近项目到遇到的问题吧. 最近在做一个小项目,具体需求大概是在一个revit模型中的对应的楼板位置绘制钢筋. 由于刚接触Revit二次开发,之前也 ...
- Revit二次开发初体验
最近换了下工作,由之前的互联网企业转入了BIM软件开发行列.具体原因不多说,作为一个程序员来说学习永无止境.下面来一个Hello World体验下Revit的二次开发 事前准备 VS Revit 20 ...
- Revit二次开发 推荐
学习revit二次开发,建议还是先把revit熟悉一下,去建立一下模型,亲自感受一下是如何创建模型的流程,其中会遇到什么问题.这样在自己做二次开发的时候,一些问题自己就能提前想到,规避掉.我大概用了半 ...
- [Revit]Autodesk Revit 二次开发整理(资料、准备工作和环境搭建)
1 前言 Revit被Autodesk收购之后,整理和开放了一大部分API,供开发者实现自己的功能和程序,总体来说API的功能比较完善,毕竟市面上已经出现了各式各样的插件. 本人也是初学者,在Revi ...
- Revit二次开发环境配置(Revit 2020 +Visual Studio 2019)
Revit二次开发环境搭建(Revit 2019+Visual Studio 2017)准备内容 Revit 2019开发环境的搭建,需要安装的内容如下: Revit 2019(主要的开发环境) Vi ...
- Revit二次开发之创建风管
在Revit中,风管用于连接管件,风道末端和机械设备,今天简单尝试了下使用RevitAPI创建风管,现分享下我的方法. 风管从类型上可分为三类:一般风管,软风管和风管占位符:从形状上也分为三类 ...
随机推荐
- 怎么判断innodb 日志缓冲区该设置为多大呢
怎么判断innodb 日志缓冲区该设置为多大呢
- kubernets之机理概览
一 了解kubernets的运行机理 1.1 了解架构 众所周知,kubernets的组成由2个部分组成 kubernets 平面 node节点 (工作节点) 控制平面的组成 etcd 分布 ...
- linux中进制转换
方式一:使用$[]或$(()) 格式为:$[base#number]或$((base#number)),其中base为进制,number为对应进制数. 这种方式输入2进制.16进制等,但只能输出为10 ...
- oracle常用hint添加
1.视图添加索引 /* Formatted on 2020/1/6 下午 04:46:37 (QP5 v5.163.1008.3004) */ SELECT /*+index(VIEW_NAME.TA ...
- 查看Java的汇编指令
在IDEA配置VM options,打印汇编指令 -XX:+UnlockDiagnosticVMOptions -XX:+PrintAssembly windows系统 下载插件 hsdis-amd6 ...
- typora+PicGo+gitee搭建免费的的床
一.gitee 1.第一步拥有自己的gitee账号 没有的可以自己去注册gitee地址 2.使用自己的gitee账号创建仓库 创建好之后注意 记住.com/以后的地址 此处就为y***L/photo- ...
- 1.8V转3V,1,8V转3.3V电源芯片的规格书参数
1.8V电平如何稳压稳定输出3V或者3.3V,就需要用到1.8V转3V,1,8V转3.3V电源芯片,就PW5100(低功耗,外围简单),PW5200A是可调输出电压,可以输出电压根据外围电阻来设置命令 ...
- 前端知识(二)03-Webpack-谷粒学院
目录 一.什么是Webpack 二.Webpack安装 1.全局安装 2.安装后查看版本号 三.创建项目 1.初始化项目 2.创建src文件夹 3.src下创建common.js 4.src下创建ut ...
- Excel导出中HttpServletResponse消息头参数设置
response.setCharacterEncoding("UTF-8"); //编码格式为UTF-8 response.setContentType("applica ...
- MySql(二)索引的设计与使用
MySql(二)索引的设计与使用 一.索引概述 二.设计索引的原则 三.BTREE索引与HASH索引 一.索引概述 所有Mysql列类型都可以被索引,对相关列使用索引时提高select操作性能的最佳途 ...