Dynamo创建立面标高标注【注释系列教程】
火爆的花生
2023年07月12日 13:39:53
只看楼主

Hello大家好!我是九哥~         最近经常有小伙伴咨询关于如何用Dynamo创建尺寸标注的问题,看来大家都已经到了BIM出图的阶段,这是好事儿,那么,最近就抽时间写一些关于Revit注释的教程,通过Dynamo来解决一些重复工作。         今天要分享的,是通过Dynamo快速创建立面标高标注。

Hello大家好!我是九哥~

        最近经常有小伙伴咨询关于如何用Dynamo创建尺寸标注的问题,看来大家都已经到了BIM出图的阶段,这是好事儿,那么,最近就抽时间写一些关于Revit注释的教程,通过Dynamo来解决一些重复工作。

        今天要分享的,是通过Dynamo快速创建立面标高标注。

        最简单的方式,就是使用Dynamo自带的节点,简单搜下Dimension就能找到Dimension.ByElements节点,可以通过视图、图元、定位线来创建尺寸标注。不过只能使用默认的尺寸标注样式。

        这里差的似乎只是定位线,这里我提供一种思路,来创建定位线。通过获取视图的剪裁框,来获取定位线。

        在API手册中,View下面,很容易就能找到GetCropRegionShapeManager方法,再进一步,就可以找到GetCropShape方法。

        这样就可以获取到剪裁框的线,代码如下:






























import clrclr.AddReference('ProtoGeometry')from Autodesk.DesignScript.Geometry import *
clr.AddReference("RevitNodes")import Revit
clr.ImportExtensions(Revit.GeometryConversion)
if isinstance(IN[0], list): view = UnwrapElement(IN[0]) toggle = 0else: view = [UnwrapElement(IN[0])] toggle = 1 listout = []for x in view: region = x.GetCropRegionShapeManager().GetCropShape() if len(region) > 0: lines = [y.ToProtoType() for y in region[0]] listout.append(lines) else: listout.append([])
if toggle == 0: OUT = listoutelse: OUT = lines

        然后我们是在立面中,可以通过判断曲线的方向,来筛选所需直线,如下图:

        完整截图如下:

        如果想直接设置标注类型,也可以使用GeniusLoci包中的Dimension ByReferences节点,创建尺寸标注,支持设置标注类型,但是这里需要输入的是图元参照,即Reference。

        然后可以在API手册中搜下Reference,很容易就能找到Reference构造器,可以获取图元的参照。

        简单写个循环,即可获取标高的参照Reference。

























import clrclr.AddReference('RevitAPI')import Autodeskfrom Autodesk.Revit.DB import *
clr.AddReference('RevitNodes')import Revitclr.ImportExtensions(Revit.GeometryConversion)clr.ImportExtensions(Revit.Elements)from Revit.Elements import *
clr.AddReference('RevitServices')import RevitServicesfrom RevitServices.Persistence import DocumentManager
doc = DocumentManager.Instance.CurrentDBDocument
items = IN[0]
out = []for e in items: out.append(Reference((UnwrapElement(e)))) OUT = out

        然后通过All Elements of Type获取所有的标注类型Dimension Types。

        最后附上完整程序截图,如下:

好了,今天的分享就到这里了,小伙伴们快去尝试吧~

如果你有好的想法和建议,欢迎分享哦~

相关推荐

APP内打开