基于CAD图纸快速创建BIM模型的应用研究
2021-04-12王俊博漆丽英
王俊博 张 宇 漆丽英
(1.北京理正股份有限公司,北京 100044;2.交通运输部科学研究院,北京 100029)
引言
CAD技术将建筑师、工程师们从手工绘图推向计算机辅助制图,实现了工程设计领域的第一次信息革命[1]。从CAD技术普及以来,设计成果一般都是CAD图纸形式表达。但是近些年来,随着建筑的复杂程度日益增加,专业间的配合更加紧密。传统的平面图式的专业配合已经无法满足日益繁复的设计任务要求。究其原因,传统的二维CAD图纸存在的根本性问题是,我们原本的设计方式就是“反建筑”的,因为建筑是立体的三维的,用二维的图纸无法事无巨细地完美表达真实的三维建筑。
为了解决传统CAD技术存在的瓶颈与问题,BIM技术应运而生,BIM技术的诞生和使用被誉为建筑行业的第二次技术革命[1],它将多专业分别分步的绘图方式转换为共同绘图,把传统的二维空间模式转换为三维空间,更加具有立体感。BIM设计相对于CAD二维设计,具有无可比拟优势,具体表现在:可视化设计,便于业主决策,减少项目返工[2]; 各专业协同设计,大幅度减少设计错误,提高设计质量[3]; 可解决机电管道打架老大难问题[4]。项目通过引入BIM技术,可大幅提高设计质量,降低项目建造成本[5]。因此, BIM已成为建筑行业发展方向。
采用BIM的首要任务是建立BIM模型,BIM建模目前有两条技术路线:一条是BIM正向设计,就是项目从草图设计阶段至交付阶段全部过程都是由BIM三维模型完成,设计图纸是三维模型投影得到的衍生品[6]; 另一条是BIM翻模,就是先完成施工图,然后根据施工图再建立三维模型[7]。目前,限于BIM技术发展的现状和设计人员掌握BIM技术的程度,BIM正向设计的全面推行将是一个漫长的过程,在这个过渡过程中,BIM正向设计和BIM翻模两种技术路线将长期并存[8]。BIM翻模主要应用在设计阶段还是采用传统的CAD 图纸,在施工、运维阶段想应用BIM做深化设计与管理[9],或者是存量建筑的BIM化[10],CIM(City Information Modeling)的数据快速积累等场景[11]。现阶段多数设计人员进行BIM翻模还处于手工阶段,存在大量的繁重的重复性工作。BIM建模效率低下成为其推广使用最大障碍之一,如何提高BIM建模效率是当前急需解决问题之一。现在市面上众多BIM软件中,其中要数Aulodesk Revit系列软件可扩展性最好,应用程序接口较为完善。理正BIM翻模软件基于Revit平台二次开发,实现从CAD图纸到Revit快速翻模。
1 技术实现方案及原则
1.1 实现方案
为了让用户翻模过程更顺畅更便捷,本插件采用在Revit直接链接CAD图纸进行翻模的方式。翻模过程主要分为两步,第一步从链接的CAD图纸二维图元中识别出要翻模的建筑构件,第二步将识别出的建筑构件生成Revit相应三维实体,识别与生成部分通过外部xml文件进行数据传递。理正BIM翻模软件包括建筑翻模、结构翻模、喷淋系统翻模,水管翻模,风管翻模,桥架翻模等。本文将仅以土建的建筑翻模和机电的喷淋系统翻模为例说明具体实现过程。
1.2 原则
广泛适应性:对CAD图纸不作特别要求,确保插件具备广泛的适应性。
准确性与效率:将翻模准确性放在第一位,在满足准确性前提下,尽可能提高翻模效率。
易用性:插件操作力求简单,便于上手。
1.3 开发环境及模块划分
本插件基于Revit 2016-2018版本,主要开发工具Visual Studio 2012。识别部分由于需要调用CAD二次开发包ObjectARX SDK中一些函数来提取dwg文件中相关信息,采用C++语言编写,该模块命名为LZCADModel.dll。生成部分及界面开发选择Revit二次开发推荐的C#语言编写,该模块命名为LZ.BIM.Model.dll。为了让C#编写的界面模块可以直接调用C++语言编译生成的LZCADModel.dll中的类,采用托管C++技术对LZCADModel.dll模块中的类进行封装,该模块命名为LZRevitCadTrans.dll。插件主要由上面的3个DLL模块组成。
2 建筑翻模
2.1 界面设计
建筑翻模界面如图1所示,界面划分为两部分,上半部分为识别相关内容,主要是确定各种构件所在的CAD图层,下半部分为生成相关内容,主要是确定各类构件在Revit中对应的族及在垂直方向上的位置。
图1 建筑翻模界面
2.2 核心识别算法
首先从轴线及轴号、墙边线、门窗及门窗编号、柱边线图层中提取各类CAD图元,并根据图层进行分类。然后对各类构件,调用各自特有的识别规则进行识别匹配。各类构件具体识别规则与算法如下:
1)轴线支持直线和弧线,识别出轴线后,要从轴线延长线上顺藤摸瓜地根据轴号引线找到轴圈,进而找到轴线编号;
2)墙线支持直线和弧线,从墙线图层上提取出直线和弧线后,要进行双线匹配,双线匹配要用到翻模界面上设置的“最大墙宽”;
3)门窗必须为图块,识别出门窗图块后,要与门窗编号进行匹配,这个匹配要用到翻模界面上设置的“门窗编号与门窗之间距离”这个参数,门还会识别出门的开启方向;
4)柱子支持图块和非图块,但要求必须有封闭边线,支持圆柱、方柱和异形柱。
2.3 数据交换格式
识别模块会将识别结果存储在xml文件中,以便生成模块读取来构建三维模型,各类构件主要存储内容如下:
1)轴线会记录识别出多少根轴线,每根轴线是直线还是弧线,直线会记录起点和终点,弧线会记录圆心、半径、起始角度、终止角度,还会记录轴号,及哪侧轴号显示;
2)墙体会根据墙厚进行分类,然后记录每面墙的墙类型编号,墙也会分为直线和弧线,直线会记录起点和终点,弧线会记录圆心、半径、起始角度、终止角度,每面墙还记录了墙宽;
3)门窗会根据编号进行分类,并记录该类别的门窗宽度、高度,然后记录每个门窗属于哪个类型和具体位置;
4)柱子会根据形状尺寸进行分类,方柱会记录长度、宽度,圆柱会记录半径,然后记录每个柱子属于哪个类型和柱子的中心位置。
2.4 生成部分核心算法
读取识别生成的xml和界面上用户交互输入的相关参数生成Revit中相应建筑构件。各类构件具体生成算法如下:
1)根据识别出的轴线的起点、终点、轴号,生成轴线;
2)根据识别出的墙线起点、终点、墙宽,及界面设置的墙类型、墙顶标高、墙底标高,生成墙体;
3)根据识别出的柱子几何形状尺寸及界面设置的族名称,生成柱子;
4)根据识别出的门宽、门高、门编号及界面设置的族名称,生成门;
5)根据识别出的窗宽度、窗高度及界面设置的窗台高,族名称,生成窗。
2.5 建筑翻模样例
下面为某办公楼建筑局部翻模效果,图2是该建筑标准层CAD图纸,图3是该建筑标准层在Revit中翻模生成的相应建筑模型(未经过手工修改)。
图2 建筑CAD图纸图
图3 Revit中翻模生成的相应建筑模型(未经过手工修改)
3 喷淋翻模
3.1 界面设计
喷漆翻模界面如图4所示,界面划分为两部分,上半部分为识别相关内容,主要是确定管道及管径标注、喷头所在的CAD图层,下半部分为生成相关内容,主要是确定喷头族和管道、喷头的高度。
图4 喷淋翻模界面
3.2 核心识别算法
首先从管道及管径标注、喷头图层中提取CAD图元,然后识别出首尾相联的喷淋系统,每个系统会形成一棵从树根(系统入口点)到树叶(喷头)的树状结构,然后开始对每根管道与管径标注进行匹配。
3.3 数据交换格式
识别结果会输出到在xml文件中,以便生成模块读取来构建三维模型,各类构件主要存储内容如下:
1)管道会记录起点、终点,管径;
2)喷头会记录喷头位置。
3.4 生成部分核心算法
读取识别生成的xml和界面上用户交互输入的相关参数生成Revit中喷淋系统。具体生成算法如下:
1)根据识别出的管道起点、终点、管径和界面设置的管道类型、高度在对应位置生成管道,并对相连管道,自动生成弯头、三通、四通、变径等相应连接件;
2)根据识别出的喷头平面位置和界面设置喷头类型、高度在对应位置生成喷头,并自动生成短立管与系统连接。
3.5 喷淋翻模样例
下面为某建筑喷淋系统翻模效果,图5是该喷淋系统CAD图纸,图6是在Revit中翻模生成的相应喷淋系统模型(未经过手工修改)。
图5 喷淋系统CAD图纸
图6 Revit中翻模生成的相应喷淋系统模型(未经过手工修改)
4 插件实际使用情况
经用户实际验证,对于建筑翻模准确率在98%以上,喷淋翻模的准确率在99%以上。翻模效率相比手工翻模更是几十倍的效率提升。对于建筑翻模,一个10万m210栋楼的小区的建筑模型,一个熟练的Revit建模人员加班加点至少也要花半个月的时间,但通过翻模插件只需要半天的时间就可以完成。对于喷淋翻模,一个1万多m2的地库有1 000个喷头的喷淋系统,普通建模人员手工建模可能要花上一两天的时间,通过喷淋翻模只需要几分钟的时间就可以完成。
5 结论
BIM技术的全面应用,将使建筑设计乃至整个工程的质量和效率显著提高,已逐渐成为业界共识[12]。但BIM技术的推广与应用不可能一蹴而就,需要建设单位,设计院,施工单位,监理单位,运维企业等各方的协作推进,还需要配套软件、国家配套标准及管理模式逐步完善,才能比较顺畅地全面推行,这个过程将是比较漫长的[13]。总之,现阶段用Revit完全取代CAD进行BIM正向设计还不现实,对于采用BIM翻模的项目又面临手工建模效率低下、工作量大等问题,严重阻碍BIM技术发展[14],通过开发Revit二次插件是提高建模效率较为可行方法之一[15]。
本文阐述了通过Revit二次开发插件直接翻模构建三维模型的方法,避免了手工建模的繁琐重复性工作。实践表明,插件具有广泛适应性,可大大提高CAD图纸到Revit模型的转换效率,翻模准确率也高达98%以上。插件利用Revit二次开发突破BIM发展瓶颈做了一些尝试及实践,取得了较好效果,但是即使翻模准确率达到98%以上,还是会有部分构件存在翻模错误的问题,用户检查模型将会是一件非常头疼的事情,插件虽然在错误提示方面做了很多工作,但还不能保证所有翻模错误全部能提示出来,在这方面还有待加强。
通过开发BIM配套软件,来降低BIM技术的推广应用门槛,是推动BIM发展的有效途径,值得建筑行业广大从业人员和软件企业共同研究及探讨。