当前位置: 首页 > BIM > BIM行业动态 > 应用案例分享:基于Dynamo可视化编程技术的轨道BIM设计

应用案例分享:基于Dynamo可视化编程技术的轨道BIM设计

更新时间:2021-03-25 14:23:13 来源:网络 浏览299收藏89

BIM报名、考试、查分时间 免费短信提醒

地区

获取验证 立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

摘要 Dynamo是一个基于Revit的可视化编程平台,满足个性化需求,实现批量建模和自动化建模,提升BIM设计效率。Dynamo只需少量编程就可以快速实现用户的个性化需求,上市后便得到业界的普遍关注。本文针对轨道BIM设计特点,探索基于Dynamo的轨道建模的原理与方法。

编辑推荐:2021BIM考试复习必备:精选50题

温馨提示:中国建设教育协会将会在4月24-25日组织进行BIM技能考试,考生们可以提前 免费预约短信提醒,及时获取BIM考试时间节点信息。环球网校已开通BIM报考资格免费查询入口,输入学历等信息即可快速查询。

Dynamo可视化编程技术

Dynamo是一款基于Revit的参数化设计辅助工具,除了几何建模外,Dynamo还可以高效处理建筑信息模型中的信息,与Revit配合使用,可以大大提高BIM建模效率。Dynamo采用“所见即所得”的编程模式,传统编程的代码块在Dynamo中由可视化节点代替。节点是Dynamo程序的基本组成单元,它可以进行数据处理,完成某项功能。用户只需要像搭积木一样按照自己的需求将节点拖拽到编程窗口,并用流程线将节点连接起来,就可以实现特定功能。

Dynamo节点由输入接口和输出接口两部分组成,通过输入接口指定要处理的数据,通过输出接口获取处理结果。Dynamo内置许多常用的节点形成节点库,如构建点、构建曲线、构建面、拉伸操作、放样操作、文件读写等。除此之外,Dynamo还允许用户通过Python编写自定义节点并加入到现有节点库,让用户实现一些特殊需求。

技术路线

模型构成

铁路有砟轨道模型由钢轨、轨枕及扣件、道床等3个部分构成。钢轨主要有50、60、75kg/m等型号,每种型号的钢轨其断面形状和技术指标均有所差别。轨枕主要有Ⅰ类木枕、Ⅱ类木枕、Ⅰ型混凝土枕、Ⅱ型混凝土枕和Ⅲ型混凝土枕等类型,每种类型的轨枕尺寸均不同。道床的形状则与线路等级、速度、路基等因素相关,其几何特征主要由顶面宽度、厚度、边坡坡度等参数决定。

设计流程

利用Dynamo进行有砟轨道BIM设计的流程如下:

(1)基础数据准备。从线路设计软件导出线路中线坐标,利用Revit建立钢轨断面轮廓族、轨枕族、扣件族。

(2)构建线路中线。在Dynamo中读取线路中线坐标并建立线路中线。

(3)构建钢轨模型。利用Dynamo对钢轨断面进行放样构建钢轨模型。

(4)放置轨枕及扣件。利用Dynamo将轨枕族放置到线路指定位置。

(5)构建道床模型。根据道床参数,分段建立道床模型并放置到线路指定位置。

(6)创建属性并赋值。根据需要为模型定义特征属性并输入属性信息。

(7)模型装配与集成。

建模方法

线路曲线构建

由于Revit本身不具备缓和曲线表达能力,在Revit中构建线路曲线时,主要采用以直代曲来实现,即将曲线划分为若干较短的直线,将这些直线首尾相连构成曲线。首先需要借助二维CAD,将线路中线按固定点距将线路坐标导出到Excel。借助Dynamo中的Data.ImportExcel节点,可以快速地将Excel中的数据导入到Dynamo中。

当模型坐标的数值较大时,Revit模型会发生严重的变形,Revit给出的方案是设定项目基点,通过使用相对坐标使坐标值变小。一般项目基点会设置在项目中心位置,建模时使用的坐标都是基于基点的相对坐标。因此,构建线路曲线时需要对读入的坐标值进行处理(减去项目基点),让坐标变成较小的相对坐标。用读取的坐标创建点,并将点放到样条曲线中,这样就构建完成了线路曲线,此后的建模都需要利用该曲线进行相关计算。

曲线方向计算

建模中无论是轮廓放样,还是放置族实例,都涉及曲线某点处方向的计算。以钢轨建模为例,钢轨建模采用的是利用钢轨断面进行分段放样的方法,即将钢轨断面轮廓沿线放置,然后将前后轮廓连接起来形成三维实体。断面轮廓的放置要求与线路中线垂直,否则放样出来的模型会出现变形,这需要计算放置点处线路的平面方位角和竖向倾角。

Dynamo中的Curve.CoordinateSystemAtSegmentLength节点可以用于计算线路上某点处的局部坐标系统,该坐标系统的X轴指向线路法向,Y轴指向线路切向,Z轴符合右手定则。断面放置后与线路中线垂直,也就是要与局部坐标系统的Y轴垂直。假设断面轮廓族建立在XZ平面上,可按以下步骤对断面进行旋转。

(1)获取局部坐标系X轴向量XVector,将XVector的Z值设置为0,使X轴向量变为水平面的投影向量。

(2)利用Math.Atan2节点计算世界坐标系的X轴与局部坐标系X轴水平投影的角度XAngle。

(3)利用Geometry.Rotate节点将断面绕世界坐标系的Z轴旋转XAngle,此时断面与线路水平投影垂直。

(4)获取局部坐标系Y轴向量YVector,将YVector的Z值设置为0,使Y轴向量变为水平面的投影向量。

(5)利用Math.Atan2节点计算世界坐标系的Y轴与局部坐标系Y轴水平投影的角度YAngle。

(6)利用Geometry.Rotate节点绕局部坐标系X轴水平投影旋转YAngle,此时断面与线路中线垂直,至此旋转完成。

钢轨及轨枕建模

钢轨建模时首先需要将事先建立的钢轨断面族加载到Revit项目中,然后利用Curve.PointAtSegment?Length节点计算断面放置位置,然后利用Dynamo的FamilyInstance.ByPoint节点读入断面,并调整断面方向,最后将断面移动到线路指定点处。完成断面放置后即可利用Solid.BySweep节点来创建钢轨实体,创建的实体此时还只是处于内存中,需要借助Spring.FamilyInstance.ByGeometry将创建的钢轨实体放入到Revit文件中。

轨枕建模与钢轨建模类似,只需将事先建立的轨枕实体族放置到线路处指定点并调整方向角度即可,由于放置的轨枕数量较多,建模所需要的时间会比轨道建模略长。

道床建模

由于道床尺寸是根据线路特征确定,采用参数化建模方法来创建道床模型。对于道床来说,主要的参数有顶宽、堆高、边坡坡度、厚度等。为了能精确的控制道床位置,还需要轨道高度、轨道垫板厚度、轨枕轨下厚度、轨枕埋入深度等参数,道床顶面高程Zs由下式确定:

Zs=Zr-Hr-Hc-Hsr+Hsd(1)

式中:Zr为轨顶标高,可从线路中线获取;Hr为钢轨高度;Hc为垫板厚度;Hsr为轨枕轨下厚度;Hsd为轨枕埋入道砟的深度。

根据顶宽、堆高、边坡坡度、厚度等参数,利用Dynamo创建道床轮廓,并进行拉伸以创建道床实体族,并利用轨枕建模的思路将建立的道床实体族放置到指定位置。

模型装配与集成

由于BIM模型的几何特征较为精细,使得BIM建模工具对计算机硬件资源的消耗较大,过多的硬件消耗会极大地影响运行效率。尽量减少模型文件的大小,建模时通常将钢轨、轨枕及扣件、道床模型分别输出到不同的rvt文件,必要时还需要对线路进行分段处理。待所有构配件完成后,再进行模型统一装配。Revit中提供了链接功能,可以将多个rvt文件链接到一起,从而将不同的模型组装起来,实现模型的集成。

Revit对于大体量模型的承载能力较弱,而项目中的轨道有时会达到数十甚至上百公里,集成后Revit会出现严重卡顿。另外,项目集成通常还涉及铁路工程的其他专业,有时还需要加入地理信息模型,此时对集成软件的要求更高,AutoDesk给出的大体量模型集成方案是采用Navisworks软件。

集成的另一种方案是采用GIS软件,相对而言,GIS软件对大体量数据的承载能力要比BIM软件强很多,因此对于全专业的BIM集成通常会采用GIS软件来完成,除专业的BIM设计模型外,还加入了倾斜摄影模型,集成后场景运行流畅,效果良好。

BIM建模过程中有许多机械重复性的工作,手工完成效率较低,二次开发代价大,Dynamo可视化编程为完成此类工作提供了一条良好途径。不需要大量烦琐的程序开发,就可以让计算机来完成一系列建模任务。基于Dynamo可视化编程技术进行BIM设计,可以大大地提高建模速度,同时可以通过程序精准控制模型的位置和方向,建模精度高。

但Dynamo在解决复杂问题方面的能力有限,一方面,内置节点不够丰富,对于一些问题需要自己编写自定义节点,此过程较为耗时,另一方面,当Dynamo程序过于复杂后,程序的运行效率显著下降,特别是涉及复杂的几何布尔运算时,此问题更加突出。因此,对于复杂的建模工作,目前可行的办法还是有针对性地进行二次开发。

环球网校为大家准备了BIM技术精品课,点击限时免费领取,不要错过。以上内容就是“应用案例分享:基于Dynamo可视化编程技术的轨道BIM设计”,更多BIM热点资讯/教程分享欢迎关注微信公众号“BIM实训”,也可点击下方免费下载领取精品学习资料。

分享到: 编辑:高杉

资料下载 精选课程 老师直播 真题练习

BIM资格查询

BIM历年真题下载 更多

BIM每日一练 打卡日历

0
累计打卡
0
打卡人数
去打卡

预计用时3分钟

环球网校移动课堂APP 直播、听课。职达未来!

安卓版

下载

iPhone版

下载

返回顶部