Autodesk.Revit.DB.FilterDoubleRule是用于指定针对数值类型参数进行过滤的规则。
Autodesk.Revit.DB.FilterDoubleRule类有两个构造函数可供使用:
FilterDoubleRule(ParameterId parameterId, Double value, FilterNumericRuleType ruleType)
FilterDoubleRule(Parameter parameter, Double value, FilterNumericRuleType ruleType)
第一个构造函数将操作针对由参数ID标识的参数,而第二个构造函数将操作针对指定的参数。两种构造函数都需要一个Double类型的value,该值将与参数的值进行比较。ruleType参数则指定了应如何比较这些值。
以下是可用的FilterNumericRuleType参数:
这些参数控制如何比较value与参数值。例如,如果使用Equals参数,则只有当参数值等于value时才会返回true。
以下是一个使用FilterDoubleRule的示例代码:
var parameterId = new ElementId(BuiltInParameter.WALL_BASE_OFFSET);
var minValue = 0;
var rule = new FilterDoubleRule(parameterId, minValue, FilterNumericRuleType.GreaterEqual);
var collector = new FilteredElementCollector(doc).WherePasses(new ElementParameterFilter(rule));
在这个示例中,我们生成了一个FilterDoubleRule对象,该对象将用于筛选所有墙的BASE OFFSET参数大于或等于0的元素。我们将该规则传递给FilteredElementCollector的WherePasses方法,并返回所有符合规则的元素集合。