首页 理论教育 Revit基础教程:批次排版图例

Revit基础教程:批次排版图例

时间:2023-11-06 理论教育 版权反馈
【摘要】:2)节点思路从项目文件中取得需要排版图例的图纸,本案例中为所有图纸。②获得所有视图并过滤出图例视图。3)分步说明打开项目“范例文件.rvt”或已含有视图的项目文件,运行Dynamo 并打开范例文件“08批次排版图例.dyn”。图4.39批量排版图例4)实现目标如图4.40 所示,运行脚本后图例被批量置入了多个图纸中,实际项目中的图例排版实在是相当枯燥又耗时的工作。可尝试将多个不同图例排版,并将其与不同的图纸匹配。

Revit基础教程:批次排版图例

1)设定目标

另一个比较类似的状况就是把一些设计说明或者图例排版到多个图框的同一位置。细微的差别在于图例及设计说明的范围及轮廓比较单一且细小,所以通常可以沿用一个统一的坐标在图框中定位。因此,这一节脚本编写的思路就是根据固定坐标点排版图例视口到多个图框。当然,上一案例中“父视口子视口”的逻辑架构也是可行的。脚本编写本来就可以有很多逻辑思路,可根据具体状况因地制宜地使用,这里介绍另外一种思路供大家参考。

2)节点思路

从项目文件中取得需要排版图例的图纸,本案例中为所有图纸。取得所有视图并从中过滤出图例,这里有关系到图纸标准化管理的内容,即命名方式,比如图例就需要命名为××图例,而不是一些毫无规律可循的名字,这样在进行自动化流程的脚本编写时才能采集到有效的数据,最后根据坐标将图例置入所有选中的图纸中。

①获得需要置入图例的图纸。

②获得所有视图并过滤出图例视图。

③根据参照坐标将图例置入所有选中的图纸中。

3)分步说明

(1)打开项目“范例文件.rvt”或已含有视图的项目文件,运行Dynamo 并打开范例文件“08批次排版图例.dyn”(见图4.37)。

图4.37 Dynamo 节点范例

调用“Categories”和“All Elements of Category”取得所有图纸和所有视图。过滤视图分两步,过滤出空值,再从中筛选出名字为“图例”的视图。列表中有空值时,脚本运行有时候会出现一些莫名的错误提示或直接无法运行,当然有时候也勉强可以运行,总之过滤掉列表中的空值是确保脚本有效运行的最佳实践之一。这里调用“Object.IsNull”和“List.FilterByBoolMask”节点组合,通过分项是否为空的布林值将视图列表一分为二,in 输出口输出的是布林值为True 的分项,即视图元件为空;out 输出口输出的是布林值为False 的选项,即视图元件不为空。

将out 输出口连接到“List.G etItemAtIdex”节点,然后只要在index 入埠处接入图例视图在列表中的序号,即可获得所需的视图文件。但此处不可直接在查看列表后手动输入,因为范例文件中需处理的视图有限,才有手动检查及输入的可能性,真实项目中动辄几十上百的视图,脚本编写中始终要以连续性为先,即条件改变后,脚本的逻辑仍然可以运行并获得结果。因此,此处调用“List.IndexOf”节点,连接上一步骤获得的视图列表和需要获得序列的视图名称“图例”,运行脚本在下拉列表中发现该节点自动在列表中筛选出“图例”视图的序列是17,将该值连接到“List.GetItemAtIdex”节点的Index入埠处。这样即使下一个项目文件图例视图的序列变了或是有不止一个图例视图,都可以顺利地筛选出来进行下一步处理(见图4.38)。

(www.xing528.com)

图4.38 获得图例

(2)调用“Viewport.Create”节点,有3 组信息需要输入。Sheet 入埠处连接上一步骤中获得的图纸列表;View 入埠处需要连接要置入图纸的视图,自然需要连接到上一步骤中筛选出的图例视图;最后是location 用来定义视图置入的位置,引用定义坐标的节点“Point.ByCoordinate”并输入x、y 值确定位置,可运行多次测试位置是否满足需求(见图4.39)。

图4.39 批量排版图例

4)实现目标

如图4.40 所示,运行脚本后图例被批量置入了多个图纸中,实际项目中的图例排版实在是相当枯燥又耗时的工作。可尝试将多个不同图例排版,并将其与不同的图纸匹配。

图4.40 成果范例 Revit VS Dynamo

学习测试】

问题1:Dynamo 中获取Revit 视图/视口表单的节点组合是什么?

问题2:Dynamo 中获取视口位置的节点是什么?

问题3:Dynamo 中根据一个视口位置排版其他视口位置的节点是什么?

问题4:Dynamo 中根据坐标将视图排版到图纸的节点是什么?

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈