首页/BIM专题

Dynamo软件教程:Dynamo在给管线添加支吊架方面都能有哪些应用?

发布于:2022-01-17
2904人 分享

本文源自公众号:IAmTheOne


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

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

腿腿教学网-Dynamo软件教程:Dynamo在给管线添加支吊架方面都能有哪些应用?

机电安装现场

(1)调整支吊架高度

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

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

腿腿教学网-Dynamo软件教程:Dynamo在给管线添加支吊架方面都能有哪些应用?

手动调整:

腿腿教学网-Dynamo软件教程:Dynamo在给管线添加支吊架方面都能有哪些应用?

程序调整:

腿腿教学网-Dynamo软件教程:Dynamo在给管线添加支吊架方面都能有哪些应用?

腿腿教学网-Dynamo软件教程:Dynamo在给管线添加支吊架方面都能有哪些应用?

(2)替换支吊架类型

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

腿腿教学网-Dynamo软件教程:Dynamo在给管线添加支吊架方面都能有哪些应用?

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

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

腿腿教学网-Dynamo软件教程:Dynamo在给管线添加支吊架方面都能有哪些应用?

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

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

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

腿腿教学网-Dynamo软件教程:Dynamo在给管线添加支吊架方面都能有哪些应用?

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

腿腿教学网-Dynamo软件教程:Dynamo在给管线添加支吊架方面都能有哪些应用?

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

腿腿教学网-Dynamo软件教程:Dynamo在给管线添加支吊架方面都能有哪些应用?

(4)点选布置支吊架

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

#  点选布置支吊架

#  By I am the one

import clr

clr.AddReference('RevitAPI')

from Autodesk.Revit.DB import *

clr.AddReference('RevitAPIUI')

from Autodesk.Revit.UI.Selection import *

clr.AddReference('RevitNodes')

import Revit

import Autodesk

clr.ImportExtensions(Revit.GeometryConversion)

clr.ImportExtensions(Revit.Elements)

clr.AddReference('RevitServices')

import RevitServices

from RevitServices.Persistence import DocumentManager

from RevitServices.Transactions import TransactionManager

doc = DocumentManager.Instance.CurrentDBDocument

uidoc=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软件教程:Dynamo在给管线添加支吊架方面都能有哪些应用?

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

转载请注明来源本文地址:https://www.tuituisoft/bim/24415.html

上一篇:没有了 下一篇:没有了