学会这几个Dynamo数据处理技巧,效率翻倍提升

最近一直在写Dynamo程序,但是很多东西是不能分享出来的,但是一些方法是可以分享的,整理了一些,今天先分享几个给大家。话不多说,直接进入主题:

1、快速筛选出一组物体中,有哪些物体与另一组物体相交

这里,我一般都会直接想到利用

List.FilterByBoolMask,用步布尔值进行过滤,既方便又准确。

我们利用两个物体的BoundingBox,进行Intersects,就能得到哪些相交,注意这里,要把连缀方式改成叉积,不然并不能逐个比对。
 

然后就是构造出和这组布尔值格式相同的原数据列表,方法如下:

通过获取原列表的长度,将另一组数据重复为相同长度,然后对列表进行转置,就可以匹配格式了,最后利用List.FilterByBoolMask就能把每组数据中心我们需要的那组数据提取出来了。
 

2、获取族类型参数

用过Dynamo的都知道,正常情况下,我们利用Element.GetParameterValueByName是无法获取族类型参数的,那么需要类型参数的时候该怎么做呢?

其实很简单,只需要在中间添加两个节点,对图元进行转换,得到对应的族名称和族类别,就可以提取族类型参数,如下图;

之后通过

Element.GetParameterValueByName就可读取族类型参数了。
 

当然了,现在有很多节点包可以帮我们解决这个问题,现在只需要下载一个Rhythm节点包,就能利用下面这个节点,直接读取族的类型参数:

3、如何简单的,将列表中相同的数据进行分组呢?
 

这个其实也很简单,和第一条里面的方法差不多,利用List.FilterByBoolMask进行过滤。

我们先利用List.UniqueItems获取列表中的唯一项的新列表,然后通过“=="进行比对得到一组布尔值,然后在过滤就可以了,如下图:


 

4、创建指定位数的编号
 

这个在车位编号之类的操作时候,很常用,将模型排好序以后,我们创建对应长度的编号,写入参数就行,这里就不多解释了,直接上节点:

上面List.Count的级别设置为2,是因为我多列表里有多个子列表,要分别排序,如果你是单个列表,直接取消级别即可。


 

好了,今天先简单分享这么几个方法,有时间我会继续分享的。

  • 13
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

九哥BIMer

予人玫瑰,手有余香

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值