首页/技术分享

Dynamo教程 | Dynamo软件教程:Dynamo如何辅助管廊设备智能布置?

发布于:2024-11-29 13:10:02
146人 分享

本文源自微信公众号:华筑建筑科学研究院

image.png 

0ed8384695788780f0b18a0c234c85cf.png

一、管廊的特点

管廊是典型的线性带状工程,实际管廊隧道有弯道有坡度,管廊内设备在三维空间中的坐标位置规律性差,通过Revit平台直接定位布置很难实现设备布置的高效化。

9020623b876eb4b56bda85a5a4fc601b.png

图1.管廊纵断图示意

很多图纸中管廊的设备布置只是一个管廊平面图中示意的大致位置(具体位置在横断面图中标明),有些甚至只是给了排布说明,并未标明设备确切的布置点位。不同设计院出具的图纸也会出现各种其他情况,这些都会影响我们管廊设备布置的工作效率。

c93d856303a4638690278299dba0ab7e.png

图2.管廊平面图示意

另一方面,虽然管廊中排布的设备、支架等在三维空间中的绝对坐标位置杂乱、无规律,但其均沿管廊排布又有一定的相对位置关系,在其管廊标准横断面图中明确体现。通过Dynamo拾取管廊的中心线、土建楼板等信息,附加一定的逻辑语言,定位到设备需放置的准确位置然后布置,可以有效的辅助我们管廊模型的建立,极大地提高我们的工作效率。

d46991d857f2d304f15461fc3ee15344.png

图3.管廊横断图示意

二、Dynamo应用管廊设备布置的基本思路及步骤

Dynamo是一款非常强大且便捷的可视化编程软件,这里不再对Dynamo软件及其基本操作赘述。直接针对管廊设备布置问题讨论,完成该应用主要可分为以下几步:

 1.通过CAD图纸得到设备平面布置的坐标信息;

 2.获取管廊的楼板信息,这里主要是为得到管廊设备的标高信息准备;

 3.通过管廊标准横断面图中的相对位置关系得到设备布置的明确点位;

 4.对所布置设备在空间中旋转合适角度,结合实际情况;

 5.在以上基础上可以扩展Dynamo,单个程序放置管廊的多舱或多种设备,进一步提高效率。

这只是目前总结的管廊项目应用Dynamo的思路情况,该思路可能并不会适用于各种项目,管廊设备布置问题的解决方案更不局限于此思路。按该思路结合我们目前的项目情况,具体工作步骤主要分以下三步:

 1.在Revit中根据已有的管廊土建模型,对照CAD图纸,完善便于后面Dynamo拾取使用的项目基点、管廊中心线和管廊土建楼板模型;

 2.整理CAD图纸,确定出模型与图纸中对应的点,从设备布置平面图中提取出正确的设备布置的坐标信息(目前主要为平面坐标);

 3.根据管廊的标准横断面图中的信息等,在对应的Dynamo中调整节点和参数,然后结合Revit中的布置情况,调试Dynamo,完成设备布置。

三、具体工作流程与问题总结

1、Revit中的准备工作

Revit中的准备工作主要包括明确和完善模型中的项目基点、管廊中心线和管廊土建楼板模型。

1.1 项目基点

首先是定位模型中的项目基点,使模型和CAD图纸可以对应上。(一般已有的土建是已经完成这一步的,我们主要是核实、明确),如下图所示。

另外,要注意调整Revit中的项目单位,管廊模型是线性带状工程,轴向距离较长,项目单位多设置为米,保留4位小数 (项目精度保证到0.1mm)。    

1.2 管廊中心线

根据已有的土建模型或导入的CAD底图,结合管廊标准横断面图,用模型线绘制管廊中心线。

c789738f45ea852364a7bea00322bbc3.png

图4.管廊中心线示意

6dcdf6ebc76ca5548a858557b55d6dc5.png

图5.管廊中心线

这里的模型线需要为一条连续的多段线,可以在Revit中通过Tab键切换来看是否可以选取整条模型线来初步检验。另外,这里需要注意的两点是:①在同一位置重、叠两条线,使得Dynamo中的多段线合并模块(Curve.)报错;②在Dynamo中设置其单位要选择“中”或者“大”,不要选“特大”,这是因为我们在Dynamo中同时保证长度和精度同时满足,“特大”的精度为1m,当有较短的线时可能会被忽略从而导致Dynamo运行的结果异常。

1.3 补齐管廊土建楼板模型

63b04ac74062cbd655166698a34b6011.png

管廊本身有坡度,还有很多的支廊、出入口等节点,其节点处的土建模型很多时候是用常规模型建立的,不能隔离出一块完整的管廊楼板或垫层,为了方便我们的后续工作,就需要我们结合管廊的纵断面图及现有土建模型的补齐管廊楼板。需要注意的是补齐后楼板要保持光滑连接,及连接处的两楼板沿儿线标高一致且共线,绘制出带坡度的楼板。补齐的楼板如下图所示,这里要通过Dynamo验证,拾取对应的楼板后Dynamo中的Solid.ByUnion模块可以将其合并为一个实体不报错,才表示没有问题。

b92a9a9096dc3cfd263a74d6e933d85b.png

2、CAD图中获取设备的布置信息

CAD图中获取设备的布置情况根据图纸的不同情况,目前可主要分为两大类:一类是平面图无布置的大概位置,另一类是平面图中对设备进行了大致排布。

2.1平面图无布置的情况

当平面图中未给出大致的布置情况,而是通过文字进行了排布说明,此时无需对在CAD图纸的平面布置图处理。仅需要对应参考管廊标准横断面图,通过Dynamo拾取管廊中心线,按定长曲线找取设备布置的点位。

2.2平面图有大致排布的情况

85eecd2dbc09920a50f1faca2066de94.png

当平面图中给出了大致排布时,其设备数量及大致位置信息已给,管廊设备放置相比无布置时要定位更加精确,需对设备平面布置图进一步处理,提取图纸中设备(图块)的坐标信息。通过CAD中的“插入-提取数据”功能实现。这里需要注意的一点是:CAD图纸中的表示设备的图块,由于其基点选取问题可能有问题,从中提取的坐标信息就是有误的。需要在提取数据之前改块的基点(目前是通过CAD的外部应用程序“贱人插件”实现的)。

3、Dynamo调整节点和参数

最后这一部分就是将上述的管廊布置思路通过Dynamo可视化编程实现。现以CAD图中有大致排布的情况下进行管廊单舱单设备放置为例对Dynamo中的块进行简要介绍(该示例中蓝色节点块需要在Revit中选取对象,深绿色节点块针对不同设备需要进行参数设置)。

3.1 Dynamo中的选取输入节点

3.1.1在Revit中拾取项目基点

156ece6b3665761f0a997750b55d397e.png

点击“更改”在Revit中选取项目基点,然后根据其名字获取项目基点中的信息,方便后续步骤。需要注意的是项目基点的实际坐标与其标识的信息不同,所以下面这个Coordinates.BasePoint节点直接获取项目基点的实际坐标信息。这里可以理解为图中上面两个值为项目对应的CAD图纸中的坐标信息,下面两个值为Revit项目中对应的坐标信息。图纸中其他的点位都是按“项目基点”这个点去对应相对位置的,所以图纸中其他的点位信息都应该为:

      XR,i——Revit项目中放置设备的点位坐标;

      XC,i——CAD中的设备点位坐标,CAD图纸中提取的数据信息;

      XR,o——Revit中的项目基点的实际点位坐标,Coordinates.BasePoint节点直接获取的坐标信息;

      XC,o——CAD中的项目基点的点位坐标;上图 Model Elements节点获取的项目基点的标识坐标信息。

3.1.2 在Revit中拾取绘制的管廊中心线

f06b2360572731a6f1a45033093d60f7.png

点击“更改”在Revit中选取前面绘制的管廊中心线,图块中是将在Revit中选取的多段模型线合并为一条多段线,最后的Curve.Reverse节点是翻转该多段线的方向,为使我们后面通过该线获取的各种向量与我们的主观定义保持一致,方便使用。如无需翻转模型线的方向可直接跳过该节点。

3.1.3 获取CAD中数据提取的点位坐标信息

eed05c36407399f006bcfb7ecb38cb4f.png

点击“更改”选择通过CAD数据提取生成的Excel表格,直接获取表格中的坐标信息,Excel表格内的数据信息格式如下图。

f480adca7cc86cfc2d1c96a0d8536fb8.jpg

3.1.4在Revit中拾取绘制的楼板

点击“更改”在Revit中选取前面绘制的楼板(只选取我们前面补齐的用来做管廊参照面的楼板),与获取中心线后处理一样,后面是将多块楼板合并为一个实体。

70906e6308f1415bd9f2061b712c3884.png

3.2 Dynamo中的设置输入节点

3.2.1设置中心线的偏移值

根据放置不同的设备,需要设置不同的这个线的横向偏移的距离。对应的意义是通过偏移拾取的中心线获取到管廊中设备放置的定位线。

b5aae18ea7c2b047cdaa65ddc2ff1111.png

3.2.2设置设备放置点距楼板底板的高度值

该节点处前一步是将设备放置的点位投影到楼板底面处,然后需要根据放置设备实际距楼板底面的距离将设备点位向上平移。

6dbd049e3ec199d3ec049b53841baa41.png

3.2.3选族

该节点是通过在String节点中输入所需放置设备族的族和族类型的名称提取设备族进而在找取的各点位进行批量放置。

41d3473e8bedfedc2ba940b41e50e8f8.png

3.2.4族的放置角度设置

该处的设置只是根据设备实际的放置情况,对族是否需要旋转或翻转进行统一的设置,结合下面获取定位线上个放置点位的切向量等角度信息共同计算,得到设备放置的旋转角度。

56ff426c6dd5cbed36bc006b8cba9f52.png

3.3Dynamo中的中间处理节点

该部分的节点是对获取的信息进行处理,实际操作中不用再做修改,但可以获取其中的一点点位或角度信息,补充dynamo程序进一步处理后实现管廊多舱室多设备的同时放置。3.3.1 设备坐标信息的处理

c07203bbbf70b6e961807b2ac2243aee.png

关于设备点位坐标信息的处理参照3.1.1获取项目基点时的说明。

3.3.2确定设备布置点位的xOy平面坐标

27d961d3e5406c2971082cb7ad771b47.png

图中的节点功能是获取定位线上距设备位置点最近的点。关于此处对两点进行说明。

1.这里的点位坐标信息确定仍然只是其点位的x轴和y轴坐标,z轴的坐标是通过距楼板的距离偏移实现的。

2.该Dynamo中获取管廊中心线以及对齐处理均针对的是该示例中“CAD图纸给的坐标信息只是大致位置”的情况,所以需要我们借助管廊中心线辅助定位。另外的不同情况,处理会不同。(如CAD中的定位准确,可以直接获取坐标信息进行处理,无需定位线辅助;如根据排布说明布置,此时从CAD图纸无法提取坐标信息,需要根据定位线的弧长等信息自己定位设备布置的坐标信息)

3.3.3设备布置点投影到的楼板底面

ca06a55bcbde3a9687c5170d8fe1fecb.png

这一步的可以分为图中红框的两部分,前面是将设备布置的点位延z轴向下偏移。保证点位在获取楼板的下方,第二步把点投影到楼板上,进而通过3.2.2设置的高度值偏移对应点位得到设备布置点位准确的z轴坐标。

3.3.4设备族的旋转角度获取

e8161a86f098ba2d16c880f7abc8014b.png

首先是将定位线和向上的点借助Curve.ParameterAtPoint组合,然后根据节点Curve.TangentAtParameter获取线上该点的切向量,然后获取该切向量和x轴在xOy平面的夹角。

87100eaadb123e32bdac1f5b2a343763.png

然后根据设备的实际放置情况,考虑设备的翻转和旋转,进而完成对设备族旋转角度的设置,使其在管廊中放置的情况符合实际。

3.4补充

Dynamo中各节点按逻辑结构前后连接在一起。对以上节点了解后,在Dynamo中结合节点和连接线,对照基本思路更便于理解。

fb22f8e784e96bbe3b248c79d3f5899a.png

5e882a78277daaba255d23f1c57279d5.png

转载请注明来源本文地址:https://www.tuituisoft/blog/21285.html

上一篇:

Dynamo教程 | Dynamo参数化建模的优势是什么?Dynamo参数化建模的四大优势

下一篇:

Dynamo教程 | Dynamo是什么软件?可视化编程平台Dynamo概述