最近我一直在尝试使用Dynamo 快速创建门窗的详细图纸。经过几周的测试,我们终于实现了基本的功能。今天我将简要分享一下结果。我只是录制屏幕来展示基本功能。
效果基本上是这样的:一键完成,尺寸、标签等问题稍后再优化。
接下来我简单分享一下我的想法。毕竟我已经研究这个很久了,程序就不分享了。
首先,由于我的水平有限,我找不到任何API可以直接创建门窗图例,所以我发挥了一点创意,先将门窗图例放在图例视图中并收集了所有内容。列出当前视图的图例,并使用List.FilterByBoolMask过滤掉所有类别为图例组件的元素。
然后使用List.Deconstruct 只获取第一个,并使用Elements 删除其他元素并仅保留一个。
之后,创建一个点阵来复制您在上一步中保留的门窗图例,如下所示。
在这里,我们首先创建一组点,然后转置并展平它们。这是因为您想要的列表是从左到右,然后换行以从左到右继续。所以我们还需要处理列表来创建所需的向量。如下图,步骤比较复杂,需要多次尝试才能理解其含义。
我这里就不多解释了。接下来,合并前两个步骤中的列表以创建向量。
然后取出你想要的向量列表。
此时我们已准备就绪,可以使用以下节点复制图例:
这样你会得到一系列图例,但所有图例都是第一个复制的,而且都是一样的,所以你需要传递以下值:
Element.SetParameterByName,设置图例类型。类似地,该方法创建一个图片框并检索图例参数并将它们写入图片框。
到这里我们的基本功能就实现了,快速创建门窗详图。从上面的视频中可以看到,部分门窗是在链接模型中的。现在我们需要使用BimorphNodes 的一些节点将一系列链接模型复制到当前项目中。大家不妨尝试一下。
这里更复杂的是,如果要将绘图图例更改为链接模型族类型,则图例参数无法写入当前文档,因此必须直接检索链接模型族类型。首先获取族类型的名称,然后获取当前项目的族类型名称,然后将两个列表连接起来得到唯一值,然后通过名称获取族类型,然后到图例组件。我将在这里向您展示列表比较过程,但它相对简单,因此您可以自己尝试一下。
尚不完美的是,我们还没有找到一种方法来判断这个窗口是有两片叶子还是三片叶子,因此我们无法创建完美的二维视图。
现在,获取图例的外部轮廓,并使用Dimension.ByElements 节点创建的尺寸创建两条相同的外部尺寸线。
在这里,我们获得门和窗的BoundingBox 并将其展平到图例视图上。
然后使用顶点重建并标记要标记的线。
至此,视频中的门窗细节基本完成。
使用的节点包是:如果有必要,我不会将其包含在文章中。
1.发条
2.阿奇拉博内特
3.饭盒
4. Spring节点
5. 节奏
6.MEP结束
7. 与号
8.用勺子舀起
好了,这就是今天的全部内容。如果我找到更好的方法,我会继续分享。