首页/技术分享

Dynamo样例文件解析之Core_ListAtLevel

发布于:2019-08-07 11:01:41
5104人 分享

该样例文件主要是介绍列表中级别的应用,列表中关于级别的设置可以让我们直接选择要处理的列表级别。

1、创建一个多维列表。

1.1 代码块中的第一行“0..30..#8”表示生成一个起始值为0、终止值为30、列表的项数为8的列表。

1.2 代码块中的第二行“12..0..#4”表示生成一个起始值为12、终止值为0、列表的项数为4的列表。

1.3 通过节点Point.ByCoordinates创建点,连缀方式为叉积。将第一个列表作为点X分量的值,将第二个列表作为点Y分量和Z分量的值。

1.4 所生成的点列表一共有三个维度。L3上一共有八个列表,这八个列表是由X分量的数值所控制的。L3上的八个列表在L2层级各有4个子列表。L2上的所有子列表再L1层级上各有四个点对象。共计“8x4x4=128”个点。

2、通过使用级别操作列表。

2.1 为生成的点图元连接节点Count。同时打开“使用级别”,将级别定位在L4的时候,Count命令将会针对该级别的一个列表,因此结果为8个子列表。

2.2 为生成的点图元连接节点Count。同时打开“使用级别”,将级别定位在L3的时候,Count命令将会针对该级别的八个列表,因此结果为4个子列表。每个列表都是4个子列表,因此结果是八个4。

2.3 为生成的点图元连接节点Flatten。同时打开“使用级别”,将级别定位在L3的时候,Flatten命令将会针对该级别的八个列表,因此这八个列表就都被展平,原本的四个子列表变为一个列表。

3、打开“保持列表结构”。同样都是接入节点Count,并且针对L2执行命令。在不保持列表结构的情况下,所获取的结果是32个4组成的列表,但是所得的结果被存入一个列表中。在保持列表结构的情况下,所获取的结果会保留原本列表的存放规律。

4、通过节点List.Map可以实现和使用级别相同的效果。

4.1 在没有使用节点List.Map的情况下,节点List.GetItemAtIndex会针对输入列表最外层的列表执行命令。因此结果是将L4层级下的“1 List”和“2 List”的内容。

4.2 使用第一个List.Map,节点List.GetItemAtIndex会脱离列表的第一层级,将函数应用至距离最外侧第二层的列表。因此结果是获取位于L3层级下的“1 List”和“2 List”的内容。

4.3 使用第二个List.Map,节点List.GetItemAtIndex会脱离列表的第一层级,将函数应用至距离最外侧第三层的列表。因此结果是获取位于L2层级下的“1 List”和“2 List”的内容。

5、通过列表的使用级别功能,可以更加高效地获取嵌套列表内部的数据。

5.1 打开节点List.GetItemAtIndex的“使用级别”,并且“保持列表结构”。获取的结果与步骤4.3连续使用两次List.Map的结果是一样的。

5.2 最后通过生成两个几何图形来说明最终列表的结果。第一个是通过节点List.GetItemAtIndex列表中的L4层级中的八个列表生成八块曲面。第二个是通过节点List.GetItemAtIndex列表中的L4层级中的八个列表生成“4x8=32”条直线。

转载请注明来源本文地址:https://www.tuituisoft/blog/3304.html

上一篇:

revit MEP 中如何编辑管道材质

下一篇:

Dynamo样例文件解析之Core_ListLacing