Dynamo助力机电翻模(一)

    通常在机电专业管线综合之前总是伴随着大量的翻模工作,那么就来研究一下Dynamo在机电专业翻模时都有哪些应用点,提高工作效率,解放生产力吧!

    主要思路是通过Dynamo利用行业大佬K神的LinkDWG节点包提取到cad中的信息,直接和revit进行交互,来生成或修改模型。

  1. 坐标匹配

首先要解决的问题便是坐标匹配的问题了,要保证通过Dynamo生成的模型在正确的位置上。通常情况下,手动建模的时候通过导入CAD图纸中后将A轴和1轴对齐,便使得建立的模型在正确的位置上。模拟这种情况,使用revit中坐标高程点工具查询到某一特征点(如A轴和1轴交点)的坐标值(a,b),再回到CAD图纸中移动整张图纸中,移动基点为特征点(如A轴和1轴交点)到坐标(a,b)处。

Dynamo助力机电翻模(一)插图

Dynamo助力机电翻模(一)插图1

    说到坐标就不得提坐标系的问题,上面所说的坐标到底是在世界坐标系下的坐标还是在用户坐标系下的坐标呢?弄明白这个问题还要弄清楚在revit里面原点和项目基点的问题,新建一个revit项目,默认原点和项目基点是在一起的坐标为(0,0),revit中原点可理解为世界坐标系,在revit中并不可见,却实际存在。项目基点一方面可以受制于项目原点,一方面又可不受制于原点(通过项目基点旁回形针切换),在非项目原点处将项目基点坐标设置为(0,0),即通过项目基点建立revit中用户坐标系。

Dynamo助力机电翻模(一)插图2

Dynamo助力机电翻模(一)插图3

    所以在revit中原点即可理解成世界坐标系,可以通过项目基点定义用户坐标系。由于原点不可见,同时又带来了一个新的问题,拿到一个不熟悉的RVT文件A,我又怎么知道他是否通过项目基点定义了用户坐标系呢?解决办法就是新建一个项目文件B,并在新建的文件的默认项目基点(即原点)处画十字线,在A文件中以“自动-原点到原点”方式链接B文件,即可知道A文件中是否定义了用户坐标系。

Dynamo助力机电翻模(一)插图4

这样一来问题就很明朗了:

①若revit中在世界坐标系下,那么在cad图纸中,切换至WCS,通过特征点来匹配位置关系。

②若revit中定义了用户坐标系,那么在cad图纸中,建立新的UCS,UCS原点和WCS原点相对位置关系要和revit中项目基点和原点位置关系对应,并通过特征点来匹配位置关系。

2.生成管线

    生成管线主要是用到LinkDWG和MEPover两个节点包。LinkDWG采用了微软的ActiveX技术,实现CAD和Dynamo的无缝衔接,不用将CAD导入或链接进revit文件即可获取CAD数据,直接进行交互。根据K神官方说法LinkDWG理论上支持CAD2005+以上版本。但我在使用过程中发现我的机器上CAD2016并不能与LinkDWG挂接,如果你也出现这样的问题,建议直接安装cad2018及以上版本,我在多台设备上亲测有效可行。

    若你的LinkDWG无法与dynamo交互建议从以下几个方面检查:

①cad版本,建议使用cad2018或civil3D及以上版本。

②cad或civil3D早于revit打开

③在cad中的图元处于被选中状态

④节点ActiveX.GetCOMObjects前布尔值为True

    以管道为例,生成管道用到核心节点是MEPover节点包下的Pipe.ByLines节点,凑够节点所需要的直线,管道类型,管道系统类型,参照标高,直径即可。

Dynamo助力机电翻模(一)插图5

直线:

若图纸中管线读取到直接是直线Line的话,就通过获取Line的属性起点和止点,再通过起止点生成Line

Dynamo助力机电翻模(一)插图6

若图纸中读取到的是多段线PolyLine,则需多一步转化:

Dynamo助力机电翻模(一)插图7

管道类型:

Dynamo助力机电翻模(一)插图8

管道系统类型:

Dynamo助力机电翻模(一)插图9

参照标高:

Dynamo助力机电翻模(一)插图10

直径:

尺寸信息,可直接从cad图中读取。这里思路是将读取到的线和读取到的文字标注,做最近点匹配。也就是离找到的每条直线line最近的文字,将文字(字符串string)转化成数字int,作为管道直径。

Dynamo助力机电翻模(一)插图11

可以看到cad中的文字信息如:文字内容,文字样式名称,图层,对齐点,旋转半径,字高等信息均已拿到。

Dynamo助力机电翻模(一)插图12

用clockwork节点包中的Geometry.ClosestTo获取到与直线最近文字的对齐点。当然不用这个节点包的节点,通过计算直线与对齐点的距离取最小值,在通过最小值的索引返回到相应的文字内容也是可以的。Dynamo助力机电翻模(一)插图13

通过索引返回到对应的文字内容并转化成数字:

Dynamo助力机电翻模(一)插图14

管道生成后还需修改标高:

Dynamo助力机电翻模(一)插图15

下面是演示视频:

(中间程序运行等待时间请直接跳转到2分40秒左右)

    这里生成管道的直径是DN80,而不是图上的DN70,这是由于在revit的管道的管段中未设置DN70管道。而我们都知道消火栓图中连接消火栓箱的支管标注为DN70实际就是DN65,在接下来的文章中将介绍如何批量修改管道管件管径。

    当然在实际操作过程中,限于水平有限,仍有一些问题未能解决:

  1. 图面上看到的有时是一整根线,在有分支或有阀门附件的时候,被截成多个小段,导致本该是一整根管道却被切割成了很多段。
  2. 由于尚未弄清楚管线相连之间的逻辑关系,管道未连接,没有生成相应的弯头,三通,四通等。

这些问题也仍值得探索发现。

为避免文章篇幅冗余,本文只写出了两个Dynamo在机电管线建模时的应用点,未完待续……………

Dynamo助力机电翻模(一)插图16

欢迎阅读,分享,交流,批评指正。

如转载请注明出处,否则追究法律责任(说说而已,全靠自觉)。

Dynamo助力机电翻模(一)插图17

0

评论0

请先

没有账号? 注册  忘记密码?

社交账号快速登录

微信扫一扫关注
扫码关注后会自动登录网站
普人特福的博客cnzz&51la for wordpress,cnzz for wordpress,51la for wordpress