文章来源:Revit自行车
在Revit,过滤器就是筛选满足特定条件的多个图形的集合。对于过滤器的使用,在Revit的使用中是至关重要的的一个功能,过滤器对我而言是和CAD的图层系统有着一样重要的地位,过滤器的设置如下。
1&2.设置过滤器的名称,名称简单易懂即可;
3.选择类别,表明要对什么类别进行筛选;
4.设置过滤条件,即过滤器会对选中的构件中满足该条件的所有图元进行提取。
(图一)
这时候,我们会想有没有办法更省事地添加过滤器呢?对于这种情况我们看看dynamo有没有招儿。本项目中已经对混凝土构件已添加了参数『砼强度等级』。
(图二)
第一步
首先使用『ParameterFilterElement.ByRules』实现创建过滤器,前置接口需要依次提供『过滤器名称』,『类别』以及『过滤器规则』(对应图一,第1,3,4点)。
(图三)
第二步
其次设置过滤器名称,这一步只需要提供字符串,就可以生成过滤器名称,参考图一第1、2点。
(图四)
如果说用这种方式,明显速度都不如直接在Revit内操作。因为我们准备添加的是筛选混凝土强度等级的过滤条件。思路可以是这样子,使用『CodeBlock』产生一组递增的数列组,再和字符串“砼强度等级C”合并组成,即是我们要的一组过滤器名称。
(图五)
同理,一个过滤器名称将对应一条过滤器条件值,相应地我们在数字前加入前缀『C』重复上述操作即可,如此分别生成“过滤器名称”和“过滤器条件值”如下。
(图六)
注:对于非线性递增的参数值(即不满足上述特殊条件),使用其他命令可以实现直接在模型中已有的图形属性提取。
第三步
『过滤条件』这里使用『FilterRule.ByRuleType』,前置接口会读取所选构件的参数属性,再通过属性值和条件创建过滤条件。
按下图举例,电池会读取『墙』属性『砼强度等级』中的值与接入『value』的值(见图六)作比较,而比较方式则是按照『type』选择的“包含”关系。
(图七)
最后
我们希望得到的结果如下图,依次在过滤器列表有对应的过滤器名称,勾选所需要的构件类别,并设置满足要求的条件。
(图八)
那么我只需要将上述电池串联起来即可,结果如下。
评论前必须登录!
注册