Revit platform based automatic generation algorithm of wall model
-
摘要: 分析了施工图图元组成,通过过滤图层以及图元类型提取墙线图元信息;重点对重叠弧线进行分类并提出处理重叠线的方法;对表示弧形墙体的同心弧线进行分类,提出获取弧形墙中心线以及墙体厚度的方法。基于Revit平台,利用C#语言进行程序开发,实现墙体的自动生成,验证了算法的可行性,提高了墙体模型的建模效率及准确性,实现了墙体模型的三维重建。Abstract: This article analyzed the composition of construction drawing elements, and extracted the wall line element information by filtering layers and element types, focused on the classification of overlapping arcs and put forward the methods to deal with them, classified the concentric arcs representing the arc wall, and proposed a method to obtain the center line of the arc wall and the wall thickness. Based on the Revit platform, the article used the C # language for program development, and implemented the automatic generation of the wall, which verified the feasibility of the algorithm, at the same time,improved the efficiency and accuracy of the wall model modeling, and realized the 3D reconstruction of the wall model.
-
Keywords:
- 3D reconstruction /
- wall /
- overlapping line /
- arc wall /
- secondary development /
- automatic generation
-
目前,BIM技术在民用建筑、高速铁路、城市轨道交通等工程领域已经得到深度应用并且取得良好的效果,相对于传统的CAD技术,BIM技术以其出色的可视化、信息化水平赢得业界人士的广泛认可[1]。BIM技术的应用依赖于其精确的三维几何模型,虽然BIM建模软件较CAD具备强大的三维建模能力,但是依然不能满足工程技术人员对快速建立高精度三维几何模型的需求,同时,建立BIM几何模型的人力、时间成本也占据了整个BIM实施成本的大部分。因此,业界急需找到快速生成模型的方法将BIM技术人员从繁琐的三维建模任务中解放出来[2],从而将大部分精力投入到BIM应用中以发挥BIM技术真正的实力。
针对上述问题,通过分析轨道交通工程施工图墙体的表示方法,提出其自动生成算法,利用C#语言在Revit平台上进行二次开发,实现墙体的自动生成。上述算法和程序已经应用到城市轨道交通工程换乘通道弧形墙体及北京—张家口高速铁路(简称:京张高铁)电缆沟弧形墙体模型创建中,提高了建模效率及模型精确性的同时,验证了算法的可行性和准确性。
1 CAD图元信息识别
1.1 图元组成
图元是CAD操作和组成画面的最基本元素,在工程图纸中,常用的图元包括:点、直线、圆弧、曲线、椭圆等。CAD图是一种矢量图形文件,文件采用记录图形端点和向量的形式描述图形内容,具有无级缩放、不失真等特点,结构工程图纸中表示墙体的图元都是按照实际尺寸绘制并且用图层、线型等加以区分[3]。因此,可以通过图层区分各类图元进而读取相关图元矢量信息的方式在Revit中进行三维重建[4]。
1.2 图元过滤及几何信息提取
施工图中有表示墙体的平行双线图元及表示柱、梁、板等构件的图元,设计人员将表示不同构件的图元以不同的图层区分。因此,可以通过图元的图层信息过滤掉图纸中表示墙体之外的图元。表示结构墙体的图元一般包括直线、多段线、圆,Revit中分别以Line、PolyLine、Arc来表示以上图元。读取图元类型信息,将其按照Line、PolyLine、Arc分类储存于墙线链表中,Arc类型的弧形墙线储存于m_ArcList中。
2 墙体重叠线处理
CAD图纸中的图元经常会出现重叠的情况。图元重叠对于CAD出图没有任何影响,但对CAD图元的识别和三维重建造成的影响是致命的。如果不进行图元重叠处理,直接用这些图元生成墙,则会出现边界重叠、连接错误的墙体。因此,图元信息检索、储存之前要对这些重叠的图元进行分类处理,再计算得到墙中心线,进而生成墙以保证模型的准确性[5]。
利用CAD软件进行工程图纸绘制过程中,无论以何种方式绘制的圆弧,软件均能保留圆弧起点角度、圆弧圆心角度、圆心、半径等图元信息。圆弧起点角度以 x 轴正方向沿逆时针旋转为正,范围为0~2
$ {\text{π}} $ 。两圆弧重叠的前提条件是其圆心重合、半径相等。因此通过过滤、筛选出两条圆心重合、半径相等的圆弧作为待处理的重叠圆弧。读取圆弧起点角度∠XOB、圆心角∠BOE,并将∠XOE=∠XOB+∠BOE记做圆弧终点角度。通过两圆弧端点角度的几何关系可将两圆弧的重叠分为重合、重叠、包含及其他4种情况,针对不同情况采取相应的处理措施,最终实现图元的重叠处理。如图1所示,图1(a)所示为圆弧重合,图1(b)~(c)所示为圆弧重叠、图1(d)~(i)所示为圆弧包含。图1(j)表示经过重叠处理之后的圆弧。图中O、B、E分别表示圆弧的圆心、起点、终点。Arc1、Arc2表示下标为1、2的圆弧。
2.1 圆弧重合
两圆弧重合判断条件如下:
∠XOB1=∠XOB2,∠XOE1=∠XOE2,如 图1(a)所示。
针对上述圆弧重合情况,删除Arc2,留下Arc1作为图1(j)所示的Arc。
2.2 圆弧重叠
两圆弧重叠分为以下2种情况:
(1)∠XOB1<∠XOB2<∠XOE1<∠XOE2,如图1(b)所示。
(2)∠XOB2<∠XOB1<∠XOE2<∠XOE1,如图1(c)所示。
针对上述情况(1),删除Arc1、Arc2,以O为圆心,以B1、E2两点为端点绘制新的圆弧作为图1(j)所示的Arc;针对上述情况(2),删除Arc1、Arc2,以O为圆心,以B2、E1两点为端点绘制新的圆弧作为图1(j)所示的Arc。
2.3 圆弧包含
两圆弧重包含分为以下情况:
(1)∠XOB1≤∠XOB2<∠XOE2≤∠XOE1,等号不同时成立;如图1(d)、图1(e)、图1(f)所示。
(2)∠XOB2≤∠XOB1<∠XOE1≤∠XOE2,等号不同时成立;如图1(g)、图1(h)、图1(i)所示。
针对上述情况(1),删除Arc2,将Arc1作为图1(j)所示的Arc;针对上述情况(2),删除Arc1,将Arc2作为图1(j)所示的Arc。
2.4 其他
将不属于上述重合、重叠、包含的情况成为其他情况,针对此类情况不对相应弧线做任何处理,均将其作为单独的Arc。
综上所述,通过判断圆弧端点角度信息,将圆弧位置关系分为上述4种情况。对于两圆弧重合、包含的情况,均删除其中圆心角较小的圆弧,以圆心角较大的圆弧作为重叠处理后的圆弧Arc;对于两圆弧重叠的情况删除Arc1、Arc2,以O为圆心,以两圆弧起点角度较小的起点以及终点角度较大的终点为端点绘制新的圆弧作为重叠处理后的圆弧Arc[6];对于其他情况,不做任何处理,两圆弧都作为单独的Arc。将上述经重叠处理后的Arc替换墙线链表m_ArcList中原有的重叠墙线。
3 墙参数获取
3.1 墙厚、墙中心线的获取
识别用户选择的任意两条代表弧形墙的同心圆弧,读取圆弧半径并将半径之差作为墙体厚度W,然后遍历经过重叠处理的墙线,找到所有半径差为W的两条同心圆弧,根据其位置关系计算得到墙中心线。
平面图中半径不同的同心圆弧的位置关系有如图2所示的2(a)~(j)8种情况。图2中Arc1,Arc2表示筛选出的距离为W的两根弧形墙线,wallCenterArc表示处理后得到的弧形墙中心线。具体分类如下。
(1)∠XOB1=∠XOB2,∠XOE1=∠XOE2;如图2(a)所示。
(2)∠XOB2<∠XOB1<∠XOE2<∠XOE1;如图2(b)所示。
(3)∠XOB1<∠XOB2<∠XOE1<∠XOE2;如图2(c)所示。
(4)∠XOB2<∠XOB1<∠XOE1<∠XOE2;如图2(d)所示。
(5)∠XOB1=∠XOB2<∠XOE1<∠XOE2;如图2(e)所示。
(6)∠XOB1=∠XOB2<∠XOE2<∠XOE1;如图2(f)所示。
(7)∠XOB1<∠XOB2<∠XOE2<∠XOE1;如图2(g)所示。
(8)∠XOB1<∠XOB2<∠XOE1=∠XOE2;如图2(h)所示。
(9)∠XOB2<∠XOB1<∠XOE1=∠XOE2;如图2(i)所示。
(10)其他;如图2(j)所示。
针对上述情况(1)、(4)、(5)、(9),以O为圆心、∠XOB1和∠XOE1为起点和终点角度、Arc1、Arc2半径之和的一半为半径,绘制圆弧作为相应的墙中心线wallCenterArc;
针对上述情况(6)~(8),以O为圆心、∠XOB2和∠XOE2为起点和终点角度、Arc1、Arc2半径之和的一半为半径,绘制圆弧作为相应的墙中心线wallCenterArc;
针对上述情况(2),以O为圆心、∠XOB1和∠XOE2为起点和终点角度、Arc1、Arc2半径之和的一半为半径,绘制圆弧作为相应的墙中心线wallCenterArc;
针对上述情况(3),以O为圆心、∠XOB2和∠XOE1为端点,Arc1、Arc2半径之和的一半为半径,绘制圆弧作为相应的墙中心线wallCenterArc;
针对上述情况(10),不做任何处理。
删除利用其生成过墙中心线的部分,留下没有用过的部分,与其他圆弧循环对比,最终可以得到所有弧形墙体中心线[7]。
按照以上方式提取墙中心线后将圆心重合且有重合端点的墙中心线进行首尾排序之后再连接成整体,最终得到完整的弧形墙体中心线。
3.2 墙高、墙类型的获取
读取用户在交互界面中输入的墙高数据作为墙体高度。
墙属于系统族,因此墙类型不能直接重建,只能通过复制系统的墙类型建立。过滤出Revit所有内置的墙类型,如果没有合适的墙类型,程序将自动参照已有的墙类型创建厚度为W的新墙类型[8]。
4 墙体生成
循环对比经过重叠处理的圆弧墙线链表m_ArcList,找到所有半径差为墙厚W的同心圆弧,然后通过上述弧形墙中心线算法计算出所有厚度为W的弧型墙中心线,最后参照用户输入的墙高、墙类型,调用API创建墙函数批量生成所有厚度为W的墙。轨道交通工程中墙体包括侧墙以及内部的楼梯、房间墙等,墙厚度可能多种,通过上述操作可生成所有厚度的墙[9]。
5 测试
5.1 算法测试
针对本文所述算法,利用Visual Studio 2019开发工具以及C#语言,基于.NET平台编写程序[10]。处理重叠线段,通过相应算法获取墙中心线及墙体厚度,提取用户输入的墙高和墙类型生成弧形墙体。
5.2 程序测试
在Revit2018环境下运行上述程序,针对京张高铁八达岭长城站出入口通道施工图生成其弧形墙体模型,如图3所示。
轨道交通工程中普遍存在大量由圆弧墙体组成的电缆沟,利用程序生成京张高铁新保安变电所电缆沟模型,如图4所示。
本程序在京张高铁BIM建模过程中得到充分应用,提高了建模效率。与传统建模方式对比,利用本程序自动生成的弧形墙体模型及弧形电缆沟模型具有较高的模型精度,能够满足工程需求。此外,将程序稍加改动,通过调用Microstation API中的SweepProfileAlongPath()函数,即可在Bentley平台上实现墙体的自动生成。
6 结束语
综上所述,算法及程序可以显著提高建模效率,从而将BIM技术人员从繁琐的三维建模任务中解放出来,将大部分精力投入到BIM应用中以发挥BIM技术真正的实力。本文仅针对工程中常见的弧形墙体研究其自动生成算法,直形墙体、框架柱、围护桩、楼板及BIM构件属性信息的自动生成算法作者已在其他文章中阐述,后期将针对结构施工图中钢筋的三维重建研究其实现算法。
-
[1] 李姝君,匡思羽,邓雪原. 城市轨道交通BIM应用现状分析与展望 [J]. 都市快轨交通,2018,31(4):98-104. DOI: 10.3969/j.issn.1672-6073.2018.04.019 [2] 田明阳,曾 昊,曹 力. 基于BIM的铁路隧道辅助设计关键技术研究 [J]. 铁路计算机应用,2019,28(6):36-41. DOI: 10.3969/j.issn.1005-8451.2019.06.009 [3] 张 莹. 描述CAD图的元数据方案研究 [J]. 现代图书情报技术,2005(7):38-41. [4] 王 博. 基于Revit的地铁车站换乘通道结构模型自动生成算法研究[D]. 南昌: 华东交通大学, 2017. [5] 李泽宇,韩 峰. 基于Revit与Civil3D的桥轨一体化BIM建模方法研究 [J]. 铁路计算机应用,2018,27(5):43-47. DOI: 10.3969/j.issn.1005-8451.2018.05.010 [6] 裴世聪,韩 林,文长明. 空间任意圆弧插补算法的分析 [J]. 机械工程师,2017(7):45-46, 48. DOI: 10.3969/j.issn.1002-2333.2017.07.020 [7] 刘天宇, 章新华, 李 鹏, 等. 一种基于圆弧阵列的MVDR算法的应用[C]//中国声学学会. 中国声学学会2017年全国声学学术会议论文集. 北京: 中国声学学会, 2017. [8] 李海峰. 基于Revit参数化设计在实际项目中的应用[D]. 南昌: 南昌大学, 2019. [9] 王太阳. 基于CAD图纸的建筑物BIM模型重建方法研究 [J]. 城市住宅,2020,27(7):182-183. DOI: 10.3969/j.issn.1006-6659.2020.07.060 [10] Autodesk Asia Pte Ltd. Autodesk Revit 二次开发基础教程[M]. 上海: 同济大学出版社, 2015. -
期刊类型引用(2)
1. 王嘉祺. BIM-revit模型墙体建立方法探析——以某技术中心办公楼墙体为例. 安徽建筑. 2023(10): 96-97 . 百度学术
2. 朱未. 装配整体式框剪结构构件族深化设计的研究. 居舍. 2022(17): 101-104 . 百度学术
其他类型引用(2)