基于规则的过滤器示例

研究这些示例以了解如何构建基于规则的过滤器并应用到视图。

可以创建多个规则和多个规则集。规则集可以进行嵌套。

您可以定义的规则和规则集没有数量限制。使用 AND 和 OR 条件和嵌套来仔细规划过滤规则,以确保获得所需的结果。

提示: 创建一个样例模型,其中包含要在过滤器中使用的类别的图元。通过创建具有规则的过滤器并将过滤器应用于视图来进行实验,直到获得所需的结果。然后使用“传递项目标准”以将该过滤器传递到您的项目中。

简单的 AND 条件

规则集使用 AND 条件时,其所有规则和嵌套规则集必须为 true。

请看下面的样例:

简单的 OR 条件

在规则集使用 OR 条件时,其一个或多个规则或者嵌套规则集必须为 true。

如果要为参数选择多个值,请为每个值添加一个规则。使用 OR 条件将这些规则嵌套在规则集下。

请看下面的样例:

嵌套的规则集

过滤器规则包含嵌套规则集时,请按正确顺序以及相应的嵌套谨慎使用 AND 和 OR 条件。

对于某些结果,必须使用嵌套 OR 的 AND 条件。对于其他结果,必须使用嵌套 AND 的 OR 条件。结果可能迥然不同,必须非常小心地使用适当过滤器规则才能达成您的目标。

目标:您想要识别该模型中所有拥有 2 小时防火等级并且由混凝土制成的剪力墙。

在您的模型中,墙类型的名称可能包含单词“混凝土”或“CMU”,或使用“结构材质”参数指示其材料。

嵌套 AND 的 OR -- 无法达到目标

如果您使用嵌套在 OR 规则集内的 AND 规则集创建以下过滤器,将不会达成目标。

  • 对于类别“墙”,此过滤器将反映以下公式:

    类型名称包含 "混凝土"

    OR 类型名称包含 "CMU"

    OR 结构材质 = "混凝土砌块"

    OR 结构材质 = "混凝土,现场浇注灰色"

    OR (结构用途 = "剪力" AND 防火等级 = "2 小时")

  • 此过滤器获得所需的结果。它识别混凝土墙或任何具有 2 小时防火等级的剪力材料制成的墙。

嵌套 OR 的 AND - 达成目标

在此情况下,要识别该模型中所有拥有 2 小时防火等级并且由混凝土制成的剪力墙,您必须从 AND 规则集开始,并在其中嵌套 OR 规则集,如下所示:

  • 对于类别“墙”,此过滤器将反映以下公式:

    结构用途 = "剪力"

    AND 防火等级 = "2 小时"

    AND (类型名称包含 "混凝土" OR 类型名称包含 "CMU" OR 结构材料 = "混凝土砌块" OR 结构材质 = "混凝土,现场浇注灰色")

这些示例证明了为什么您必须仔细考虑试图获得的结果,以及为什么设计过滤器并彻底进行测试如此重要。