建立双曲面实体一直不是 Autodesk Revit 的强项,但是借助 Dynamo,我们可以很轻松地创建双曲面的实体。本文将通过一个双曲面花瓶墩的例子,详细讲解如何创建一个双曲面实体,以及如何对它进行剪切等操作。
1. 对双曲面实体的图纸进行观察
创建实体的过程无非是点-线-面-体,因此复杂的双曲面实体也是由简单的点线面等基础几何元素构成的。如图纸所示,这个双曲面花瓶墩的每个截面都是相似的,只是在高度方向上截面的长宽和立面凹槽的宽度有所不同。
在 Dynamo 中创建实体(Solid),最常用的方式就是创建实体的多个截面,然后通过穿过各个截面进行拉伸、放样、融合等操作完成实体的创建。因此我们需要先创建截面,并且截面的长度、宽度、凹槽宽度在不同的高度上容易改变。
所示,分析图纸很重要的一点是知道哪些参数是可变的,可变的一般设为实例参数,如各个截面的长宽等。哪些参数是不变的,不变的参数一般设为类型参数,如双曲面实体的各个弯曲半径等。
2. 创建截面族
我采取的方法是利用“公制常规模型”样板用“模型线”创建一个截面,并设置好约束,给约束赋予“族参数”(注意:墩高、截面长度、截面宽度、凹槽宽度应设置为“实例参数”,这样才能够单独修改每个截面的长度和凹槽宽度)。
对于这个截面族,我新建了一个族类型,命名为“A1型”。此外还要新建3个“类型参数”r1、r2、r3,分别对应立面外侧、内侧和侧面的弯曲半径。然后保存这个族,命名为“截面”。
3. 创建实体
将“截面”族载入到另一个基于“公制常规模型”或“公制体量”样板新建的族文件中,就可以调用 Dynamo 来创建实体了。
a. 放置底部截面
首先需要选中该“族类型”,然后利用通过“族类型”和坐标来放置“族实例”的节点来放置底部截面,坐标值默认为(0,0,0)。
b. 放置变截面与不变截面交界处的截面
通过前面的图纸,我们知道,截面与不变截面交界处的截面所在的高度为“墩高”减去3600mm。所以我们要先获取到“墩高”的值,然后减去3600mm,再利用之前放置底部截面的方法放置交界处的截面。
c. 放置变截面高度处的截面
用同样的方法,我们可以放置变截面不同高度处的截面,但是先不修改变截面高度处不同截面的长度、宽度和凹槽宽度等参数,放到后面来修改。
这里,我们在变截面高度段一共创建5个截面。当然,创建的截面越多,后面生成的实体就越精确,考虑到电脑性能和运算时间,不必创建过多截面。
d. 计算变截面不同高度处的截面长、宽和凹槽宽度
利用三角函数关系,我们可以计算出不同角度处截面的长、宽和凹槽宽度。三角函数关系图如下所示:
由三角函数关系可知我们需要知道弯曲半径和底部截面的长度、宽度就可以求出变截面不同高度处各截面的长、宽和凹槽宽度。
e. 将计算好的族参数值赋予各族参数
在上面的步骤中,我们已经计算好了各个变截面的截面长、宽和凹槽宽度,将值赋给各个截面就可以改变它们的形状。
f. 通过截面生成实体
有了这些截面,我们可以通过它们生成实体。因为这些截面是在 Revit 中生成的,并不是 Dynamo 中的元素,不能在 Dynamo 中直接生成实体,需要先转换一下。
g. 剪切实体
对照图纸可知,实体的之间部分是有凹槽的,因此我们需要对上个步骤中创建的实体进行剪切,完成中间凹槽的创建。
首先我们需要创建出要剪切掉的凹槽实体。
然后对原实体和需要剪切掉的实体求交集,即可减出凹槽。
除最后的节点外,隐藏前面所有节点的预览,完成创建。
4. 节点的复用
如果墩柱的型号不止一种,比如本文中仅仅使用了"A1型",那么也可以对此 Dynamo 节点重复利用来完成其他型号墩柱的创建。
具体的做法是在“截面”族中新增“族类型”,修改好该族类型的各个族参数,然后在节点中的第一个节点中选择对应的族类型就可以完成相应类型墩柱的创建了。
5. 文件下载
本文中用到的节点文件和族文件链接放在下面。