建筑业Revit二次开发技术研究进展

2021-02-28 12:08赵全斌王昌辉程浩
山东建筑大学学报 2021年1期
关键词:二次开发插件建模

赵全斌王昌辉程浩

(山东建筑大学 土木工程学院,山东 济南250101)

0 引言

建筑信息模型BIM(Building Information Modeling)技术以其可视化、参数化、协同效率高及对项目在全寿命周期中的优化作用得到广泛认可,近年来发展极其迅速[1]。BIM技术不仅在工民建、道路桥梁、设备机电等诸多项目中扮演着辅助的角色,并且在深化设计、碰撞优化等方面也发挥着举足轻重的作用。许多工程中以三维模型为基础,借助于BIM技术的可视化、精细化、信息化等特点,解决了诸多难题[2-4]。

Revit软件是为BIM而设计的一款平台级建模软件,具有强大的三维建模功能。其功能丰富,可以满足大多数情况如参数化建模、工程量统计、图纸绘制等的需求,并在国内外拥有大量的应用案例[5-8],但有些需要实现更多、更复杂功能的项目中,对Revit软件提出了更高要求。设计者需要利用二次开发工具,通过Revit软件提供的应用程序编程接口API(Application Programming Interface),自行开发所需的功能。

二次开发技术作为BIM学习与应用中的一个研究热点,具有积极的实用和理论价值,能够解决快速建模、信息管理以及数据交互等方面的一系列应用难题,从而提高工作效率、缩短工作周期,得到了建筑业研究者广泛关注。虽然很多BIM软件(如Tekla Structure、CATIA、SketchUp、Civil3D、SolidWorks等)都能实现自身的二次开发,可以应用到项目中并取得很好的效果。但是,Revit软件作为一款出色的平台级建模软件,其二次开发技术应用范围及应用价值更大。

1 Revit二次开发技术概述

1.1 Revit二次开发的概念与内涵

二次开发是指发现软件存在的问题后,有针对性地编写新的功能,并通过应用程序编程接口,将新程序载入到软件中,以丰富软件功能,达到预期目标。Revit二次开发所具有的丰富功能[9]见表1。

Revit API是Revit软件提供的应用程序编程接口,具有丰富的功能。开发者能够通过Revit API将其应用程序集成到Revit软件中,以扩展和增强Revit的功能和应用。Revit API允许开发者通过任何与.NET兼容的语言编程,这些语言有Visual Basic.NET、C#、C++、F#等。欧特克提供的.NET API类都位于Autodesk.Revit开头的命名空间中,其中常用的命名空间见表2[10]。

表2 常用的命名空间表

1.2 Revit二次开发工具

Revit API借助Microsoft Visual Studio平台,依托编程语言,进行Revit二次开发。Revit二次开发所需的条件包括:Revit软件、Microsoft Visual Studio、Revit SDK(Software Development Kit,软件开发工具)等。

Revit全系列产品均包含Revit API平台,随着Revit API的不断更新换代,Revit软件的功能拓展能力也越来越强。Microsoft Visual Studio是一套基于组件的软件开发工具,可用于构建功能强大、性能出众的应用程序。SDK包含Revit API开发手册“RevitAPI.chm”、Revit API示例“Samples文件夹”以及初学者需要阅读的入门文档。另外,SDK中提供的AddinManager.dll插件可以较为方便地加载二次开发程序。

1.3 Revit二次开发流程

Revit二次开发的流程主要包括:可行性分析、架构设计、编写代码、注册加载、调试等步骤[11]。

若通过Revit API访问和扩展Revit,开发者必须在自己开发的插件中继承Revit提供的特殊接口。Revit软件提供的外部程序实现接口有:外部命令(IExternalCommand)、外部应用(IExternalApplication)和数据库(Database)级别的外部应用(IExternalDBApplication)。其区别在于接口和重载的函数不同,启动方式也有所差别。如需在Revit中调用上述3种接口生成的插件,还应使用.addin文件对插件进行注册。

2 Revit二次开发技术研究

针对工程实际需求,设计者利用二次开发工具,通过Revit API自行开发所需功能,如快速建模、信息管理和数据交互等,以提升工作效率,全面满足项目需求。另外,由于目前还没有软件能独立实现BIM全生命周期信息管理和共享,API便成为打通各款软件实现数据交互的重要工具。

2.1 快速建模类

三维建模功能是Revit软件最重要的功能,决定了快速建模将成为Revit软件使用者最强烈的需求。通过Revit二次开发调用和创建参数来实现快速建模,是当前的研究热点,涉及土建、机电和其他等众多方向。

2.1.1 土建工程

土建工程中往往包含大量的重复建模,通过Revit二次开发,可以利用程序自动执行建模过程,从而实现快速建模。

(1)上部结构

在建筑专业中,赵全斌等[1]研究了异型玻璃纤维增强混凝土GRC(Glass fiber Reinforced Concrete)幕墙系统的深化设计建模;李畅等[12]开发了类WP多面体的参数化建模插件,为其他异型建筑建模提供了开发经验。对于结构专业,陆海燕等[13]研究了剪力墙边缘构件参数化设计,提出了一种基于BIM技术的剪力墙边缘构件参数化设计模型;张维锦等[14]总结出一种实现柱结构三维模型的快速生成方法。而朱爱民[15]借助于Revit API进行了脚手架程序开发,实现了脚手架专项工程安全计算和脚手架智能建模,在一定程度上解决了脚手架布置及计算困难的问题。在历史木屋文物保护方面,YANG等[16]研究开发一个以斜交梁框架为单元的木屋盖结构参数化建模工具,能够自动创建参数化梁单元,并通过严格的关系将它们连接在一起。同时,正在研究开发另一个快速建模插件,该插件可以通过Revit API从全站仪点和地面激光扫描数据中获取参数化光束模型,实现快速精确建模。

(2)基础

为实现基础的快速建模,孙昱等[17]基于Revit的二次开发实现了10 000余根地下锚杆的自动生成和长度统计;张维锦等[18]研究开发了一种能自动快速创建地下连续墙的程序。随着二次开发技术的发展,在实现基础建模的同时还能进行承载力计算,张维锦等[19]提出了一种基于Revit二次开发的桩基承台自动设计算法,提高了桩基工程建模效率和准确性,更加符合工程需要。

(3)钢结构

钢结构因其建模复杂而成为研究的重点。为解决轻钢龙骨建筑Revit建模复杂的问题,罗仲东等[20]研究了一种基于Revit的轻钢龙骨复合墙参数化建模插件。乔恩懋等[21]建立空间网架结构模型,在自动化快速建模的同时能够自动检查干涉和遗漏,提高了钢结构空间网架的建模效率;孟祥良等[22]基于Revit二次开发,编制了装配式钢结构在Revit软件环境下的校核一体化程序。

2.1.2 机电工程

Revit能够在三维视图中直观地进行机电设计,由此,机电设计的准确率得到明显提高。与建筑结构建模相比,机电建模更为复杂,且碰撞净高等方面要求更高。为更好地应对工程要求,减少建模员的工作量并提高建模效率,研究者对机电工程进行了相应的开发研究。

在电气系统中,钱海等[23]基于Revit二次开发,研究了电气设备族创建、编辑和统计的方法。对于消防喷淋系统,罗远峰[24]研究了一种将CAD喷淋图纸快速转换成三维模型的方法;张慎等[25]开发了基于Revit的建筑消防喷头辅助建模软件。在管道及支吊架系统中,马勇军等[26]借助Visual C++编程语言,通过二次开发在Revit中建立一个支吊架自动布设程序;潘洪洁等[27]基于Revit二次开发,研究了管道吊架参数化插件,提供了管道吊架布置功能和管道吊架校核功能;李亚克等[28]研究了通过Revit二次开发技术批量调整管道管径与坡度值的实现方式。

在城市基础设施的重要组成部分——地下管网方面,CHEN等[29]研究开发了一个利用Revit软件对地下管网进行有效建模的二次开发系统。该系统包括独立的管点和管段模型。通过Revit API,从管道数据库中提取管道点的空间位置和属性数据,并从管道数据库中提取相应的管道数据。之后,将自建管道模型库中的族插入到空间位置并添加属性数据,以此创建管道系统中的所有管道实例。模型库的扩展和快速建模使BIM技术在地下管网三维可视化中的应用更加方便。

2.1.3 其他工程

在桥梁工程中,重点解决各种桥梁形式的参数化建模问题。孙中秋等[30]对连续刚构桥梁结构形式及变化规律进行了研究,提出了基于Revit二次开发的连续刚构桥梁信息模型的参数化创建方法;杨玺[31]开发了斜拉桥建模程序,通过外部命令调用构件族来完成斜拉桥的建模工作;杜德润等[32]以悬索桥为研究对象,开发了实体及钢筋建模模块,并实现了自动建模、施工模拟、成本分析在BIM核心软件中集成。

在水利工程中,重点解决各类水利设施的参数化建模问题。丁大志等[33]从建模方面进行了二次开发研究,实现了桶式结构防波堤三维BIM设计模型的快速参数化建模;伍丹琪等[34]研究开发了一个泵站厂房上部建筑的参数化建模程序,解决了泵站厂房BIM设计建模的复杂问题。

2.2 信息管理类

Revit模型作为一种建筑信息模型,必须要顺利实现对模型信息和数据的提取和应用。Revit API提供提取和修改参数的功能,可实现设计阶段、施工阶段和运维阶段的信息管理等用途。

2.2.1 设计阶段管理

设计阶段信息管理最重要的是对工程量进行管理。工程量不能很好地获取且获取后难以应用,一直是BIM行业的一个痛点。我国当前有多种基于BIM技术的工程量计算方式以及BIM算量工具,裴艳等[35]通过分析我国当前基于BIM技术的工程量计算方式以及不同算量方式所使用的BIM算量工具,研究证实了基于BIM设计软件的二次开发算量软件在工程量计算中更具优势。针对相交构件工程量扣减和归并等关键问题,欧阳业伟[36]提出利用Revit二次开发提取模型数据的解决方法;史松峰等[37]基于Revit二次开发技术实现了变电站的BIM模型钢筋、混凝土、门窗等工程量的自动提取;康笑语[38]研究了装饰工程量计算实现方法;于鑫等[39]基于Revit的二次开发,得到了三维钢筋算量。

在设计阶段,还可以实现一些专业数据的计算,比如预制率、材料特性等。陈远等[40]研究了基于Revit模型的预制装配式混凝土建筑预制率计算方法;孙庆霞等[41]分析了基于Revit模型的被动式超低能耗绿色建筑外墙传热系数计算方法。

在搭建高质量模型过程中常涉及来自不同学科和背景的参与者。在整个过程中,设计建模人员的不同优先级通常会导致冲突,从而对项目结果产生负面影响。为了防止这种结果发生,需要有效地管理建模过程。YARMOHAMMADI等[42]提出了一种基于Revit API的解决方法,直接从BIM软件中实时自动收集详细的模型绘制数据,以及在设计开发阶段有效地计算衡量建模效率。这些指标可以用来合理安排建模团队,以搭建更高质量的建筑模型。

2.2.2 施工阶段管理

除了在设计阶段进行快速建模和工程量管理外,二次开发还可以在施工阶段通过搭建Revit模型管理平台,实现信息的管理。

杨静等[43]开发了计算机辅助塔机规划系统,解决了塔机型号管理、塔机数量预估及塔机布置与辅助定位等问题。牛文榀[44]利用二次开发工具,创建了深基坑“监测管理”等插件,实现了深基坑监测数据在BIM模型中的导入、计算和结果显示。陈威[45]研究了基于BIM模型的放样方法。李鑫等[46]基于Revit二次开发,研究了施工场地布置与优化技术。邓朗妮等[47]提出了基于Revit软件的施工安全管理模块。

在施工过程中,适当利用场外施工模拟技术,不仅可以提高可持续性,保证工人健康和安全,还可以大大加快施工进程,提高可交付成果的质量。SHARMA等[48]在工程原型的BIM模型中,利用已定义的关键参数,通过应用程序编程接口进行二次开发,实现以更符合施工场景的方式完成设计迭代,并以自动化方式运行优化。

2.2.3 运维阶段管理

通过建立运维管理插件,促进BIM技术在运维阶段的发展。郭思怡等[49]就建筑信息模型的轻量化进行研究,降低了使用过程中对硬件的要求,提高了Revit模型的普适性,为运维阶段的应用提供帮助。李明博等[50]研发了运营隧道病害检测结果三维可视化技术。石志道[51]提出了消防设施管理,实现了复杂建筑模型中消防设施信息的提取、消防管道的修改和重建。贺海建等[52]对某高铁站台大跨度空间钢结构健康监测及其预警系统进行了相关研究。王茹等[53]提出了装配式建筑质量信息模型概念,研究了装配式建筑质量控制监测。

在传统的索赔管理系统中,延期EOT(Extension of Time)索赔往往导致关键施工利益相关者之间的纠纷。将传统系统转移到数字环境中,有助于实现高效处理。ALI等[54]针对普遍存在的EOT索赔管理过程中的29个问题,使用Revit API开发一个基于BIM的索赔管理系统BIM-CMS来管理EOT索赔过程,在很大程度上可以作为解决大多数已确定问题的工具,同时还可缓解缔约方之间的潜在争端。

当前,虽然随着技术的不断提高,建筑物的能源效率也在逐渐提高,但居住者的行为在节能方面仍具有举足轻重的作用。为此,人们开发了许多生态反馈系统,通过影响居住者在建筑使用过程中的行为来减少建筑能耗。FRANCISCO等[55]利用BIM中的空间编码和颜色编码技术,提出了一种结合数字和美感的生态反馈信息表示方法。利用Revit API开发BIM集成能源可视化方法,允许用户通过竣工BIM模型中的颜色编码方案,直观比较多户建筑的二维和三维视图中的能源消耗值。

应用BIM技术从不同来源(BIM模型、传感器、资产数据库)收集信息供资产管理者和设施管理者使用,有助于保证信息和数据在移交阶段的可用性和可靠性。FARGHALY等[56]从资产管理的角度,研究探讨了资产所有者在运营维护阶段需求,综合其所需的非几何BIM数据,开发相关的分类法,并最终通过Revit API实现所提出的分类法。PÄRN等[57]从设施管理的角度,基于Revit API研究了最小化设施管理团队更新和维护BIM模型成本的方法。

2.3 数据交互类

仅靠Revit一款软件,无法实现BIM的全生命周期的数据信息管理,这就要求开发者对Revit进行二次开发,使Revit可以同更多的BIM软件进行数据交互。Revit作为一款平台级软件,可以实现数据的导入和导出。

2.3.1 外部数据导入Revit软件

将外部数据从其他软件导入到Revit,可以简化Revit建模的过程。马成等[58]研究了在Revit模型中读取CAD信息,并自动生成相应的轴网与轴网编号的方法。王建宇等[59]分析了在Revit中基于DWG二维图形的三维快速重建功能。徐迪等[60]展现了从PKPM模型到Revit模型的转换方法。

能源与环境设计先锋LEED(Leadership in Energy and Environmental Design)是全球公认的最受欢迎的绿色建筑标准之一。在LEED中,评估选址和交通对生态系统和人类生活的可持续影响是一项关键而艰巨的任务。与这些事项相关的分数需要根据经验耗费大量的时间和精力手动计算。为加强BIM在LEED认证中的应用,CHEN等[61]研究以Revit API和GoogleMaps API为开发工具,将BIM与Google地图等Web地图服务相结合,将外部的地图模型、位置信息、LEED分析标准等数据集成到Revit中的LEED-BIM插件,在Revit中实现LEED的位置分析和分数计算,简化了LEED中站点选址和交通分析的认证过程。

2.3.2 Revit数据导出到其他BIM软件

将Revit数据导出到其他BIM软件,多为结构分析软件,从而弥补Revit在结构分析方面的不足。针对复杂建筑结构在Ansys、Abaqus、Midas等有限元分析软件中建模困难、效率低下等问题,姚翔川等[62]研究了将Revit模型转换成Ansys数值计算模型的方法;宋杰等[63]研究了Revit与Ansys的结构模型转换接口;王玄玄等[64]开发了Revit-Abaqus模型转换接口,打通了Revit与Abaqus之间的数据壁垒,实现了Revit中复杂结构模型导入Abaqus进行精确的结构计算分析;董卯等[65]基于Revit二次开发技术,先获取Revit中桥梁模型所含的几何参数、弹性模量、泊松比、容重、密度、阻尼比等模型信息,再利用开发的MCT文件生成接口程序,实现模型由Revit到Midas的直接转换。

PKPM和YJK作为国内主要的结构分析软件,需要加强与Revit的协同应用。乔保娟[66]等在Revit平台下开发了PKPM与Revit双向数据接口软件,为PKPM和Revit的协同提供了解决方案。YJK软件具有企业自行开发的Revit模型转换接口。杨平[67]应用YJK官方的转换接口,将Revit的结构模型导入到YJK中,并对转换效果进行了研究分析。

2.4 工程应用案例

Revit二次开发应用于快速建模、信息管理以及数据交互,但要解决一个工程问题,往往需要综合这3个方面的内容,以实现解决方案的完整性。实际工程中,研究人员综合上述3个方面,在桩基设计计算的BIM应用及有限元分析[68]、基于BIM技术的桥梁工程参数化建模及二次开发应用研究[69]等方面进行了深入研究,提出了较为完整的解决方案。

(1)桩基设计计算的BIM应用及有限元分析解决方案

快速建模 开启Revit API的Transaction.Manual事务模式,使用Creat.NewFamilyInstance命令创建桩基。通过插件窗体中的ComboBox下拉列表选定所要创建的桩的类型,确定了基准面,在得到桩底和桩顶相对标高后,使用创建桩命令完成桩基的创建。

信息管理 通过读取CFG桩中的信息参数,判断CFG桩中的参数是否为需要选取的参数。将规范中的经验公式编写成代码,进行单桩承载力和复合地基承载力计算。在Revit模型中可以查看和修改CFG桩的数量、单桩体积、总体积以及承载力信息。

数据交互 将Revit模型利用ACIS中间文件导入Abaqus软件中进行结构分析。

(2)基于BIM技术的桥梁工程参数化建模及二次开发应用研究

快速建模 通过Revit提供IExternalApplication外部应用接口完成了对桥梁Ribbon界面的扩展,通过IExternalCommand外部命令接口完成对按钮控件功能的实现,外部命令通过按钮控件相关的继承自RibbonItemData配置类的API与按钮相关联起来。同时,使用二次开发完成拉伸、融合、旋转、放样和放样融合等操作,创建实体和剪切体,设置参照平面,并利用Document.FamilyCreate创建尺寸标注。

信息管理 利用RevitAPI中的FamilyManager.AddParameter等命令进行一般族参数、共享族参数和族类型参数等族参数的创建与设置。

数据交互 采用Com组件的方法进行二次开发,将明细表中的数据输出到Excel中。

3 展望

近年来,建筑业对于BIM技术的关注度逐年提高,而Revit软件作为一款出色的平台级BIM软件,其二次开发技术应用范围更广,应用价值更大。基于Revit二次开发的程序功能涵盖了快速建模、信息管理和数据交互等3个方面,但是受制于Revit数据框架和编程语言的掌握程度,开发者多为软件开发企业和高校科研团队。选择二次开发的研究方向,除了根据工程实际需要外,还可以基于前人已有的成果进行拓展研究。二次开发的成果是不断积累的,并最终逐步完善。

BIM技术有助于促进绿色建造和建筑业转型升级。主要表现为:(1)装配式建筑与BIM融合发展,实现产业链信息共享,推动装配式建筑智能升级;(2)应用BIM进行正向设计和正向项目管理,即直接在三维环境下进行模块化参数化设计、方案优化、自动出图、图纸与模型相互关联、与计算模型结合、同步优化等设计工作;(3)建筑垃圾减量化要求推进BIM技术在工程设计和施工中的应用以及推进功能模块和部品构件标准化。随着BIM技术的深入发展,建筑装配式、BIM正向设计与正向项目管理等实际应用提出更高的要求,因此,Revit二次开发具有广阔的应用前景。

猜你喜欢
二次开发插件建模
基于FLUENT的下击暴流三维风场建模
联想等效,拓展建模——以“带电小球在等效场中做圆周运动”为例
求距求值方程建模
自编插件完善App Inventor与乐高机器人通信
基于OSGi的军用指挥软件插件机制研究
浅谈Mastercam后处理器的二次开发
基于PSS/E的风电场建模与动态分析
例谈课本习题的“二次开发”
基于jQUerY的自定义插件开发
ANSYS Workbench二次开发在汽车稳定杆CAE分析中的应用