继上一篇Dynamo助力机电翻模(二)中提到由于阀门等管道附件导致生成的管线不连续,给出的解决方案是:找到原天正图纸,将附件删除。那么有时并无法获取到原天正图纸,那么就束手无策了吗?毕竟鲁迅先生早就说过:只要思想不滑坡,方法总比困难多。就来看看在布置阀门附件时来解决这个问题吧。

    5.布置附件

    这里提供两种方法布置附件。一种方法针对无法获取到原天正图纸情况,另一种方法针对能够获取到原天正图纸情况。

    布置附件–放置

如果无法获取原天正图纸。我用前述方法生成的管线会是这样的:

    总体思路就是:读取到图纸中附件的位置信息后,在对应的位置上放置附件族,然后通过找到与放置族实例最近的管道连接件(connector)生成一段管道。

    读取到图纸中附件图块信息后通过名称分组,筛选出要布置的截止阀,通过FamilyInstance.ByPointAndLevel布置。

    将布置的族实例旋转90度,获取到所有附件和管道连接件(connector)的位置(location)。

    通过Geometry.DistanceTo计算附件连接件所在的位置Point和管道连接件所在位置Point之间的距离,取最小值,获取最小值索引,通过索引值找到与附件连接件最近的管道连接件。

    将两个最近的连接件之间生成管道。

看一下运行效果:

运行等待时间请直接跳转至2分35秒处

    可以看到新生成的一段管道表面上看上去与临近的管道是断开的,由于是通过连接件之间生成的管道实际他们是连接在一起的通过TAB键可以将整个系统选中即可证明。当然我也试图通过别的办法(将临近的管道之间像管道等距拆分中那样生成接头fitting,再将其删除)将他们连接的看起来也是同一根管道,但并未能奏效。

    布置附件–插入

    若拿到原天正图纸将其中附件删除,生成的管道会是这样:

    插入附件用到的核心节点是MEPFitting.ByPointsAndCurve,主要思路是从图纸上获取到的附件插入点Point与获取到的管道的几何实体Soild作交集,判断Point与Soild是否相交来找到附件对应的管道。不过在测试过程中走了一点弯路,通过Point与获取到的管道的位置Line判断相交,由于数据精度问题,导致判断结果不正确。

获取到Point和Soild

    PointSoild作交集找到附件对应的管道

    插入附件,这里值得注意的一点就是点的列表需要处理成二维列表(或使用chop,步长设置为1)

运行效果:

    6.布置设备

布置设备其实已经在上面布置阀门的时候提到过了。用同样的方法我们还可以从图纸中提取到位置信息后在暖通专业布置各类风机、空调末端;给排水专业布置消火栓、喷头;电气专业布置配电箱、配电柜;装饰装修专业布置各种点位等应用场景。

7.修改管道管件参照标高

    有时候工作中,由于各个视图不停的切换,在绘制管线的时候参照标高就会不正确。这个问题平时倒也是个不是问题的问题,可是当对方需要标注出图的时候这个问题就显现出来了,不得不去解决它。尤其是在修改管件的参照标高时,其位置会发生变化,还得再去计算修改他的偏移量。

这里推荐使用Elements change Level节点,可修改参照标高而不改变构件位置。

使用Element.SetParameterByName也存在手动修改同样的问题。

好了,今天的内容就到这里,欢迎持续关注,未完待续…………..

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

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

0

评论0

请先
T/CECS 225-2020 建筑物移位纠倾增层与改造技术标准(附条文说明).pdf
T/CECS 225-2020 建筑物移位纠倾增层与改造技术标准(附条文说明).pdf
1分钟前 有人购买 去瞅瞅看

社交账号快速登录

微信扫一扫关注
扫码关注后会自动登录网站