(本次思路,是基于 Dynamo2.1 版本编写,1.0 相关版本的,可以尝试用 lunchbox 里的节点。)
首先利用 Select Edge 节点,选择顶层和底层楼边的边线,分别创建列表,然后转换成 PolyCurve
之后利用 Curve.EndPoint 获取曲线的端点,并连接直线,用作幕墙高度的参考
然后可以添加一个滑块,用作楼层数的控制,注意 20 层,需要有 21 条线,所以要在楼层数后面加 1,然后就可以向上复制曲线了。
如果选择现在生成得曲线放样,我们可以生产一个垂直幕墙,这里就不再赘述,我们这里假设幕墙是按照正弦函数变化, 形成中间部分部分轮廓大的效果,需要对刚才生成得每层的曲线,向外偏移,实现如下效果:
这里的参数可以自己根据模型的大小、变化方式调整,这里仅仅是提供一种思路。
接下来,我们利用 Curve.PointAtParameter 获取曲线的等分点,并利用控制点重新生成样条曲线,也可以放样生成曲面(曲面在我们的后续操作中用不到,可以忽略)
之后将水平点的列表,转换成垂直的点的列表
然后通过两次,获取指定索引处的点,重新生成点的列表
将上一步获取到的四个角点,重新按照制定的列表层次,生成新的列表
最后放置四点自适应族到项目中即可,效果如下图:
本次只是作为思路的分享,不过多的讲解细节了,大家可以自行尝试