- 积分
- 3619
- 明经币
- 个
- 注册时间
- 2008-9-22
- 在线时间
- 小时
- 威望
-
- 金钱
- 个
- 贡献
-
- 激情
-
|
本帖最后由 luowy 于 2021-12-19 15:41 编辑
- //注意这个收集器可以是一个文档,也可以是一个view,也可以是一个选择集,具体用哪个需要根据实际情况选取。这里以整个文档为例。
- FilteredElementCollector pipes = new FilteredElementCollector(m_document);
- BuiltInParameter pipesegmentPara = BuiltInParameter.RBS_PIPE_SEGMENT_PARAM;
- //这里生成一个Equal的规则,revitAPI提供了很多规则,比如大于,小于等等,还有混合的逻辑规则,下面的代码使用的是相同
- //与参数是管道管段相同的规则
- FilterRule fPipesegmentrRule = ParameterFilterRuleFactory.CreateEqualsRule(new ElementId((int)pipesegmentPara), m_pipe.get_Parameter(BuiltInParameter.RBS_PIPE_SEGMENT_PARAM).AsValueString(), false);
- ElementParameterFilter paraPipesegmentFilter = new ElementParameterFilter(fPipesegmentrRule);
- pipes = pipes.WherePasses(paraPipesegmentFilter);
复制代码
这样pipes就剩下与提供参数一致的管道了。
总结
这个ElementParameterFilter 是一个慢过滤器,需要结合快过滤器使用。
|
|