Revit二次开发及其应用研究

2019-09-24 08:34
水电站设计 2019年3期
关键词:二次开发插件建模

王 增 竹

(中国电建集团成都勘测设计研究院有限公司,四川 成都 610072)

0 前 言

BIM(Building Information Modeling)技术由Autodesk公司在2002年率先提出,目前已经在全球范围内得到业界的广泛认可。它可以辅助实现建筑信息的集成,贯穿建筑的设计、施工、运行直至建筑全寿命周期的终结。它将各种信息始终整合于一个三维模型信息数据库中,设计团队、施工单位、设施运营部门和业主等各方人员可以基于BIM进行协同工作,有效提高工作效率,节省资源,降低成本,实现可持续发展。

BIM的核心是通过建立虚拟的建筑工程三维模型,利用数字化技术,为这个模型提供完整的、与实际情况一致的建筑工程信息库。该信息库不仅包含描述建筑物构件的几何信息、专业属性及状态信息,还包含了非构件对象(如空间、运动行为)的状态信息。借助这个包含建筑工程信息的三维模型,大大提高了建筑工程的信息集成化程度,从而为建筑工程项目的相关利益方提供一个工程信息交换和共享的平台。

Revit软件由Autodesk公司开发,是全球建筑市场上最常用的BIM(Building Information Modeling,建筑信息模型)软件平台。它可帮助建筑设计师设计、建造和维护质量更好、能效更高的建筑。其功能模块主要包括:建筑、结构、给排水和电气等专业模型的协同设计,功能强大[1]。Revit软件的优势有:

(1)参数式组件。使用智能型建筑组件提高设计准确性。

(2)双向关联性。在设计中的任何变更都会自动反映在整个模型中。

(3)工作共享。多个用户可同时处理相同的智能型建筑模型。

(4)施工建模。更深入了解建筑元素的可施工性。

Revit软件提供建筑生命周期中详尽的整合信息,以利于项目各参与方通过更精确的方式让设计可视化,更好地促进沟通和交流,进而提高设计效率、降低项目风险。随着BIM建筑信息模型概念的推广和落实,Revit越来越受到建筑工程业界的重视。

目前,Revit软件在我国应用方面做得不够全面,例如,软件内部的单位都是以英制来换算的,因此需要二次开发工作来满足本地化需求。

1 Revit二次开发

Revit软件提供了丰富易用的二次开发接口(Application Programming Interface,应用程序编程接口,简称API)。Revit软件自带的功能,可以满足大多数情况的需求,如碰撞检查、工程量统计等。但针对项目的特殊需求,如导出某类型窗的离地高度,就需要结合二次开发工作,自定义获得模型中的详细信息。此外,二次开发还能在软件功能的基础上,形成新的功能,如快速建模、批量修改等,以满足项目的特定需求,提升用户的工作效率。

Revit API通过连续不断地强化补充,已经逐渐变成了一个非常强大的体系。通过自主编程开发,用户可以实现软件界面中没有提供的功能。它提供的主要功能有:访问模型的图形数据;访问模型的参数数据;创建、修改、删除模型元素;创建插件UI进行增强;创建插件完成对重复自有工作的自动化;集成第三个程序;执行BIM分析等。用户自己开发的插件可以集成到软件界面中,方便调用,并且编译的DLL文件可以适用于多个Revit版本,通用性强。对于规律性强、数据量大的建模工作,利用Revit API二次开发,可以有效提升工作效率。

1.1 二次开发条件

Revit API借助Microsoft Visual Studio平台,依托C#、C++、VB.NET等语言,可满足多种开发需要。开发所需的条件包括:Revit软件、Revit SDK(Software Development Kit,软件开发工具)、Microsoft Visual Studio。Revit软件是开发功能实现和检验的载体。Revit SDK是软件安装包中自带的,可为开发者提供常用的二次开发命令,其中包含Add-in Manager加载插件和Lookup构件信息查看插件,能够有效提高开发效率。Microsoft Visual Studio是二次开发的平台,代码在此平台编写,通过Revit API在Revit内部进行编译,最后加载到Revit软件中实现相应的功能。

1.2 二次开发流程

Revit二次开发的流程如图1所示,主要包括:需求分析、模式设置、新建类、编写代码、编译、加载、调试等步骤。

需求分析。此步骤是对功能是否具备开发条件进行分析,二次开发的功能是在Revit自身功能之上的延伸,使软件中需要繁琐操作才能实现的功能,得以快速完成。

模式设置。选择外部命令(External Command)或者外部应用(External Application)方式来实现功能。两者的区别为:外部命令由用户点击按钮来启动命令,而外部应用在启动和关闭Revit.exe时自动执行。在实际开发中,外部命令最常用。

新建类。依据模式的不同,分别从IExternalCommand和IExternalApplication接口派生,重载相应方法。

编写代码。在Visual Studio中编写代码,这是二次开发的核心环节。在编写时可以参考SDK工具包中的代码样例。

编译和加载。编译代码,生成DLL文件,在Revit中借助Add-in Manager将DLL文件加载到软件中(见图2)。

调试。调试是开发工作的重要一环。编译后的代码,有时无法实现预定的功能,需要在软件中不断调试修改。对于外部命令和外部应用,要采用不同的调试方法。

图1 Revit二次开发的流程

图2 利用Add-In Manager将DLL文件加载到Revit中并实现

2 Revit二次开发的应用

2.1 快速建模

模型建立的工作量大而且比较琐碎,利用Revit二次开发工具,可以很大程度减少重复工作,提升建模效率,实现快速建模。目前市场上已经有很多Revit二次开发插件具备辅助快速建模的功能(见图3),如橄榄山、鸿业、建模大师等等。这些插件可以实现轴线生墙、轴线生梁、快速画柱等功能,提高建模效率。

市场上的插件大多是针对建筑项目的应用特点而研发的,除此之外,其他专业的项目人员也在开发相应的插件。丁建洋等[2]针对轨道交通工程设计专业多、模型复杂的特点,开发了轨道交通快速建模工具集,该工具集能够实现轨道交通专业的单体(如轨枕、支吊架等)的快速建模,在项目中取得了良好的应用效果。贾盈平[3]等开展了面向属性的参数化建模在Revit API中的应用,借助二次开发,只通过界面输入矢高、跨度和环数等结构参数即可以完成模型的快速建立,实现了三维模型的快速生成。

图3 橄榄山快速建模插件

2.2 辅助三维出图

三维出图是模型应用的重要方面,也是三维正向设计的成果体现。通过三维模型直接生成CAD图纸,可以直接利用模型信息,也方便后期的修改。但由于Revit的本地化工作还不够完善,在标注、明细表等方面还有优化的空间。

李昌华等[4]研究了Revit管线自动标注方法的实现,基于Revit管线批量自动标注的实际工程要求,针对不同的管线排布情况,开发了相应的管线自动标注功能。利用该功能可以简化标注操作,提高标注效率。陈剑佳等[5]研究了基于Revit 的梁平法快速成图方法及辅助软件,通过二次开发,添加配筋小标签、 链接配筋结果、集中标注所有跨梁、直接添加钢筋信息到梁实体图元中等,提出一种梁平法快速成图方法,能够满足设计中反复修改的需求。

2.3 满足项目的特定需求

在实际项目中,会遇到特殊的建模和应用需求,如特定功能的族的建立,特殊模型信息的批量导出等等。二次开发为满足项目的特定需求提供了良好的平台,通过开发可以实现建立复杂构件和导出特定信息等功能,提高模型建立和应用的效率。

陈庆军等[6]进行了基于Revit及Revit API的应县木塔建模研究,通过二次开发,快速并准确地建立了阶基、华拱、柱子、斗拱等特殊族,降低了斗拱创建的难度,为木塔的结构分析建立了基础。丁晓宇等[7]开展了基于Revit二次曲面网壳参数化建模的研究,使用C#编程语言和 API类库,开发出了单层二次曲面网壳结构的参数化设计插件,实现了二次曲面网壳结构在Revit视图中的自动生成。

3 结 语

BIM技术带来了建筑行业的新一轮变革。Revit软件是目前BIM技术的重要应用软件和平台,二次开发技术有利于Revit推广和应用,是实现功能本地化的重要工具。它可以大大提高模型建立的速度,提高协同设计效率,辅助三维出图,有利于满足项目的特定需要。二次开发具有一定的技术门槛,设计人员进行开发时需要先进行较长时间的学习;此外由于Revit软件的限制,二次开发成果的保护力度也不够,这些都在一定程度上限制了二次开发的应用。但随着国家对BIM技术的不断宣传和推广,我们相信,Revit二次开发技术将被更加广泛地应用。

猜你喜欢
二次开发插件建模
联想等效,拓展建模——以“带电小球在等效场中做圆周运动”为例
自编插件完善App Inventor与乐高机器人通信
西门子Operate高级编程的旋转坐标系二次开发
浅谈Mastercam后处理器的二次开发
基于PSS/E的风电场建模与动态分析
不对称半桥变换器的建模与仿真
西门子Easy Screen对倒棱机床界面二次开发
基于jQUerY的自定义插件开发
基于Revit MEP的插件制作探讨
ANSYS Workbench二次开发在汽车稳定杆CAE分析中的应用