{
  "$schema": "../../../node_modules/@bentley/presentation-common/Ruleset.schema.json",
  "id": "presentation-frontend/HiliteRules",
  "rules": [
    {
      "ruleType": "Content",
      "condition": "ContentDisplayType = \"Graphics\" ANDALSO SelectedNode.IsOfClass(\"Subject\", \"BisCore\")",
      "onlyIfNotHandled": true,
      "specifications": [
        {
          "specType": "ContentRelatedInstances",
          "relationshipPaths": [
            [
              {
                "relationship": {
                  "schemaName": "BisCore",
                  "className": "ElementOwnsChildElements"
                },
                "direction": "Forward",
                "targetClass": {
                  "schemaName": "BisCore",
                  "className": "Subject"
                },
                "count": "*"
              },
              {
                "relationship": {
                  "schemaName": "BisCore",
                  "className": "ElementOwnsChildElements"
                },
                "direction": "Forward",
                "targetClass": {
                  "schemaName": "BisCore",
                  "className": "PhysicalPartition"
                }
              }
            ]
          ]
        }
      ]
    },
    {
      "ruleType": "Content",
      "condition": "ContentDisplayType = \"Graphics\" ANDALSO SelectedNode.IsOfClass(\"Model\", \"BisCore\")",
      "onlyIfNotHandled": true,
      "specifications": [
        {
          "specType": "SelectedNodeInstances"
        }
      ]
    },
    {
      "ruleType": "ExtendedData",
      "condition": "ThisNode.IsOfClass(\"Model\", \"BisCore\") ORELSE ThisNode.IsOfClass(\"PhysicalPartition\", \"BisCore\")",
      "items": {
        "isModel": "true"
      }
    },
    {
      "ruleType": "Content",
      "condition": "ContentDisplayType = \"Graphics\" ANDALSO SelectedNode.IsOfClass(\"Category\", \"BisCore\")",
      "onlyIfNotHandled": true,
      "specifications": [
        {
          "specType": "ContentRelatedInstances",
          "relationshipPaths": [
            {
              "relationship": {
                "schemaName": "BisCore",
                "className": "CategoryOwnsSubCategories"
              },
              "direction": "Forward"
            }
          ]
        }
      ]
    },
    {
      "ruleType": "Content",
      "condition": "ContentDisplayType = \"Graphics\" ANDALSO SelectedNode.IsOfClass(\"SubCategory\", \"BisCore\")",
      "onlyIfNotHandled": true,
      "specifications": [
        {
          "specType": "SelectedNodeInstances"
        }
      ]
    },
    {
      "ruleType": "ExtendedData",
      "condition": "ThisNode.IsOfClass(\"SubCategory\", \"BisCore\")",
      "items": {
        "isSubCategory": "true"
      }
    },
    {
      "ruleType": "Content",
      "condition": "ContentDisplayType = \"Graphics\" ANDALSO SelectedNode.IsOfClass(\"GroupInformationElement\", \"BisCore\")",
      "onlyIfNotHandled": true,
      "specifications": [
        {
          "specType": "ContentRelatedInstances",
          "relationshipPaths": [
            [
              {
                "relationship": {
                  "schemaName": "BisCore",
                  "className": "ElementGroupsMembers"
                },
                "direction": "Forward"
              },
              {
                "relationship": {
                  "schemaName": "BisCore",
                  "className": "ElementOwnsChildElements"
                },
                "direction": "Forward",
                "count": "*"
              }
            ]
          ],
          "instanceFilter": "this.IsOfClass(\"GeometricElement\", \"BisCore\")"
        }
      ]
    },
    {
      "ruleType": "Content",
      "condition": "ContentDisplayType = \"Graphics\" ANDALSO SelectedNode.IsOfClass(\"GeometricElement\", \"BisCore\")",
      "onlyIfNotHandled": true,
      "specifications": [
        {
          "specType": "ContentRelatedInstances",
          "relationshipPaths": [
            {
              "relationship": {
                "schemaName": "BisCore",
                "className": "ElementOwnsChildElements"
              },
              "direction": "Forward",
              "count": "*"
            }
          ],
          "instanceFilter": "this.IsOfClass(\"GeometricElement\", \"BisCore\")"
        },
        {
          "specType": "SelectedNodeInstances"
        }
      ]
    },
    {
      "ruleType": "Content",
      "condition": "ContentDisplayType = \"Graphics\" ANDALSO SelectedNode.IsOfClass(\"Element\", \"BisCore\")",
      "priority": 0,
      "onlyIfNotHandled": true,
      "specifications": [
        {
          "specType": "ContentRelatedInstances",
          "relationshipPaths": [
            {
              "relationship": {
                "schemaName": "BisCore",
                "className": "ElementOwnsChildElements"
              },
              "direction": "Forward",
              "count": "*"
            }
          ],
          "instanceFilter": "this.IsOfClass(\"GeometricElement\", \"BisCore\")"
        }
      ]
    }
  ]
}
