luowy 发表于 2021-12-19 15:37

【RevitAPI】过滤器,只选择与参考管段管材一致的管道

本帖最后由 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 是一个慢过滤器,需要结合快过滤器使用。

894560869 发表于 2022-2-11 07:10

且放白鹿青崖间 须行即骑访名山?
页: [1]
查看完整版本: 【RevitAPI】过滤器,只选择与参考管段管材一致的管道