{
  "title": "Building Scene Layer Filter",
  "type": "object",
  "$schema": "http://json-schema.org/draft-04/schema",
  "description": "Filter allows client applications to reduce the drawn elements of a building to specific types and values. Filters on the webscene override the list of existing filters on the service.",
  "properties": {
    "description": {
      "type": "string",
      "description": "Description of the filter."
    },
    "filterAuthoringInfo": {
      "type": "object",
      "description": "Metadata about the athoring process for this filter.",
      "$ref": "buildingSceneLayer_filterAuthoringInfoCheckbox_schema.json"
    },
    "filterBlocks": {
      "type": "array",
      "description": "Array of filter blocks defining the filter. A filter contains at least one filter block.",
      "items": {
        "type": "object",
        "$ref": "buildingSceneLayer_filterBlock_schema.json"
      },
      "minItems": 1
    },
    "id": {
      "type": "string",
      "description": "unique filter id (uuid). Either a new id to extend the list of filters, or an existing id to override properties of an existing filter."
    },
    "name": {
      "type": "string",
      "description": "Name of the filter."
    }
  },
  "required": [
    "filterBlocks",
    "id",
    "name"
  ],
  "additionalProperties": false,
  "esriDocumentation": {
    "examples": [
      {
        "title": "Building Scene Layer Filter",
        "code": {
          "filter": {
            "id": "5a7e75ce-ceb8-4922-aba7-0aadb16976e2",
            "name": "Test Filter",
            "description": "Example Filter for webscene spec",
            "filterBlocks": [
              {
                "title": "Solid",
                "filterExpression": "floorId = 5 AND deletedPhase IS NULL",
                "filterMode": {
                  "type": "solid"
                }
              },
              {
                "title": "Wireframe",
                "filterExpression": "floorId < 5 AND deletedPhase IS NULL",
                "filterMode": {
                  "type": "wireFrame",
                  "edges": {
                    "type": "solid",
                    "color": [
                      120,
                      120,
                      120
                    ],
                    "size": 0.75,
                    "transparency": 50
                  }
                }
              }
            ]
          }
        }
      }
    ]
  }
}
