基于Revit 的地铁出入口快速建模方法
2022-05-20张维锦涂文斌
张维锦,周 瑾,涂文斌
(华东交通大学土木建筑学院,江西 南昌 330013)
Revit 是目前国内建筑领域应用最广泛的(building information model,BIM)软件之一[1],基于Revit 建立的三维模型, 运用BIM 技术的协同作用,可实现建筑、结构、设备(水暖电)等不同专业协同工作[2],减少由于不同专业软件导致重复翻模的缺陷;为BIM 技术应用于施工及后期运维管理方面的研究提供基础[3];并促进其全生命周期的协调管理[4]。同时Revit 为结构分析软件提供双向连接的可编程API 接口[5],但Revit 存在人工建模效率较低,涉及专业领域不全,且在地铁工程中的BIM 技术运用相对较少等缺陷[6]。许多学者对此进行Revit 二次开发[7],但目前还没有相关算法用于地铁出入口结构快速建模。 本文借助Revit API 中自带的相关函数,采用C# 开发平台进行Revit 二次开发[8]。 分析某工程地铁出入口的结构施工图,运用人工交互识别的方式拾取底板板顶基线进行存储,在设置的窗体中输入板厚及墙高设置偏移距离,建立底板与侧墙实体模型。 基于实体模型轮廓线,自动生成板与侧墙钢筋构造,并结合相关工程实例验证此算法对三维模型的建模效率。
1 地铁出入口建模过程
Revit 平台为用户进行二次开发提供了必要的帮助工具, 开发所需3 个基本要素:Visual Studio,Revit 以及Revit SDK[9]。 本文以Visual Studio 2015为开发平台, 使用的Revit 2018 所需架构为.Net Framework 4.5.2, 以Revit SDK 中所显示API 源代码作为基础进行本程序的算法编写。
1.1 建模难点
地铁出入口是地下空间与外部空间的唯一联系[10],其主体部分主要包括阶梯式通道、集水坑以及墙体等结构。 由于地铁工程一般位于市内,其周边环境复杂,所以需要解决本身地下结构问题[11],也需考虑与外部结构的关系,其建模本身就具有一定难度;运用Revit 进行手工建模时,会遇到Revit 族库中没有相应地铁族构件, 以及由于钢筋布置复杂,从而难以手工布置等难点。 总结实际地铁出入口施工图中结构纵断面图以及纵断面配筋图,并和传统的手工建模进行对比,见表1。
表1 不同建模方法对比Tab.1 Comparison of different modeling methods
1.2 建模流程
运用Revit 进行地铁出入口快速建模的二次开发过程总体思路是:将包含地铁出入口建模函数的动态加载库(dll)文件通过外部应用和外部命令程序加载到Revit 中[12],如图1 所示,分别通过外部应用程序开发的插件按钮和外部命令开发的主程序来创建功能扩展模块。 外部命令开发主程序包含地铁出入口底顶板、墙体以及钢筋的实现程序,为了方便快速生成, 使用外部应用, 设置由自己定制的Ribbon 控件包括建模以及钢筋生成两个面板,添加进Revit 的选项卡上, 点击则快速完成所需指定功能的生成。
图1 地铁出入口二次开发流程图Fig.1 Flow chart of the secondary development of subway entrances and exits
文中提到的数据符号类型所代表的含义如表2所示。
表2 数据符号类型的解释Tab.2 Interpretation of data symbol types
2 建模方法
地铁出入口主要由底、 顶板以及侧墙组成[13]。底、顶板创建方式基本相同,由于底板形式更为复杂,此处以介绍底板步骤为主。 通过C#中WinForm界面创建总窗体,自动生成底板与侧墙。 具体生成思路为:由板顶基线生成底板以及集水坑,建模完成后基于模型的实体几何信息形成钢筋定位线并生成钢筋, 通过拾取板顶基线并偏移侧墙高度,形成侧墙与侧墙钢筋。
2.1 人工交互方式建立底板
2.1.1 底板建模
运用人工交互的方式,先手工提取底或顶板基线,根据弹出窗体设置相关参数确定对边的板边界线,再连成封闭轮廓线生成实体模型。
1) 人工拾取底、顶板边界线。 使用拾取模型线命令拾取底板板顶基线生成板底边界,得到模型线如图2 所示,并保存在链表myCurve 中。
图2 人工提取底板部分边界线图Fig.2 The boundary line map of the bottom plate extracting
拾取完毕后,弹出总窗体,输入板参数、板钢筋及侧墙参数。 在“板参数设置”中输入各段板厚实现模型线的偏移, 将各段偏移线交点保存在pointList中,生成板底边界如图3,实现模型线按照不同板厚偏移。
图3 偏移后模型线图Fig.3 Model line diagram after offsetting
2) 生成板剖面封闭模型线与三维实体模型。Revit 中仅封闭模型线才能创建实体模型[14]。由于底板处通常存在集水坑,且底板板厚不同,所以按不同段号线段分别形成封闭轮廓线,如图4 所示形成6 个封闭多边形。 按照“板参数设置”输入板宽参数进行拉伸,成功生成底板拉伸实体模型,并对其赋予相应混凝土材质,使外观更为贴合实际。
图4 板剖面封闭轮廓线Fig.4 Closed contour line of plate profile
2.1.2 集水坑自动布置
一般情况下地铁出入口在图5 所示板3 右上或右下角位置处设置集水坑。由板3 处结点按照集水坑的长度与宽度(L×b)尺寸参数存储新的结点并连成闭合轮廓线。 使用Family Item Factory 类依照闭合矩形轮廓线创建空心拉伸实体,拉伸高度即为集水坑深度(h),在板3 中空心形状如图6 所示。通过空心拉伸实体的顶点外扩板2 的厚度,存储结点连接成封闭轮廓线并生成拉伸实体,运用图元连接的方式保证板2与集水坑侧板形成整体。
图5 板平面封闭轮廓线Fig.5 The closed contour line of the floor plane
图6 创建空心拉伸图Fig.6 Diagram for creating a hollow stretch
2.1.3 板钢筋的创建
地铁出入口板钢筋形式较为复杂,具体处理难点包括:板的拐点处钢筋需做断开锚固处理,集水坑处存在异形板的钢筋处理以及集水坑处侧板与底板钢筋需做弯折锚固处理。
1) 生成纵向钢筋定位线。 纵向钢筋定位线以板底、板顶基线创建。 将图3 中底板板底、板顶基线向内偏移p+1/2d(p 为钢筋保护层厚度,d 为钢筋直径),便得到顶、底面钢筋定位线。
2) 纵向钢筋的锚固处理。 顶部纵筋、底部纵筋需在如图7(c)所示A 处、B 处断开锚固处理,判断方法:如图7(a)在图7(c)A 处,1,2,3 点坐标分别为(x1,y1),(x2,y2),(x3,y3),按其走向计算1,2,3 三点围成的面积为
图7 纵向钢筋定位线图Fig.7 Longitudinal reinforcement positioning line diagram
1,2,3 逆时针走向时图7(a)S>0,顺时针走向时图7(b)S<0。顶部钢筋生成:按其定位线从起点开始,分别计算各拐点S(起、终点不判断),当S>0 为负, 则断开并把该点前后线段分别延伸到板底基线,并按板底基线方向延伸一个锚固长,得到第一根钢筋,当拐点处S>0 时不断;同理底部钢筋遇拐点处S>0 断开、S<0 不断,见图7(c)所示。
提取已伸出线段的端点沿与此平面的平行向量平移相应钢筋锚固长度得到新的点, 进行存储连成线段,则为锚固处理。 图8 为纵向线段锚固处理图。
图8 纵向钢筋锚固处理图Fig.8 Anchorage treatment diagram of longitudinal steel bars
3) 由钢筋信息生成纵横向钢筋。在总窗体中“板钢筋”处分别输入竖直两侧板、集水坑侧板以及底板的钢筋形式。 设置的钢筋形式如C18@150,将“@,C,/”进行字符串分解,例如C 表示钢筋类型、@表示钢筋间距,将钢筋间距参数存储于spaList 链表中。同时需要考虑系统族是否与图纸钢筋尺寸相互对应,若不对应,则需要修改其钢筋属性生成新的钢筋类型。生成钢筋后,将钢筋分区段进行阵列,运用存储在链表spaList 中的钢筋间距进行阵列, 设置钢筋为三维可视化,调整视图范围,实现板纵向钢筋三维模型图,图9 为底板部分板块的纵横向钢筋模型。
图9 部分横纵向钢筋三维模型图Fig.9 Partial 3D model of transverse and longitudinal steel bars
4) 生成集水坑钢筋。集水坑底板底部钢筋弯折到四周侧板,如图10(a),底板顶部锚固到四周侧板,四周侧板坑内侧分别锚固到坑底板及板3,其中与板2 合并的侧板为倒L 形,坑内侧钢筋由板顶部钢筋线段1 生成,板顶部钢筋线段1 在直角拐角处工程做法可断开各自锚入对方, 坑侧壁还能布置内、外侧纵筋的拉筋,拉筋布置范围为坑内侧,按梅花形布置,图10(b)~图10(c)为集水坑侧壁部分钢筋三维模型。
图10 集水坑处钢筋三维模型Fig.10 Three-dimensional model of steel bars at the sump
2.2 侧墙生成算法
在Revit 中墙、门、窗均为系统族,系统族用户不能自行创建[15],但可以进行复制修改,运用Revit自带的墙类型以及Wall Create Method 方法, 依照底板标高确定墙的标高。 过滤获取底板上表面与底板前侧面的全部线段存储在集合中,排查出相同线段并偏移,偏移的距离即侧墙高度,窗体中添加的高度“5 600/5 500/550”,对于有集水坑一侧的侧墙,底边轮廓线为集水坑底板上表面基线。 将所有线段连成封闭墙体轮廓线, 选择Revit 项目中某一种墙类型,快速生成墙实例,并由墙体轮廓线生成钢筋定位线,进一步生成墙体钢筋。 如图11 所示为基于底板生成侧墙三维模型。
图11 底板与侧墙三维模型Fig.11 Three-dimensional model of base plate and side wall
2.3 顶板生成算法
顶板与底板生成方式基本相同, 生成底板后,将隐藏的CAD 图形设置为可见, 仍采用人工交互的方式按照上述方式依次实现,最终生成顶板三维模型并载入Revit 项目中。
3 功能面板与工程实例
3.1 生成地铁出入口功能面板
Revit 提供用户制定自定义Ribbon 界面[16],通过自定义按钮可避免每次执行程序都通过附加模块的外部工具进行加载。 在后台算法编译完成并且程序能成功实现后,按照地铁出入口功能需求,在建模中的“底板与侧墙”以及生成钢筋中的“底板与侧墙”分别设置下拉按钮,在建模中设置“生成顶板”,在生成钢筋中设置“顶板钢筋”“取消显示”“显示钢筋”按钮,并在按钮完成后添加相应的图标,此处图标像素为32×32。
3.2 工程实例
图12 为某工程实例的地铁出入口结构纵断面图(截取部分),以此图纸为例验证本文提供的程序有效性。
图12 结构纵断面图(单位:mm)Fig.12 Structural longitudinal section view(Unit:mm)
链接CAD 导入图纸, 人工交互提取底板边界线,点击“底板与侧墙”的下拉按钮生成底板,点击钢筋按钮生成纵横向钢筋, 再生成墙体以及墙钢筋,点击生成顶板与顶板钢筋。 最后生成的地铁出入口三维模型如图13 所示。
图13 地铁出入口三维模型Fig.13 Three-dimensional model of subway entrance and exit
4 结论
运用Revit 软件进行二次开发, 对地铁出入口进行快速建模,三维模型的效果可为地铁工程后期施工的可视化处理以及运营维护提供基础。 基于Revit 的地铁出入口快速建模方法步骤如下。
1) 基于CAD 图纸使用人工交互方式拾取基线,运用C#中WinForm 界面创建总窗体,在总窗体中输入相关参数,开发出地铁出入口快速建模方法。
2) 在总窗体中输入相应钢筋信息,实现地铁出入口实体模型中底板纵横向钢筋、集水坑板钢筋自动布置及相应的锚固处理方法。
3) 将此程序整合对Revit 进行地铁出入口Ribbon 界面设计, 并通过工程实例成功生成验证了其可行性。
综上所述,此插件相较于传统手工建模的方式极大地提升了建模效率,但对于部分图纸中底板有竖板支撑的生成以及细部构造中的不同形式钢筋构造自动生成还需进一步研究。