沈 立 森
(石家庄职业技术学院 建筑工程系,河北 石家庄 050081)
装配式建筑的工程成本一直是生产企业关注的焦点.预制构件作为装配式建筑的基本单元,其工程量与工程成本有直接关系.因此,准确计算预制构件的工程量便成为装配式建筑工程成本控制的关键.随着国家对装配式建筑的大力推广,特别是BIM(建筑信息模型)技术的出现,极大地促进了装配式建筑行业的发展,研究人员对装配式建筑的工程量进行了研究,如文献[1]对轻型装配式建筑的建模规则进行了研究,利用自主研发的外部模块导出了构件的工程量信息;文献[2]通过BIM软件,对装配式建筑的自动化算量进行了研究;文献[3]通过建立BIM模型,基于Revit的二次开发,实现了构件工程量的自动提取;文献[4]通过BIM技术对节点的结构体系、协同设计、工程量统计、施工模拟等进行了设计与优化.利用BIM技术,通过相关软件进行装配式建筑工程量的统计具有一定的可行性,虽然这比人工手算方法具有明显的优势,但仍存在很多缺点,比如钢筋模型的绘制不仅工作量大,建模过程复杂,效率低,而且对计算机的配置要求较高,在大体量的BIM建模过程中经常出现卡顿现象;建立模型需要专业人员参与,而工程量统计的准确性在很大程度上依赖于建模的精度.因此,研究一种简单、实用、精确的装配式建筑构件工程量统计方法尤为必要.本文以石家庄职业技术学院与河北丽建丽筑集成房屋有限公司合作研发的全装配预制混凝土模块建筑体系(以下简称“LZPC建筑体系”)为基础,阐述该体系的构件分类和特点,介绍工程量统计软件的总体设计方案、构件布置原理和工程量统计方法,从而避开BIM模型建立的复杂过程,减小模型绘制的工作量,为装配式建筑的成本控制提供数据支持.
LZPC建筑体系具有模数化特点,通过不同种类构件的自由组合,可形成多样化、个性化的装配式建筑户型.由该体系建造而成的“鹿港壹号院”(河北雪龙机械制造有限公司投资,清华大学建筑设计研究院规划设计,河北丽建丽筑集成房屋有限公司生产、建造、运营的绿色建筑园区,由6种国内领先的建筑体系建造而成的5栋新中式别墅和雨水花园节能体系构成,采用全装配预制混凝土、装配式混凝土复合墙、轻钢结构、预制混凝土空心模剪力墙、预制轻混凝土承重凹槽大板等不同的新型建筑结构体系技术建设而成,并配备了完善的地源热泵及新风系统)6#楼首层模型见图1.
图1 “鹿港壹号院”6#楼首层模型
LZPC建筑体系的构件共分4类,分别为梁、楼板、墙体和构造柱,各类构件均包含多种尺寸规格,具体情况见表1.
表1 LZPC建筑体系的构件分类
进行工程量统计软件设计时,以LZPC建筑体系为基础,以梁施工布置图为依据,提取梁线的起止坐标,利用AutoCAD绘图工具和VB(Visual Basic的简写)编程设计语言,结合构件的模数化特点与数量关系,完成各类构件的布置和工程量的统计.
软件由1个主界面和两个附属界面组成.主界面可通过Show方法调用附属界面,主界面包括主窗口、菜单栏和工具栏,见图2.附属界面由定义门、定义窗组成,见图3.
图2 软件主界面截图
图3 软件附属界面截图
软件提供自由选择布置功能,以方便对各种构件进行自由组合.例如,软件在生成楼板后,默认为横向布置(这显然不符合工程实际),楼梯间的某些部位无需布置楼板.因此,增加了楼板删除和方向切换功能,以方便选择和布置构件.
对不满足模数化特点的构件(如角梁、构造柱、梁盖板等)可利用数量关系计算得出其总数量.例如,两根直梁交点位置必然存在一根角梁,直梁与角梁连接处又必然存在一对梁盖板,角梁下方必然存在一根构造柱等等.因此,此类构件不需要布置,仅通过数量关系计算即可得出结果.
对于只能在特定区域放置的构件,可通过区域识别代码,自动判断是否满足放置要求,例如,门窗必须依附墙体才能放置,因此,只有当门窗位于墙体范围内时才可放置.
4.1.1 获取数据
以“鹿港壹号院”6#楼首层为例来进行分析.对梁施工图中的梁线进行筛选,利用AutoCAD中“工具”的“数据提取”功能,在选择特性中勾选端点X、端点Y、起点X和起点Y这4个选项,以Excel形式导出坐标点数据,梁线坐标数据见图4.
图4 梁线坐标数据表截图
4.1.2 设置VB环境
进行VB环境设置时,首先,点击“工程”的“引用”命令,勾选Microsoft Excel 16.0 Object Library选项;其次,在代码窗口的通用对象中声明Application对象、Workbook对象和Worksheet对象;再次,使用Set语句连接数据表[5].
4.1.3 布置梁
首先,声明全局变量MaxLXrow,获取梁线总数,即数据表文件的最大行数减1,代码为MaxLXrow =LXapp.ActiveSheet.UsedRange.Rows.Count-1;其次,声明动态数组X1(i),Y1(i),X2(i),Y2(i)用于储存梁线的起止点坐标值;再次,在PictureBox控件P1中使用Line方法绘制梁线,设置前景色为红色,代码为P1.Line(X1(i),Y1(i))-(X2(i),Y2(i)),RGB(255,0,0),BF.
绘制完成后的梁线见图5.
图5 绘制完成后的梁线分区截图
4.2.1 设定分区
楼板布置方向分为横向和纵向两种.为区分各区域楼板的布置方向,利用位于梁线交点处的构造柱对各楼板布置范围进行分区设定,分区示意图见图6.
图6 绘制完成后的梁线分区示意图
使用For…Next循环语句遍历梁线起止坐标值,将各梁线交点坐标值赋予构造柱坐标数组GZ(i,j),则横向构造柱数量GZNX可表示为UBound(GZ,1),纵向构造柱数量GZNY可表示为UBound(GZ,2),根据分区设定方法可知,总分区数可表示为(GZNX-1)×(GZNY-1).
4.2.2 生成楼板
根据不同的布置方式分别计算楼板的数量,在VB环境中,整形变量BQSX(横向布置楼板总数)和BQSY(纵向布置楼板总数)可分别按式(1)、式(2)计算.
BQSX=
(1)
BQSY=
(2)
使用VB中Controls.Add方法动态添加Shape控件数组,代码为Set BX(i) = Controls.Add("VB.Shape","BX" & i,P1).对各楼板的Left属性、Top属性、Width属性、Height属性和Visible属性等全部进行赋值,即可生成全部楼板.其中,横向楼板布置图见图7.
图7 横向楼板布置截图
4.2.3 删除楼板和楼板方向切换
当楼板需要删除时,只需选中待删除的楼板,点击“删除板”命令,楼板就会自动隐藏;当楼板方向需要切换时,只需选中分区内任意一块楼板,点击“切换方向”,原方向的楼板会隐藏,切换方向后的楼板就会显示出来.修改后的楼板布置图见图8.
图8 修改后的楼板布置截图
4.3.1 区域识别
由于门窗洞口必须依附于墙体构件,通过区域识别,自动判别门窗洞口是否超出墙体范围.当超出墙体范围时,将无法布置.但此时尚未布置墙体构件,无法通过代码判定,需对墙体范围进行转化.在该体系中,墙体全部位于梁构件的下方,因此,利用梁的范围来代替墙体的范围具备逻辑可行性.
4.3.2 布置门窗洞口
门窗洞口的布置方法具有相似性,以布置横向窗为例,首先,在窗体上布置Shape控件,其名称属性为Shp1;将窗宽尺寸赋予Width属性.其次,在MouseMove事件中获取光标位置,并与Left属性、Top属性建立联系,确定Shp1控件的位置和尺寸,实现控件随光标实时移动,代码为Shp1.Left=X-Shp1.Width/2,Shp1.Top=Y+Shp1.Height/2.再次,在通用区声明NewC()动态Object数组(待布置的窗洞口),在MouseDown事件中,使用ReDim Preserve方法重新分配数组空间,并通过区域识别方法判断窗洞口位置是否满足布置条件.当满足布置条件时,NewC()控件可见,其Width属性、Height属性、Left属性、Top属性的布置与Shp1的布置相同.完成后的门窗洞口见图9.
图9 门窗洞口布置截图
4.3.3 删除门窗洞口
为防止布置出多余的门窗洞口,通过Controls.Remove方法为软件设置了删除功能.点击门窗洞口对应的删除命令后,将光标移至多余的门窗洞口位置,单击即可删除.
5.1.1 直梁
梁构件统计应以数据表为基础,梁净长为起止点的坐标差减去120(构造柱的宽度).梁净长是指两根构造柱的边缘距离,而不是中心间距,因此相当于两根构造柱中心间距减去一根构造柱的边长(即2个构造柱的半个边长),构造柱边长为120.以L1800梁为例,在VB环境中,声明以SL18表示1800 mm梁数量的全局整形变量,通过遍历数据表,当梁净长等于1800时,SL18进行累加,实现L1800梁的统计,代码如下:
SL18=0
For i=1 To MaxLXrow
ZL(i)=(X1(i)-X2(i))+(Y1(i)-Y2(i))
If ZL(i)-120=1800 Then SL18=SL18+1
Next
5.1.2 角梁
角梁作为连接构件,位于直梁的交点位置.统计前,应根据角梁所连接的直梁的数量和位置关系进行区分,对不同类型角梁分别进行统计.角梁类型区分流程图见图10.
图10 角梁类型区分流程
5.1.3 梁盖板
梁盖板分为梁外盖板和梁内盖板2种,通常以成对形式布置于直梁两端,因此,其数量为直梁数量的两倍,可用2×MaxLXrow表示.
由表1可知,构造柱类型只有1种.从图1可知,构造柱为角梁的竖向支撑构件.因此,其总数量与角梁总数量相同.
楼板构件是否需要统计取决于Visible属性,该属性分为True和False两种,只有当Visible属性为True时,才需进行统计.以B1800楼板为例,先声明以B1800全局变量表示该类型楼板的数量,再使用If…Then语句对Visible属性进行判断,当Visible为True时,其数目递加求和.
墙体构件包括3种:普通墙、带门墙和带窗墙,均符合模数化特点,其墙体宽度总和与梁总长相同.由于墙体数量较多,布置工作量较大,因此通过梁与墙之间的数量关系,对墙体构件数量进行统计.首先定义3种类型的墙宽数组Q(i),QM(i)和QC(i),其中Q(i)=900 mm.QM(i)=1800 mm.QC(i)的取值分两种情况:当900 mm≤洞口宽度<1800 mm时,QC(i)=1800 mm;当1800 mm≤洞口宽度<2700 mm时,QC(i)=2700 mm.因此,梁与墙的数量关系可表示为:
(3)
简化后得:
(4)
公式(4)中,NQ为普通墙的数量;NQM为带门墙的数量,与门的数量相同;NCM为带窗墙的数量,与窗的数量相同.
梁总长可通过ZL(i)依次求和计算,由此可知,只有NQ一个未知量,可表示为:
(5)
各类型构件的工程量统计采用上述算法后,可通过“统计”命令,将统计明细以Excel文件形式自动导出,结果见表2.
表2 “鹿港壹号院”6号楼首层各构件统计明细表
本文利用VB编程设计语言,以“鹿港壹号院”6#楼项目为例,设计了装配式建筑构件工程量统计软件,编写了梁、楼板、墙体和构造柱等4类构件的工程量算法程序,实现了装配式建筑的工程量统计功能,操作简便,功能实用,结果精确,可为其他类似工程提供参考.但该软件仍存在不足,例如无法对各类构件间连接螺栓的类型和数量进行统计,原因在于连接螺栓种类多,极易出现漏算和重算,因此,还需对该算法进行优化,为该软件的进一步应用及推广提供技术保障.