Revit二次开发实战速成
Revit 研发最佳实践
冯金志
橄榄山BIM软件研发副总
橄榄山与中国培训网联合举办2016, 北京
© 2013 Autodesk
关于培训者
冯金志
1989,毕业于武汉大学土木工程学院.土木工程、计算机科学与技术双学位
1989-2000,北京勘测设计研究院从事设计工作,10年设计经验。
2000-2016,北京理正软件股份有限公司,历任产品研发经理、建设软件开发部主
任、 BIM软件开发部主任、理正研发技术总监,16年软件研发经验。
2016.7,加盟橄榄山,任研发副总
长期致力于土木工程与计算机软件交叉领域研究,具备丰富的行业软件研发经验。
精通AutoCAD 、Revit研发,熟悉Civil3D 、NavisWorks 、Inventor研发,研发软
件涵盖了C/S桌面、B/S网站等.
© 2016 橄榄山软件
内容概述
如何快速学习Revit开发
Revit开发细节考虑
Revit开发进阶之路
如何提高解决问题能力
进一步学习内容
© 2016 橄榄山软件
如何快速学习Revit开发
英语不好怎么办?
Revit 高版本支持多语言,通过快捷方式--秒变英文版
“D:\Revit2016\Revit 2016\Revit.exe” /language CHS --简体中文
“D:\Revit2016\Revit 2016\Revit.exe ”/language ENU –-英文
Revit 自带资料
(1) 联机帮助,联网情况下,按F1键,调出帮助文档,
http://help.autodesk.com/view/RVT/2015/CHS/
(2) Revit SDK
RevitAPI.chm 重点阅读
Sample文件夹下例子重点研究
先看 SamplesIndex.htm
将例子运行起来,有个直观概念
研究相关代码
© 2016 橄榄山软件
如何快速学习Revit开发
几个重要网址,时常关注
叶老师博客 我爱Revit
http://blog.csdn.net/JoeXiongjin/article/details/6175505
Autodesk jeremy tammik 博客
http://thebuildingcoder.typepad.com/
Autodesk 全球社区
http://forums.autodesk.com/
© 2016 橄榄山软件
Revit开发细节考虑
1:Revit 软件与 API 关系
API以插件方式与Revit.exe处于同一进程,API提供功能一
般不能超越软件本身提供功能,不要试图用API去“创新”新功
能,以下功能只提供API:
扩展存储,DirectShape
Revit API 适合做什么?
批量操作
本地化应用
© 2016 橄榄山软件
2. Revit插件运行不能太慢,尤其是对大模型
为何要关注速度?
Revit模型大,操作速度不是很快,所以需要特别注意插
件编写的性能
一些Revit API的操作比较费时间(牵一发而动全身),在
程序里可能会在循环中大量频繁的调用操作费时间的API
若用户操作一个普通命令需要5分钟才能完成,软件就失
去用户和市场!
为何会陷入程序速度陷阱
1. 只考虑到程序功能的实现。以为程序执行速度很快。
2. 研发测试时,用一个很小的模型来测试。看不出速度问
题
3. 没有为程序性能考虑的习惯
© 2016 橄榄山软件
2.如何加快软件的运行速度
1. 在满足功能的前提下,尽可能的少使用Revit的
API函数。
2. 尽量在完成任务后,及时退出For循环。不要做
一些完全无用的循环
Break
3.在性能要求高的地方,尽可能减少对模型的操作
和对C#的控件的大量操作。(表格排序的例子)
4. 使用大模型来测试程序,容易发现性能问题
5. 程序运行速度这个要点常记,在计划程序的编
写的时候,常常考虑如何避免不必要的执行步骤
© 2016 橄榄山软件