0 0 1
Revit一键控制梁是否连接
发布时间:2021/7/26 10:32:35 作者:牛侃BIM 浏览量:1097次
内容摘要:

还在当老黄牛吗,是时候偷偷懒了!


你好!这里是牛侃BIM。

在Revit中我们经常需要断开梁或者墙的自动连接,而在新版本中软件的原生功能已经可以控制墙是否连接,今天给大家介绍的是在Revit中一键控制项目中的梁是否连接,框选模型中的“结构框架”点运行即可控制所有梁的连接与否。视频如下。




实现方法:使用Dynamo调用api,首先将模板代码复制进来。

导入Pythonscript的标准模板如下:
import clrclr.AddReference('ProtoGeometry')from Autodesk.DesignScript.Geometry import *clr.AddReference('RevitAPI')clr.AddReference('RevitUIAPI')import Autodeskfrom Autodesk.Revit.DB import *clr.AddReference('RevitServices')import RevitServicesfrom RevitServices.Persistence import DocumentManagerfrom RevitServices.Transactions import TransactionManagerdoc = DocumentManager.Instance.CurrentDBDocumentuidoc=DocumentManager.Instance.CurrentUIApplication.ActiveUIDocument



定义在Revit中框选构建自动读取到Dynamo。




Ids = uidoc.Selection.GetElementIds()elems=[]





过滤出我们选择的构件,得到项目中的结构框架。


for i in Ids: if doc.GetElement(i).Category.Id.IntegerValue == int(BuiltInCategory.OST_StructuralFraming): elems.append(doc.GetElement(i))



搭建主体程序,控制连接与否。



if IN[0]: TransactionManager.Instance.EnsureInTransaction(doc) for el in elems: Structure.StructuralFramingUtils.DisallowJoinAtEnd(el,0) Structure.StructuralFramingUtils.DisallowJoinAtEnd(el,1) TransactionManager.Instance.TransactionTaskDone() else: TransactionManager.Instance.EnsureInTransaction(doc) for el in elems: Structure.StructuralFramingUtils.AllowJoinAtEnd(el,0) Structure.StructuralFramingUtils.AllowJoinAtEnd(el,1) TransactionManager.Instance.TransactionTaskDone()

文章完……
注:图片仅供交流学习使用,严禁用于商业用途。


  • 用户评论