最近看到同事在做桥架模型上下翻弯时,用到了某件坞的连接工具,可以指定上下翻弯爬坡时的角度,如22.5°,30°,45°,60°,来对两段不同高度的桥架进行连接。确实比较方便,后来研究了一下,用Dynamo写了一段程序来实现这个功能。

    主要思路是在桥架A和B之间找到距离最短的线C,将C旋转至指定的角度,通过直线(Line)C生成一段桥架,再在A和C,B和C之间生成连接件以实现桥架A,B的连接。

首先是读取A,B这两段桥架,Dynamo提供了SelectModelElement和SelectModelElements两种和RevitUI界面进行交互的选择方式,但都不适用这个场景,SelectModelElements只能进行框选,很容易选到多余的构件。这里可以像按回路统计电缆工程量中那样,先在项目中选中目标图元,再去读取所选中的图元;也可以运行程序之后去和RevitUI界面进行交互,去进行图元选择。在RevitAPI中有PickObject()的方法,ObjectType是枚举类型,可选择点,边,面,图元以及链接接图元。

在rhythm节点包中就有实现同样功能的节点可供使用。

由于桥架总是在XY平面上绘制,可得到最短直线所在向量与-Z向量的夹角即90+B,A为所要连接的桥架的角度(如30°,45°),C为需要旋转的角度。旋转点选择最短直线的中点,旋转轴为最短直线所在向量与-Z向量所确定平面的法向量,即最短直线所在向量与-Z向量的叉积。

测试过程中发现当B

从选择的其中一段桥架读取所需的信息来生成新的桥架,并生成他们之间的连接件。用到MEPover中桥架和连接件生成的节点。

    为避免Dynamo下次运行覆盖上次生成构件的机制,编辑自定义节点将MEPover中桥架和连接件生成的节点中所有ToDSType(False)中布尔值都改为True

运行效果:

风管的翻弯与此类似,不再赘述。而水管翻弯避让大都是翻90度U型弯,有待进一步探索发现。

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

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

0

评论0

请先
中天建设集团施工深化设计指导书(含土建及机电深化设计)
中天建设集团施工深化设计指导书(含土建及机电深化设计)
1分钟前 有人购买 去瞅瞅看

社交账号快速登录

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