如何用ps做网站页面设计,绍兴越城区建设局网站,附近的广告设计和制作,室内设计专业网站今天我们来聊一个期待已久的功能——生成天花#xff0c;经过了这么多年的迭代#xff0c;Revit终于开放了生成天花的API#xff0c;而且功能还不错#xff0c;是经过优化的#xff0c;不过目前我手里还没拿到SDK#xff0c;就不截图了。
而且新增的天花API不是在Docume…今天我们来聊一个期待已久的功能——生成天花经过了这么多年的迭代Revit终于开放了生成天花的API而且功能还不错是经过优化的不过目前我手里还没拿到SDK就不截图了。
而且新增的天花API不是在Document class下而是在Ceiling下的同时楼板也添加了相同的API那和Document class下的NewFloor有什么区别呢这个新的API支持直接创建带洞口的楼板了。
如下图这种情况可以直接生成楼板并把中间的洞口挖去了方便很多 话不多说直接上代码 # Copyright(c) 2019-2024, 九哥BIMer
import clr
clr.AddReference(ProtoGeometry)
from Autodesk.DesignScript.Geometry import *clr.AddReference(RevitAPI)
import Autodesk
from Autodesk.Revit.DB import *clr.AddReference(RevitServices)
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManagerclr.AddReference(RevitNodes)
import Revit
clr.ImportExtensions(Revit.Elements)
clr.ImportExtensions(Revit.GeometryConversion)doc DocumentManager.Instance.CurrentDBDocumentArrayCurves IN[0]
floorType UnwrapElement(IN[1])
levels UnwrapElement(IN[2])floors []TransactionManager.Instance.EnsureInTransaction(doc)
for curves in ArrayCurves:curveloops []for crv in curves:r []for c in crv:r.append(c.ToRevitType())curveloop CurveLoop.Create(r)curveloops.append(curveloop)flr Floor.Create(doc, curveloops, floorType.Id, levels.Id)floors.append(flr)
TransactionManager.Instance.TransactionTaskDone()OUT floors
核心API如下
flr Floor.Create(doc, curveloops, floorType.Id, levels.Id)
和之前我那篇创建楼板的唯一区别就是API换了其他都差不多就不细讲了。详见前文创建楼板——Dynamo Python系列教程四
生成天花的核心代码也就可以类比出来了 TransactionManager.Instance.EnsureInTransaction(doc)
for curves in ArrayCurves:curveloops []for crv in curves:r []for c in crv:r.append(c.ToRevitType())curveloop CurveLoop.Create(r)curveloops.append(curveloop)cei Ceiling.Create(doc, curveloops, ceilingType.Id, levels.Id)ceiling.append(cei)
TransactionManager.Instance.TransactionTaskDone()
最后附上完整的dynamo截图 因为没看到API的具体内容目前只知道生成的天花高度是自标高的高度偏移2600是直接调用的默认偏移值。 看到这有木有一丢丢的激动呢
好了今天的分享就到这里小伙伴们快去自己尝试吧~