1.ParameterFilterRuleFactory class
创建过滤规则工厂类:包含基于给定参数创建适当FilterRule对象的函数。
可以创建包含、大于、等于、小于等各种规则

2.配合ElementParameterFilter使用
我们在Revit中,如果想要通过参数来过滤构件,可以用ElementParameterFilter,但是这个过滤器,是一个慢速过滤,所以最好配合快速过滤器一起用,以提高过滤效率。
(1)获取项目中所有标记大于3的窗:
private void m_ElementParameterFilter()
{
FilteredElementCollector temc = new FilteredElementCollector(doc);
//窗标记参数的Id
ElementId pid = new ElementId(-1001203);
//创建一个大于的FilterRule
FilterRule fr = ParameterFilterRuleFactory.CreateGreaterRule(pid,"3",true);
// 创建一个ElementParameterFilter
ElementParameterFilter pf = new ElementParameterFilter(fr);
// 过滤,配合Category过滤器(快速过滤)过滤
temc.OfCategory(BuiltInCategory.OST_Windows).WherePasses(pf);
MessageBox.Show(temc.Count().ToString());
}
(2)按规程过滤类别

本文介绍了Revit二次开发中的ParameterFilterRuleFactory类,用于基于参数创建过滤规则,如包含、大于、等于、小于等。同时讨论了如何配合ElementParameterFilter使用,尤其是在需要过滤构件时,通过结合快速过滤器以提高效率,例如筛选标记大于3的窗,或按规程过滤类别。
1136

被折叠的 条评论
为什么被折叠?



