苗雨轩 姜 峰
(大连理工大学建设工程学部,辽宁 大连 116024)
BIM(Building Information Modeling)技术是一种以三维数字科技技术为基础,可应用于工程设计、施工、运营、管理等全生命周期的工具,因其具有可视化、协调性、信息化、可出图性、参数化性等特点,在提高生产效率、管理精细化、节约成本和缩短工期等方面发挥着重要作用[1]。Revit系列软件是专为建筑信息模型(BIM)构建的,集建筑、结构、水暖电等专业设计于一体,能有效避免数据传递过程中的丢失和错误,因此近年来备受工程设计人员青睐,然而目前对Revit进行的二次开发大多集中于上部结构。结构基础作为建筑结构的重要组成部分,相关参数化研究寥寥,而且现有Revit菜单栏里的基础板块也仅能生成简单模型,缺乏计算校核功能模块,无法直接配置钢筋;且其操作需逐步进行,繁琐又易出错。
本文将根据已有研究成果[2,3],以较常用的独立基础、条形基础及桩基础为代表分别进行模型生成、参数修改、计算校核及配筋插件设计,从而在Revit中形成专门的“结构基础”设计板块,可实现其建模、计算、配筋的一体化设计,提高基础工程设计效率。
本文基于Visual Studio 2019平台,使用C#语言,通过API接口对独立基础、条形基础以及桩基础的模型生成、参数修改、计算校核、配筋等功能进行扩展(见图1)。其相关流程如下[3-5]:
1)在Visual Studio 2019内创建相关C#类库项目。
2)为项目添加引用(如RevitAPI.dll,RevitAPIUI.dll等)。
3)在程序顶部添加命名空间(如Autodesk.Revit.UI,Autodesk.Revit.DB等)。
4)为程序添加属性(如Transaction等)。
5)实现IExternalCommand接口,重载Execute函数,通过外部命令扩展Revit功能。
6)实现IExternalApplication接口,重载OnStartup和OnShutdown函数,通过外部应用扩展Revit功能。
7)注册插件,可实现Revit启动时扩展功能的自动调用。
1)选择合适的族样板文件。Revit为用户提供了多种手动创建族文件的族样板,用户可根据族文件的特点选择具有相关功能的样板进行创建。如独立基础及桩基础在项目中“依点布置”,因此选择“公制结构基础”族样板;而条形基础在项目中“依线布置”,因此选择“基于线的公制常规模型”族样板。
2)创建参照面。
3)尺寸标注,添加实例参数。
4)选择合适的创建命令。Revit为用户提供了拉伸、融合、旋转、放样等多种操作命令,用户在勾勒轮廓时需与参照面一一锁定。
5)保存族文件至相关文件夹中。
Revit API中提供LoadFamily(String)方法可以将指定路径中的族文件载入到项目浏览器;同时提供NewFamilyInstance方法可以生成新的族实例。需注意的是NewFamilyInstance方法下有多个重载,载入不同类型的基础族文件时所用重载不同,如独立基础、桩基础采用第一形参为XYZ location的重载,而条形基础采用第一形参为Curve的重载。同时,在项目中添加窗体类可方便用户操作和选择,如图2~图4所示。
实际工程项目中,基础的截面尺寸受自身特定因素的影响往往与族文件最初设置的截面尺寸不同,这就需要对已载入的结构基础实例进行参数修改。在Revit自带的属性框中可以对选中的同类型基础实例同时进行参数修改,但其存在两个问题:一是在属性框中的参数标签名称并不能给用户明确直观的指向,在此直接进行参数修改容易混乱;二是当在此对批量同类型基础参数修改时操作较复杂,只能逐个点选要修改的基础而不能一次性框选,因为一旦框选进轴线等其他非基础元素,属性框将无法完成参数修改。为解决上述两个问题,需设计结构基础参数修改插件。
基础参数修改程序基本思路为:遍历项目里选中的全部元素,将其中的基础实例放入一个集合中;判断集合中的基础实例类型是否相同,不同类型的基础不可以同时修改参数;将集合中的基础类型名称传入窗体类显示相关窗体面板;用户输入要修改的参数值点击“修改”按钮将写入数据传入主程序;主程序将接收的参数值用Parameter.Set()方法赋给相应位置的参数,其中注意公英制尺寸间的转换。
依据《建筑地基基础设计规范》《混凝土结构设计规范》《建筑桩基技术规范》,可分别确定独立基础、条形基础及桩基础的计算校核内容,如独立基础需进行构造、埋深、高宽比、偏心距校核,地基、局部受压、受冲切、受剪承载力计算及抗弯计算;条形基础需进行构造、埋深、基底宽度、基础深度校核及地基承载力、最不利截面抗剪承载力及弯矩的计算[6];桩基础需进行桩顶竖向作用效应,单桩竖向承载力,基桩竖向承载力,承台受弯、受冲切、受剪计算[7]。
因为从Revit项目中仅能提取基础的截面尺寸参数,要完成上述计算校核的内容,还需要用户手动输入部分数据信息,因此我们应首先依据计算内容设置参数输入窗体,同时在主程序中通过实例化窗体类来获取由窗体属性传递的用户输入数据。依据规范对相应数据进行计算校核后,得出的结果文本应再通过窗体界面反馈给用户,可用RichTextBox控件承载主程序中得到的结果文本。
特别地,对于仅在底板进行配筋的基础形式,如墙下钢筋混凝土条形基础,其受力钢筋的计算结果可依据每米板宽内钢筋截面面积表,结合程序冒泡排序的方法,直接由程序给出最优方案,从而可在最大程度上实现基础配筋设计的自动化。
结合工程项目具体情况(钢筋牌号及混凝土强度等级),基础计算校核插件可算得其钢筋配置量As,从而据此选择符合规范要求的合适直径、间距的钢筋[8]进行绘制。这里涉及的钢筋主要含受力筋、分布筋、方形箍筋及螺旋箍筋。我们可用Revit API中的Rebar.CreateFromCurves()方法来绘制直线型钢筋;用Rebar.CreateFromRebarShape()方法绘制圆桩螺旋箍筋,其中的RebarShape参数需从Revit系统文件里载入螺旋箍筋的线型模型编辑使用[2]。
钢筋生成插件可实现依据用户输入的配筋信息在选中基础上批量生成钢筋的功能,但倘若用户因失误导致输入的配筋信息有误,则本次选中基础上生成的钢筋需全部删除重新生成。依据Revit软件中现存的功能,则需将该部分基础上的钢筋逐一选中删除(需避免框选进轴线等其他非钢筋元素),这样操作十分麻烦。因此在基础钢筋配置插件中设置删除功能,可将因输入错误配筋信息而生成的钢筋批量删除。该功能实现的主要思路为:汇集项目文件中全部钢筋元素,对这些钢筋元素逐一进行验证,倘若其宿主元素为选中的基础之一,则删除该钢筋。
某市一中学教学楼为砖混结构,其纵横墙共同承重,采用墙下钢筋混凝土条形基础形式。基础选用的混凝土强度等级为C25,钢筋级别为HPB300,受力筋保护层厚度为40 mm,室外基础埋深为1.6 m,室内基础埋深2.2 m。
建筑场地工程地质条件为:第①层为杂填土,厚1.0 m,容重为17 kN/m3;第②层为粉质黏土,厚5.0 m,容重为18.7 kN/m3;第③层为黏土,厚4.0 m,容重为18.0 kN/m3。基底持力层为第②层粉质黏土(IL=0.5,e=0.75),地基承载力特征值fak值为162.5 kPa。计算时基础与覆土平均容重取20 kN/m3,基底以下土容重为18.7 kN/m3,基底以上土平均容重为17.63 kN/m3。
在该项目中外纵墙0.49 m厚,承受上部竖向荷载Fk=230.9 kN/m;山墙0.49 m厚,Fk=272.1 kN/m;内纵墙0.37 m厚,Fk=301.1 kN/m;内横墙0.24 m厚,Fk=194.3 kN/m,暂不考虑水平荷载及弯矩影响。
启动Revit软件,新建项目;依据项目的平面图绘制结构基础的轴网;确定该项目基础形式后,在基础面板中找到条形基础“模型生成”按钮批量载入一种条基,这里选用板式坡形条基,其初始尺寸均为族文件尺寸,如图5所示。
对各条基依次进行计算校核,调整不符合要求的条基尺寸,得到项目模型如图6所示。因对各条基进行计算校核时操作过程类似,仅以山墙下条基为例展示。
选中山墙下条基输入相关参数(如图7所示)后,得到图8所示反馈结果:条基的基底宽度L1不满足要求,将其从1 800 mm改至1 900 mm;基础台阶外延宽度不满足要求,将基础顶面宽度L2由500 mm改至800 mm;同时为满足坡形条基坡度要求,将H2由200 mm改至150 mm。上述修改过程可通过选中该条基实例点“条形基础—参数修改”按钮完成,进而再次进行计算校核,得到反馈界面如图9所示,此时各项内容均满足要求。当计算校核不合格时需不断调整截面尺寸重新计算校核,直至反馈的各项指标均合格为止。
据条基“计算校核”插件反馈的配筋信息(如图9所示)进行钢筋参数输入(如图10所示),可分别绘制纵横向条基的钢筋。墙下条形基础板内钢筋分沿宽度方向的受力钢筋和沿长度方向的分布钢筋,由于墙下条形基础不是单根独立存在的,条基间总会存在拐角交叉、丁字交叉或十字交叉,因此其钢筋不能全部通长布置,分布钢筋在条基交叉部分自动截断,并与同向受力钢筋的搭接长度为150 mm。该配筋插件可为多条条基同时配筋,三维视图如图11所示。
本文介绍了Revit插件设计的基本流程,同时通过Revit API接口实现了独立基础、条形基础及桩基础三种结构基础形式在Revit软件中的模型生成、参数修改、计算校核及配筋等功能,方便用户依据项目特点快速选择相应基础形式进行一体化设计,提高了基础工程的设计、生产效率。本项研究为BIM技术在基础结构设计上的应用作了有益的探索,同时也为其他建筑结构形式基于Revit的二次开发提供了新思路。