Dynamo布置支吊架

        在机电管线排布基本稳定之后就要进行管线的支吊架的添加了,这是一项工作量巨大且较为单调的工作。那么来看看Dynamo在给管线添加支吊架方面都能有哪些应用吧。

        支吊架一般都会有最基本的两个参数:宽度和高度,如果项目上还有计量要求还会有重量参数,当然重量参数也是通过两个基本参数换算而来。

Dynamo布置支吊架插图

机电安装现场

(1)调整支吊架高度

在布置好一个支吊架后,就需要调整支吊架高度参数,使得支吊架与桥架匹配,手动调整则需要反复的输入数值进行测试。而参数的调整正是Dynamo的拿手好戏。

通过读取桥架的底部高程和支吊架的偏移量计算,再放一个系数做调整:

Dynamo布置支吊架插图1

手动调整:

Dynamo布置支吊架插图2

程序调整:

Dynamo布置支吊架插图3

Dynamo布置支吊架插图4

(2)替换支吊架类型

在项目上遇到这样一个需求:一开始模型中桥架支吊架使用的是吊杆M12的通丝+横担为5#角钢的支吊架,后因使用要求需改为吊杆和横担均为5#角钢的防晃支吊架。

Dynamo布置支吊架插图5

        手动去调整,工作量巨大,基本是要前面所做的工作推倒重来了。而程序调整却可以利用已经布置的吊丝支吊架所积累的数据,写入到要替换的

类型数据,完成一键替换。

Dynamo布置支吊架插图6

        这里吊丝支吊架和角钢支吊架宽高参数分别为:”L”,”H”和”宽度”,”高度”。将其中桥架共用的支吊架筛选出来(L>900)进行替换。

演示效果:

(3)等间距批量布置支吊架

选择桥架,获取到其LocationLine,将其按间距1800等分,得到等分点,再将这些点作为族实例布置点:

Dynamo布置支吊架插图7

通过计算桥架LocationLine和X向量的角度作为支吊架旋转的角度:

Dynamo布置支吊架插图8

设置支吊架高度,宽度,偏移

Dynamo布置支吊架插图9

演示效果:

(4)点选布置支吊架

在桥架分支处,上下翻弯处,水平转弯处。这些特殊位置布置支吊架时,则希望通过鼠标点在哪里,支吊架就布置在哪里。可通过下面的代码实现:

#  点选布置支吊架#  By I am the oneimport clr
clr.AddReference('RevitAPI')from Autodesk.Revit.DB import *
clr.AddReference('RevitAPIUI')from Autodesk.Revit.UI.Selection import * 
clr.AddReference('RevitNodes')import Revitimport Autodeskclr.ImportExtensions(Revit.GeometryConversion)clr.ImportExtensions(Revit.Elements)
clr.AddReference('RevitServices')import RevitServicesfrom RevitServices.Persistence import DocumentManagerfrom RevitServices.Transactions import TransactionManager
doc = DocumentManager.Instance.CurrentDBDocumentuidoc=DocumentManager.Instance.CurrentUIApplication.ActiveUIDocument
fmy_type = UnwrapElement(IN[1])fmy_type.Activate()#选择图元上的点pt_refs = uidoc.Selection.PickObjects(ObjectType.PointOnElement)new_eles = []pick_eles = []TransactionManager.Instance.EnsureInTransaction(doc)for t in pt_refs:  rvt_e = doc.GetElement(t)  dyn_e = rvt_e.ToDSType(True)  level = UnwrapElement(dyn_e.GetParameterValueByName("参照标高"))  #将选择的图元上的点向桥架LocationLine上投影  pt = rvt_e.Location.Curve.Project(t.GlobalPoint).XYZPoint  new_ele = doc.Create.NewFamilyInstance(pt,fmy_type,level,Autodesk.Revit.DB.Structure.StructuralType.NonStructural)   new_eles.append(new_ele.ToDSType(True))  pick_eles.append(dyn_e)TransactionManager.Instance.TransactionTaskDone()OUT = [new_eles,pick_eles]

完整程序:

Dynamo布置支吊架插图10

演示效果:

好了,这次的分享就到这里。那么,关于支吊架你还有哪些新奇的玩法呢?

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

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

Dynamo布置支吊架插图11

0

评论0

请先

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

社交账号快速登录

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