下载app免费领取会员
说到参数化建模,常常用于表达复杂的设计,在这个过程中,我们选择工具的时候一般想到的都是大家所熟知的Rhino+Grasshopper。但是Revit+Dynamo同样也能做出一些比较复杂的效果,接下来就通过一个实例来模拟实际建筑外装饰幕墙设计。
1、选取参考曲线并复制至各标高处
1.1 先通过节点“Select Model Element”选择参考线,再通过节点“Categories”和节点“All Elements of Category”选中所有属于指定族类别的图元。
1.2 参数element表示拾取的曲线,参数level表示选取的标高。我们现在在第一行获取element的曲线图元,在第二行获取各个标高的数值并且从小到大排序。在第三行将获取曲线图元向上移动复制,即在每个标高位置都复制一次曲线图元。在第四行将复制后的列表铺平。
2、造型缩放数值参数控制
2.1 首先将缩放的比例定义在区间[0.74,1.18]之间,然后通过节点“Math.RemapRange”将所有标高的列表保持分布率不变在区间[0.74,1.18]内重新分布。
2.2 然后通过节点“List.DiagonalLeft”获取子列表宽度为3,从右上角至左下角提取列表的数据。
2.3 最后转置变为我们需要的列表。这样做的目的在于将缩放系数分为三个部分。
2.4 第四行至第七行的含义是控制三个部分的缩放系数。其中item0和item2反转的原因是想让缩放后变为S形。正常情况下,缩放系数为从小到大排列,反转第一个和第三个列表之后,缩放系数为从小到大,再从大到小,再从小到大,最后从大到小。
3、标高曲线轮廓缩放
3.1 在这个Code Block中,list端外接第二步中获取的缩放系数列表“ list = Flatten({item0, item1, item2})”,mask端通过节点“Object.IsNull”外接第二步中获取的缩放系数列表“ list = Flatten({item0, item1, item2})”,geo端外接第一步中铺平后的列表“Flatten(geo)”。
3.2 首先第一行通过节点“List.FilterByBoolMask”判断缩放系数的列表中是否存在空值。
3.3 第二行和第三行确定X方向与Y方向的缩放系数,Y方向的缩放系数需要反转是因为要在X和Y两个方向交叉缩放。
3.4 第四行运用确定的缩放系数执行缩放。
4、创建幕墙嵌板定位点
4.1 每个标高的轮廓确定以后,就得确定轮廓线上的嵌板定位点。输入端cur外接上一步缩放后的曲线“ geometry = geo.Scale(x, y, 1)”,输入端d表示嵌板的宽度。定位点的确定公式是将整个轮廓线的长度除以指定的嵌板宽度,然后对结果进行向上取整。
4.2 然后我们需要两个点的列表,pts1表示所有曲线轮廓的起点,pts2表示所有曲线的均分点。
4.3 在第五行将轮廓线的起点依次添加进每层曲线的均分点中,相当于从起始点开始到终点然后又回到一次起点。例如,图中从0开始至3,然后又以0结尾,即{0, 1, 2, 3, 0}。
5、嵌板边线的创建与定位点清单排序
5.1 输入端pts接入上一步“List.AddItemToEnd(pts1@-1<1>, pts2@-2<1>)”的结果。
5.2 原本的pts列表中的点为同一标高的点,经过转置以后就得到竖直方向点的列表,目的在从上往下形成多重曲线。该曲线的目的在于检查我们上一步是否有错位的情况。
5.3 由于嵌板在布置的时候,列表最后一个点会接回第一个点,所以在第三行用节点“List.FirstItem”先将第一个点提取出来,然后在用节点“List.AddItemToEnd”将第一个点添加列表。
本文版权归腿腿教学网及原创作者所有,未经授权,谢绝转载。
上一篇:Revit快速创建风管布局!