user: Give a detailed overview of Main Region: syntax, arguments, return values, common patterns.

assistant: ### Object Interaction Mode

[image reference removed]

Mode icons. Two objects are currently in Edit Mode; a third could be added.

If a selected object is in an [interaction mode](../3dview/modes.html)
other than the default Object Mode, the Outliner shows an icon representing
this mode on the left.

If the active object has such an icon, the Outliner also shows a dot next to
objects of the same type. You can click such a dot to switch over to a different
object while staying in the same mode.

If the mode supports [Multi-Object Editing](../3dview/modes.html#dview-multi-object-mode), you can also click a
dot with `Ctrl`-`LMB` to *add* an object to the mode.

You can click the mode icon of the active object to switch it (and any other objects
in case of Multi-Object Editing) back to Object Mode. You can also `Ctrl`-`LMB`
the mode icon of a selected – but not active – object to switch only that object
back to Object Mode.

### Restriction Toggles

[image reference removed]

Restriction toggles.

The right side of the Outliner shows a series of toggle icons for every collection,
object, bone, modifier, and constraint. These can be used to make the item invisible,
unselectable, and so on.

Clicking an icon with `Shift`-`LMB` toggles it for the item and all its children.

Clicking a collection’s icon with `Ctrl`-`LMB` enables it for the collection (and its
parent/child collections) and disables it for all others. Clicking again enables it for the others again.

Exclude from View Layer (checkbox) Collections
:   Toggles the collections inclusion in the current [View Layer](../../render/layers/index.html).
    When excluded, contents will be hidden in the 3D Viewport, the render, and the Outliner.
    See [Include](../../scene_layout/collections/collections.html#bpy-types-layercollection-exclude) for more information.

Disable Selection (mouse cursor icon)
:   Toggles whether the object or collection can be selected in the 3D Viewport.
    This can be useful for, say, references images that you only want to display and never select/move.

    See more information for:

    - [Collections](../../scene_layout/collections/collections.html#bpy-types-collection-hide-select)
    - [Objects](../../scene_layout/object/properties/visibility.html#bpy-types-object-hide-select)

Hide in Viewports (eye icon)
:   Toggles the visibility of the object or collection in (only) the 3D Viewport, for the current view layer.
    The render is not affected.

    As an alternative to clicking this icon, you can press `H` while hovering over the
    3D Viewport to hide the selected objects, or `Alt`-`H` to unhide all objects.

    This setting only applies within the current blend-file: when you
    [Link or Append](../../files/linked_libraries/link_append.html) it to another
    blend-file, all collections and objects will be visible there.

    Objects hidden this way are still part of the view layer,
    so they still get evaluated and affect playback performance.

Disable in Viewports (screen icon)
:   Toggles the visibility of the object or collection in (only) the 3D Viewport, for all view layers.
    The render is not affected.

    This setting is separate from *Hide in Viewports*. An object needs to have both settings
    enabled to be visible. You can use this one for “long-term invisibility,”
    keeping an object invisible even after pressing `Alt`-`H`.

    This setting carries over to other blend-files when linking or appending.

    Objects hidden this way are no longer part of the view layer,
    so they no longer get evaluated and don’t affect playback performance.

Disable in Renders (camera icon)
:   Toggles the visibility of the object or collection in (only) the render,
    for all view layers. The 3D Viewport is not affected.

    This is typically used for supporting objects that help modeling and animation
    yet don’t belong in the final image.

Holdout Collections
:   Toggles the collection’s [Holdout](../../scene_layout/collections/collections.html#bpy-types-layercollection-holdout) property,
    which makes the objects in the collection cut a fully transparent hole into the render output of the view layer.

Indirect Only Collections Cycles
:   Toggles the collection’s [Indirect Only](../../scene_layout/collections/collections.html#bpy-types-layercollection-indirect-only) property,
    Objects inside this collection will only contribute to the final image indirectly through shadows and reflections.