前不久看到有人在讨论管道的拆分问题,那么就来研究一下吧!

猜想这个问题的起源大概是为了还原管道安装现场的场景吧,通常在画图的时候可以画出一根任意长度的管道,但在施工现场,都是一节一节通过管道接头拼接起来的。比如消防镀锌钢管6米一节,镀锌钢板风管大约1.2米一节。有这种管道拆分需求的大概是市政管线项目,城市综合管廊项目和之前做过的煤矿项目。通过拆分管道一是可以还原安装现场,二是能够统计所需管段和接头数量。

        总体思路:找到管道上所需要进行拆分的点,拆分后将管道顺次连接。

核心节点是DynaTools节点包下的Tools.SplitPipeByPoints节点和MEPOver节点包下的MEPFitting.ByMEPCurves节点。

首先在X轴方向做出一根管道,将管道按照2米(变量b)一段拆分,管道长度为变量a。将a/b向下取整(得到c),再生成1到c的列表,再将这个列表与b/a做积,通过下图中的DesignScript语句生成一系列的参数。

这里需要注意的是,要在获得的参数末尾加上一项1,这是为了在管道拆分后将倒数第一节和倒数第二节连接。因为这一项决定拆分后的管道最后一节是否在列表中。增加1这个参数,运行时会提示间距太短,是否取消或删除图元,这也很好理解,在末端是无法进行拆分的,点击删除图元即可。

得到管道上一系列的点:

得到拆分后的管道后,由于要对相邻两管道两两进行连接,所以通过管道的上的特征点排序(这里选用了起点),进而通过索引值对管道进行排序。

若所画管道正好与Y轴平行,那么List.SortByFunction中的就需要通过特征点的Y值排序;同理,若所画管道为立管,就通过特征点Z值排序;若在平面上的管道既不与X轴平行,也不与Y轴平行,那么通过特征点的X,Y值排序均可。

将排完序的管道分别删除首项和尾项后通过MEPFitting.ByMEPCurves连接。

看一下运行效果:

可以看到管道已按照需求进行了拆分,并且生成了连接件,倒数第一节和倒数第二节也连接正常,通过TAB键选择,所有管道均连接在一个系统。

        好了,这次的小案例就到这里,拆分风管的方法与此类似。但电缆桥架拆分时由于没有现成节点可供使用,或许就需要查询Revit的API手册,写Python脚本来实现了,待进一步探索发现。

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

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

0

评论0

请先

社交账号快速登录

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