APP下载

基于Civil3D的BIM路线全自动识别与生成技术

2019-04-11徐小奇黄晓明

山西建筑 2019年5期
关键词:中线路线线段

徐小奇 黄晓明

(东南大学交通学院,江苏 南京 211189)

近年来,BIM技术在道路设计,施工,运营等项目中应用越来越多。然而对于已建成的老路建立BIM模型进行信息化管理的需求往往被忽略了。一个主要原因就是根据二维CAD图纸手动重新建立三维模型的工作量过于庞杂,费时费力,很难大规模快速建立公路网络的BIM信息体系。这也是道路BIM系统推广困难的原因之一。而通过对BIM软件平台进行二次开发,使其能够自动完成二维CAD图纸的识别并自动建立BIM模型,将会是一个极为有效的解决办法。

Civil3D是Autodesk公司根据专业需求在AutoCAD软件的基础上升级开发的道路基建BIM三维设计软件。由于其本身集成了AutoCAD在内,可以很好地在同一个软件系统内完成.dwg格式图纸的识别与BIM三维模型的生成。本文将探讨通过二次开发Civil3D软件,实现道路路线的全自动识别与建模的技术。

1 开发环境

由于AutoCAD是1982年开发的计算机辅助设计软件,在当时的环境下并没有考虑三维设计的需求而且数据结构也比较老旧繁杂。Civil3D重新设计了能够存储更多信息且更为简洁明了的数据库体系。本程序需要完成道路平纵线形信息从CAD数据库到Civil3D数据库的传递,就需要同时调用两者的文档管理器。所以为了程序的统一性开发环境需要同时满足CAD与Civil3D二次开发的需求。选用目前主流的.net API作为软件开发接口。开发语言选用C#.net。

2 程序运行流程

本程序是作为一个插件运行在Civil3D软件的基础上的,总共建立了三个模块,分别是数据采集模块,数据处理模块,自动建模模块。

数据采集模块通过直接读取.dwg图纸文件获取各种图形参数。获取到的大量图形参数在数据处理模块中筛选分类并运算处理后,得到需要的道路平纵线形参数。有了必要的参数,通过自动建模模块就可以直接在Civil3D中建立路线模型。Civil3D中的道路是一个整体的对象,本模块的作用就是在道路对象中写入平纵线型的数据。

3 数据采集模块

本程序以广吉高速吉水支线中K4+500~K6+500一段作为范例。

首先遍历块表内的所有块表记录,找到所有属性为line的对象,输出所有Object id。根据Object id查询所有线段的起终点坐标,颜色和所属图层。将所有起终点的坐标进行对比,坐标相同的,记录所属线段。起终点之一有重合的线段两两之间必然是相连的。将相连的线段作为一组存储各端点的坐标,这样可以有效减少输出的数据量的大小。记录颜色则是为判断道路中线提供判断依据。

遍历所有文本对象,寻找字段含有字段“k xx+xxx”的对象。有该字段的对象即可确定为是桩号文本。

由于纵断面图中,为了方便人眼识图,点线坐标与实际坐标无关,竖向比例比水平比例也有放大10倍。从曲线的图形参数上很难获取道路竖曲线真实的参数。然而纵断面图中有如图1所示的详细文本说明来描述竖曲线的各项参数,通过读取相关文本,即可以方便地获得。所以在该部分,主要的功能就是采集所有纵断面图中文本的内容与该文本的坐标。

4 数据处理模块

对于采集到的大量数据,需要进行处理才能获得最终的平曲线与竖曲线的图形参数。

4.1 平曲线数据处理

平曲线数据处理的第一步就是要找出道路中线所属的多段线。虽然线段已经按所属多段线分组存储,但是数量依然十分庞大。在这些多段线中有用于标注的,属于支路、涵道等其他设施与道路结构的。道路中线仅仅是其中的一条多段线。所以首先要缩小判断的范围。

本程序使用的判断条件是长度与颜色。首先,绘制的CAD设计图中,道路中线的颜色必然是与其他所有线条不一样的。本例道路中线使用很深的灰色来表示的。采集到的数据显示该颜色编号250,RGB值为(84,84,84),是唯一使用该色彩的多段线。为了防止特殊情况存在一个以上的结果,检验多段线的长度也可以排除错误结果。将采集到的里程桩号最大值与最小值相减,可以得到图纸中有桩号标注的路段的总长度Lz。利用采集到的每条多段线的端点坐标,计算每段长度相加可得到多段线的总长度。绘制在图中的道路中线长度往往是大于标注桩号的路段长度的。将线段总长度小于90%Lz值的结果剔除,剩余的可以确定为是属于道路中线的多段线。

确定道路中线之后的第二步就是确认图中桩号起始点坐标。在桩号标注中,往往使用一条多段线指向道路中线的末端延伸与道路中线的交点来定位桩号点。由于桩号标注是自动生成的一个整体,会存储在同一图层中。为了防止有其他图形影响,仅在与标注文本相同的图层中利用端点坐标搜寻距离最近的线段及其所属多段线。由于所属多段线仅有这一条线段,所以利用起终点坐标计算延伸直线与道路中线交点的坐标。此结果即为桩号起始点坐标。

有了起始点之后第三步就是利用多段线各端点坐标反算曲线段图形参数。由于AutoCAD中并没有缓和曲线等概念,所有现有的基于AutoCAD的道路设计插件都是用多段线拟合来表示曲线部分的,如图2所示。Civil3D软件中的路线曲线段则是真正的曲线。单单是多段线起终点数据是无法在Civil3D中绘制出曲线的。首先通过对比道路中线多段线中各线段长度,本程序规定长度小于上一段线段长度1/6的即为拟合的曲线的起始线段,其起点为曲线起点。长度大于上一段线段长度6倍的即为拟合曲线的终止线段,其起点为曲线的终点。本文范例的道路中只有圆曲线,并没有缓和曲线,所以结合起始线段与终止线段中间一条线段的其中一个端点坐标可以方便地计算出圆曲线方程。利用获得的方程可以取得圆曲线段半径参数。

4.2 竖曲线数据处理

有了平曲线的参数后,竖曲线定位可依靠平曲线上的桩号来进行。作为定位的基础,找到“里程桩号”文本所在坐标,记录所有与该文本y坐标相同的文本,即可获得所有里程桩号的数值,同时对应记录每个数值文本坐标上方的设计高程的值。

对于纵坡变坡处的图形参数,从如图3所示标注文本中即可获取。遍历所有文本,首先搜寻包含有字样“T-”的文本,记录切线长数值与该文本坐标。因为“T-”文本处于标注图形的中间,再根据每个“T-”文本的坐标搜寻同一图层距离最近的含有“R-”“kx+xx”“E-”字样的文本和一个纯数值文本,如此即可获得每个变坡点处的图形参数。

由于竖曲线的凹凸并不会在文本中标注,需要通过分析获得。以桩号里程作为横坐标,高程作为纵坐标,对比变坡点处于前后变坡点或起终点连线的位置,在连线下方的则是凹曲线,连线上方的则为凸曲线。

5 Civil3D模型建立

有了所有必要的图形参数后,在Civil3D中新建一条路线,通过简单的代码输入对应图形参数即可填充路线对象的平纵属性值。

对于平曲线属性需要输入的参数为起始点坐标,各曲线段起终点坐标,曲线半径,终点坐标,桩号起点坐标与起点桩号值。软件会自动为完成的曲线生成所有桩号标注。

对于竖曲线属性需要输入的是起点桩号与高程,变坡点桩号与高程,半径R,外距E,各变坡处的凹凸属性。

如此路线已经自动生成完成。套用默认横断面即可在Civil3D中看到三维的路线模型,如图3所示。整个程序操作与运行时间耗时为2 min左右,相比于人工识图然后手动定位绘制路线时间大大缩短。

6 结语

本文通过二次开发Civil3D插件实现的路线全自动识别与生成技术可以大大缩短从老路的二维CAD图翻模建立BIM模型的时间。二次开发在BIM的应用中有其独特的优势,可以显著提高工作效率,减少人工成本,也可以扩大BIM的应用范围。因此根据需求开发相关功能在BIM系统的应用与推广上有十分显著的作用。

猜你喜欢

中线路线线段
画出线段图来比较
最优路线
『原路返回』找路线
怎样画线段图
我们一起数线段
数线段
课本内外
课本内外
——书写要点(三)
课本内外
找路线