(郑州大学土木工程学院,郑州 450001)
装配式建筑将工地作业为主的建造方式改变为工厂制造为主。与传统建筑工艺相比,装配式建筑能缩短工期,提升建筑质量,节约资源,保护环境,实现建筑业的可持续发展[1]。2016年9月《国务院办公厅关于大力发展装配式建筑的指导意见》明确要求,推动建造创新,落实绿色发展理念,大力发展装配式混凝土建筑和钢结构建筑,不断提高装配式建筑在新建建筑中的比例。
BIM(Building Information Modeling建筑信息模型)是以工程项目各阶段数据信息为基础建立的建筑模型,能真实集成反应项目中有关信息。其具有可视化,协同性等特点[2]。装配式建筑的强调各个环节部件的协调,BIM平台能有效提高装配式建筑在设计,制作,安装等方面的效率[3],甚至可以利用BIM技术优化整个项目,促进装配式建筑的发展。
目前,装配式建筑与BIM技术结合应用还处于探索研究阶段。基于BIM技术解决装配式混凝土建筑建设的维护管理问题,可以有效减少施工过程的返工[4]。参考计算机集成制造系统,基于BIM的装配式建筑集成建造系统框架理论的提出对提高装配式建筑信息化,提高构件生产率方面具有重要意义[1]。3D激光扫描技术和BIM技术结合,能实现自动检查预制构件的尺寸质量[5]。应用BIM软件建立预制梁柱的连接节点,可以设计符合规范要求的预制抗震框架模型,从而建立PC构件结构系统库[6]。基于BIM平台对装配式建筑协同设计减少设计师重复工作,提高工作效率[7]。
综上所述,结合BIM技术实现预制构件工程量的自动统计和预制率的自动计算问题还有待研究,而预制率是衡量装配式建筑重要指标,因此研究自动提取构件工程量,计算预制率十分有必要。
预制率是衡量装配式建筑的重要指标之一,也是政府制定装配式建筑扶持政策的主要依据指标。同时预制率的高低也直接影响工程成本,通过对不同预制装配率工程成本量化分析,预制装配式建筑的经济预制率在46%~65%之间[8]。因此,预制率是装配式建筑实施时首先要考虑的指标。
然而,在预制率计算方面还存在一些问题。传统计算方法根据图纸尺寸手工计算预制构件混凝土量。计算过程复杂,计算效率低下,计算结果不准确。建筑信息模型BIM技术的出现为解决装配式建筑预制率的自动计算提供了强大的技术支持。但是仅仅建立装配式建筑的BIM模型,利用建模软件的自身功能,还很难实现工程量的自动统计和预制率的自动计算。Revit作为主流的BIM建模软件之一,其内部包含功能丰富的API(Application Programming Interface 应用程序接口),通过对Revit的二次开发,Revit使用者可以根据需要进行功能拓展,满足不同的设计和施工需求。因此,利用Revit平台的二次开发功能,解决基于BIM模型的预制装配式混凝土建筑预制构件工程量的自动统计和预制率的自动计算,是本文研究的重点。
本文通过BIM建模软件——Revit建立装配式建筑BIM模型,基于Revit二次开发,研究利用模型里的信息,统计各类预制构件的工程量,从而设定计算规则,计算项目中各类构件预制率,解决手工计算复杂,效率低,结果不准确的问题,实现准确快速计算的目的。通过不同构件预制率的动态选择组合,可以估算建设成本,进而选择成本可接受增幅范围内的预制方案,增加经济效益。
Revit软件为建模工作提供了很好的功能支持,可以快速高效创建三维模型,并且模型中包含丰富的数据信息,包括模型几何尺寸、标高、材质、类型等等。Autodesk公司为Revit软件提供了API接口,可以通过API编程直接读取到这些信息。因此,本文的开发思路及目标是,研究通过BIM模型,设定过滤规则,统计模型中各类预制构件的工程量,获取现浇混凝土构件的工程量,从而设定计算规则,实现装配式建筑预制率的自动计算。
此次开发是基于Revit 2016版本,主要开发工具有VisualStudio 2015、RevitSDK(SoftwareDevelopmentKit软件开发工具包)、RevitLookup等。其中采用VisualStudio 2015开发环境来编写程序代码,RevitSDK里包含RevitAPI帮助文档以及一些源代码的实例,RevitLookup用来直观看到模型中构件的API。具体开发步骤如图1所示。
图1 程序开发流程
Revit二次开发有两种开发模式,一种是通过外部命令(IExternal Command),另一种是外部应用(IExternalApplication)。IExternalCommand是用户扩展Revit时必须在外部命令中实现的接口,这个接口只有一个抽象函数Excute(),通过重载这个函数来实现外部命令[9]。IExternalApplication接口有OnStartup和OnShutdown两个抽象函数,它们是在Revit启动和关闭时候定制所需要的功能。这两种模式在开发前首先要引用RevitAPI.DLL和RevitAPIUI.DLL两个接口装配文件。本文采用添加外部命令的方式,编写好程序生成DLL文件,通过AddInMangaer加载DLL文件运行程序。
本文采用的计算规则是根据国标中的计算方法[10],基于Revit二次开发,快速准确获取混凝土体积,用室外地坪以上预制构件混凝土体积除以混凝土总体积计算得出预制率。
根据预制率的计算规则,要计算预制率需要获得两个主要参数,一个是预制混凝土体积,另一个是现浇混凝土体积。其中,预制混凝土体积通过过滤规则获取构件模型的内置体积参数得到。现浇混凝土体积除了通过项目中的构件模型得到,还有一部分通过比例得出。对于预制叠合楼板,其厚度一般为60mm,现浇部分为70mm厚,因此楼板的现浇体积为预制叠合楼板体积乘以系数13/6。
为了查看各类构件的预制体积和预制率,预制混凝土体积应分构件类型分别获取。在RevitAPI中,有两种方式访问对象。对于系统族,如Wall,Floor,Opening等,通过过滤其类名可以获得对象。对于柱子,梁等构件,没有专门的类来表示,他们都是FamilyInatance的实例,可以通过内置参数过滤。在Revit中系统族不能自建族,因而本项目预制墙、预制楼板、洞口等都是通过新建常规模型来建立的,他们也属于FamilyInstance,通过过滤其内置参数获取对象。创建预制构件必须满足一定的命名规则,这样才能设置过滤规则访问对应的构件参数。根据国家建筑标准设计图集15J939-1中的示例四,总结出一套预制构件命名规则,见表1。
表1预制构件建模规则
(1)预制混凝土体积获取
预制构件有预制外墙、预制内墙、预制楼板、预制阳台板、预制空调板等,这些构件均通过新建常规模型这个族样板文件来建立。获取这些预制构件体积的过程如下:
1)创建收集器,访问项目中所有对象,收集器创建首先声明实例化FilteredElementCollector这个类。调用快捷函数OfClass()快速过滤出项目中的族类别。通过调用名称属性判断,过滤出所有预制构件。具体代码如图2所示。
2)预制外墙名称中含有“WQ”,内墙含有“NQ”,楼板含有“DB”,通过名称的判断将不同种类的构件分别放在不同的集合里。如图3所示,预制外墙的过滤方法是先获取项目中外墙的族类型,然后通过LIMQ语句过滤该类型下所有实例并存放于相应集合中。
图2 过滤项目预制构件方法
图3 获取预制外墙的方法
3)预制构件的体积通过获取实例的内置参数获取。这样需要注意的是,Revit软件后台操作的单位是英尺,因此体积参数的值因乘以304.83转换为立方米。代码如图4所示。
图4 计算构件体积的方法
4)获取构件体积后,通过调用属性获取每个构件的名称、数量等。最后这些数据信息设置为dataGridView这个控件的数据源,显示在列表里。
5)现浇混凝土构件体积获取
现浇构件包括墙体,预制叠合板上的现浇部分,梁,楼梯休息平台楼板的现浇部分,节点处的现浇。墙体、楼板、节点处的现浇体积采用和上述相似过程,得出构件的体积。预制叠合板和梁的现浇体积,分别是预制叠合板体积和预制内墙体积乘以对应的系数获得。
图5 PC建筑预制率分析软件界面
6)计算各类构件预制率
各类构件的预制率为该类的预制体积除以预制构件体积和现浇构件体积之和,总预制率为选择采取预制的构件预制率之和。
创建窗体,将各类构件的名称、体积等信息在窗体中显示。前面提到,Excute()函数有三个参数的重载,创建窗体执行Revit命令,必须要先传递这三个参数。首先,在Excute()函数中声明并实例化窗体,设置窗体显示,然后,在Form1中生成构造函数即可。窗体的设计中,用到Button,Label,CheckBox等多种控件,需要在每个控件的事件里编写代码实现软件功能。软件界面如图5所示。
本项目采用国家建筑标准设计图集15J939-1中的示例四,根据上述建模规则和示例四的构件详图,分别建立各类构件的BIM模型。然后将构件的模型组装成示例四标准层BIM模型,见图6。运行Revit软件,通过外部工具中的AddInMangaer加载插件的DLL文件,即可运行此预制率计算软件。如图6所示,点击不同的选项卡,可以分开显示各类预制构件的工程量清单。右边可以动态计算预制率,通过勾选不同的构件,实现自动计算出该类构件的预制体积和预制率,并且下面动态显示已勾选构件的预制体积和预制率。
示例四项目地上21层,五层及以上为装配式混凝土剪力墙结构,五层以下是现浇混凝土剪力墙结构。为验证插件的可靠性,选择建立了标准层BIM模型,通过此预制率计算插件计算示例四标准层预制率,与标准图集预制率结果对比,从而验证此插件计算的准确性。当标准层中的外墙、内墙、楼板、楼梯均采取预制方式时,通过插件计算得出标准层预制率为60.84%,如图7所示。标准图集中给出,此项目标准层预制率为60.81%,两者相差1%,误差在可接受范围内。在导出选项卡里,可以将项目中的预制构件信息导出到Excel。
图6 示例四标准层BIM模型
图7 导出Excel预制构件清单工程量
Revit是主要的BIM应用软件之一,但目前应用水平多停留在建模应用。基于Revit软件,通过API对其进行所需功能的开发,有助于发掘BIM技术更深层次的应用。本文以国家建筑标准设计图集15J939-1中的示例四为例,建立构件BIM模型,进而组装项目标准层BIM模型,结合BIM软件Revit的二次开发技术,开发出一款预制装配式建筑预制率分析软件,实现快速统计项目各类预制构件体积,计算预制率的功能,提高工作效率,动态显示预制不同构件对应的预制率,进而为确定预制方案提供决策依据。