diff --git a/cvat/apps/documentation/static/documentation/images/image059.jpg b/cvat/apps/documentation/static/documentation/images/image059.jpg
index 779ac153..f5cd0edf 100644
Binary files a/cvat/apps/documentation/static/documentation/images/image059.jpg and b/cvat/apps/documentation/static/documentation/images/image059.jpg differ
diff --git a/cvat/apps/documentation/static/documentation/images/image202.jpg b/cvat/apps/documentation/static/documentation/images/image202.jpg
new file mode 100644
index 00000000..b566029d
Binary files /dev/null and b/cvat/apps/documentation/static/documentation/images/image202.jpg differ
diff --git a/cvat/apps/documentation/static/documentation/images/image203.jpg b/cvat/apps/documentation/static/documentation/images/image203.jpg
new file mode 100644
index 00000000..d7b5ea10
Binary files /dev/null and b/cvat/apps/documentation/static/documentation/images/image203.jpg differ
diff --git a/cvat/apps/documentation/static/documentation/images/image204.jpg b/cvat/apps/documentation/static/documentation/images/image204.jpg
new file mode 100644
index 00000000..921d8e5f
Binary files /dev/null and b/cvat/apps/documentation/static/documentation/images/image204.jpg differ
diff --git a/cvat/apps/documentation/static/documentation/images/image205.jpg b/cvat/apps/documentation/static/documentation/images/image205.jpg
new file mode 100644
index 00000000..78726706
Binary files /dev/null and b/cvat/apps/documentation/static/documentation/images/image205.jpg differ
diff --git a/cvat/apps/documentation/static/documentation/images/image206.jpg b/cvat/apps/documentation/static/documentation/images/image206.jpg
new file mode 100644
index 00000000..9c2f020a
Binary files /dev/null and b/cvat/apps/documentation/static/documentation/images/image206.jpg differ
diff --git a/cvat/apps/documentation/static/documentation/images/image207.jpg b/cvat/apps/documentation/static/documentation/images/image207.jpg
new file mode 100644
index 00000000..d6c0ccf1
Binary files /dev/null and b/cvat/apps/documentation/static/documentation/images/image207.jpg differ
diff --git a/cvat/apps/documentation/static/documentation/images/image208.jpg b/cvat/apps/documentation/static/documentation/images/image208.jpg
new file mode 100644
index 00000000..eaf7dc10
Binary files /dev/null and b/cvat/apps/documentation/static/documentation/images/image208.jpg differ
diff --git a/cvat/apps/documentation/user_guide.md b/cvat/apps/documentation/user_guide.md
index 77b334f1..71a32dcb 100644
--- a/cvat/apps/documentation/user_guide.md
+++ b/cvat/apps/documentation/user_guide.md
@@ -1196,13 +1196,6 @@ Press `Esc` to cancel editing.
It is used for semantic / instance segmentation.
-The Z-Order flag defines the order of drawing. It is necessary to
-get the right annotation mask without extra work (additional drawing of borders).
-Z-Order can be changed by pressing `+`/`-` which set maximum/minimum z-order
-accordingly.
-
-
-
Before starting, you need to select `Polygon` on the controls sidebar and choose the correct Label.

@@ -1564,70 +1557,86 @@ Shapes that don't have `group_id`, will be highlighted in white.
## Filter
-
-
There are some reasons to use the feature:
1. When you use a filter, objects that don't match the filter will be hidden.
1. The fast navigation between frames which have an object of interest.
Use the `Left Arrow` / `Right Arrow` keys for this purpose
- or customize the UI buttons by right-clicking and select "switching by filter".
+ or customize the UI buttons by right-clicking and select `switching by filter`.
If there are no objects which correspond to the filter,
you will go to the previous / next frame which contains any annotated objects.
-1. The list contains frequently used and recent filters.
-To use the function, it is enough to specify a value inside the `Filter` text
-field and press `Enter`. After that, the filter will be applied.
+To apply filters you need to click on the button on the top panel.
----
+
+
+It will open a window for filter input. Here you will find two buttons: `Add rule` and `Add group`.
+
+
+
+### Rules
+
+The "Add rule" button adds a rule for objects display. A rule may use the following properties:
+
+
**Supported properties:**
-| Properties | Supported values | Description |
-| ---------- | ------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------- |
-| `width` | number of px or `height` | shape width |
-| `height` | number of px or `width` | shape height |
-| `label` | `"text"` or `["text"]` | label name |
-| `serverID` | number | ID of the object on server
(You can find out by forming a link to the object through the Action menu) |
-| `clientID` | number | ID of the object in your client (indicated on the objects sidebar) |
-| `type` | `"shape"`, `"track"`, `"tag"` | type of object |
-| `shape` | `"rectangle"`,`"polygon"`,
`"polyline"`,`"points"` | type of shape |
-| `occluded` | `true` or `false` | occluded properties |
-| `attr` | `"text"` | attribute name |
+| Properties | Supported values | Description |
+| ----------- | ------------------------------------------------------ | --------------------------------------------|
+| `Label` | all the label names that are in the task | label name |
+| `Type` | shape, track or tag | type of object |
+| `Shape` | all shape types | type of shape |
+| `Occluded` | true or false | occluded ([read more](#shape-mode-advanced))|
+| `Width` | number of px or field | shape width |
+| `Height` | number of px or field | shape height |
+| `ServerID` | number or field | ID of the object on the server
(You can find out by forming a link to the object through the Action menu)|
+| `ObjectID` | number or field | ID of the object in your client
(indicated on the objects sidebar)|
+| `Attributes`| some other fields including attributes with a
similar type or a specific attribute value| any fields specified by a label |
-**Supported operators:**
+**Supported operators for properties:**
-`==` - Equally; `!=` - Not equal; `>` - More; `>=` - More or equal; `<` - Less; `<=` - Less or equal;
-`()` - Brackets; `&` - And; `|`- Or.
+`==` - Equally; `!=` - Not equal; `>` - More; `>=` - More or equal; `<` - Less; `<=` - Less or equal;
-If you have double quotes in your query string, please escape them using backslash: `\"` (see the latest example)
-All properties and values are case-sensitive. CVAT uses json queries to perform search.
+`Any in`; `Not in` - these operators allow you to set multiple values in one rule;
----
+
+
+`Is empty`; `is not empty` – these operators don't require to input a value.
+
+`Between`; `Not between` – these operators allow you to choose a range between two values.
+
+Some properties support two types of values that you can choose:
+
+
+
+You can add multiple rules, to do so click the add rule button and set another rule. Once you've set a new rule, you'll be able to choose which operator they will be connected by: `And` or `Or`.
+
+
+
+All subsequent rules will be joined by the chosen operator. Click `Submit` to apply the filter or if you want multiple rules to be connected by different operators, use groups.
+
+### Groups
+
+To add a group, click the "add group" button. Inside the group you can create rules or groups.
+
+
+
+If there is more than one rule in the group, they can be connected by `And` or `Or` operators.
+The rule group will work as well as a separate rule outside the group and will be joined by an
+ operator outside the group.
+You can create groups within other groups, to do so you need to click the add group button within the group.
+
+You can move rules and groups. To move the rule or group, drag it by the button.
+To remove the rule or group, click on the `Delete` button.
+
+
+
+If you activate the `Not` button, objects that don't match the group will be filtered out.
+Click `Submit` to apply the filter.
+The "Cancel" button undoes the filter. The `Clear filter` button removes the filter.
-**Examples filters**
-
-- `label=="car" | label==["road sign"]` - this filter will show only objects with the car or road sign label.
-- `shape == "polygon"` - this filter will show only polygons.
-- `width >= height` - this filter will show only those objects whose width will be greater than
- or equal to the height.
-- `attr["color"] == "black"` - this filter will show objects whose color attribute is black.
-- `clientID == 50` - this filter will show the object with id equal to 50 (e.g. rectangle 50).
-- `(label=="car" & attr["parked"]==true) | (label=="pedestrian" & width > 150)` - this filter will display objects
- with the “car” label and the parking attribute enabled or objects with the “pedestrian” label with a height of more
- than 150 pixels
-- `(( label==["car \"mazda\""]) | (attr["parked"]==true & width > 150)) & (height > 150 & (clientID == serverID)))` -
- This filter will show objects with the label "car" mazda "" or objects that have the parked attribute turned on
- and have a width of more than 150 pixels, and those listed should have a height of more than 150 pixels
- and their clientID is equal to serverID.
-
-**Filter history**
-
-
-
-You can add previously entered filters and combine them. To do so, click on the input field and a list of previously
-entered filters will open. Click on the filters to add them to the input field.
-Combined filters occur with the "or" operator.
+Once applied filter automatically appears in `Recent used` list. Maximum length of the list is 10.
---