user: Show practical ways to work with WorkSpace(ID) in a Blender add-on or script – include code.

assistant: # WorkSpace(ID)

base classes — [`bpy_struct`](bpy.types.bpy_struct.html#bpy.types.bpy_struct "bpy.types.bpy_struct"), [`ID`](bpy.types.ID.html#bpy.types.ID "bpy.types.ID")

*class* bpy.types.WorkSpace(*ID*)
:   Workspace data-block, defining the working environment for the user

    active_addon
    :   Active Add-on in the Workspace Add-ons filter

        Type:
        :   int in [-inf, inf], default 0

    asset_library_reference
    :   Active asset library to show in the UI, not used by the Asset Browser (which has its own active asset library)

        - `ALL`
          All Libraries – Show assets from all of the listed asset libraries.
        - `LOCAL`
          Current File – Show the assets currently available in this Blender session.
        - `ESSENTIALS`
          Essentials – Show the basic building blocks and utilities coming with Blender.
        - `CUSTOM`
          Custom – Show assets from the asset libraries configured in the Preferences.

        Type:
        :   enum in [`'ALL'`, `'LOCAL'`, `'ESSENTIALS'`, `'CUSTOM'`], default `'ALL'`

    object_mode
    :   Switch to this object mode when activating the workspace

        Type:
        :   enum in [Workspace Object Mode Items](bpy_types_enum_items/workspace_object_mode_items.html#rna-enum-workspace-object-mode-items), default `'OBJECT'`

    owner_ids
    :   Type:
        :   [`wmOwnerIDs`](bpy.types.wmOwnerIDs.html#bpy.types.wmOwnerIDs "bpy.types.wmOwnerIDs") [`bpy_prop_collection`](bpy.types.bpy_prop_collection.html#bpy.types.bpy_prop_collection "bpy.types.bpy_prop_collection") of [`wmOwnerID`](bpy.types.wmOwnerID.html#bpy.types.wmOwnerID "bpy.types.wmOwnerID"), (readonly)

    screens
    :   Screen layouts of a workspace

        Type:
        :   [`bpy_prop_collection`](bpy.types.bpy_prop_collection.html#bpy.types.bpy_prop_collection "bpy.types.bpy_prop_collection") of [`Screen`](bpy.types.Screen.html#bpy.types.Screen "bpy.types.Screen"), (readonly)

    sequencer_scene
    :   Type:
        :   [`Scene`](bpy.types.Scene.html#bpy.types.Scene "bpy.types.Scene")

    tools
    :   Type:
        :   [`wmTools`](bpy.types.wmTools.html#bpy.types.wmTools "bpy.types.wmTools") [`bpy_prop_collection`](bpy.types.bpy_prop_collection.html#bpy.types.bpy_prop_collection "bpy.types.bpy_prop_collection") of [`WorkSpaceTool`](bpy.types.WorkSpaceTool.html#bpy.types.WorkSpaceTool "bpy.types.WorkSpaceTool"), (readonly)

    use_filter_by_owner
    :   Filter the UI by tags

        Type:
        :   boolean, default False

    use_pin_scene
    :   Remember the last used scene for the workspace and switch to it whenever this workspace is activated again

        Type:
        :   boolean, default False

    use_scene_time_sync
    :   Set the active scene and time based on the current scene strip

        Type:
        :   boolean, default False

    *classmethod* status_text_set_internal(*text*)
    :   Set the status bar text, typically key shortcuts for modal operators

        Parameters:
        :   **text** (*string*) – Text, New string for the status bar, None clears the text

    status_text_set(*text*)
    :   Set the status text or None to clear,
        When text is a function, this will be called with the (header, context) arguments.

    *classmethod* bl_rna_get_subclass(*id*, *default=None*, */*)
    :   Parameters:
        :   **id** (*str*) – The RNA type identifier.

        Returns:
        :   The RNA type or default when not found.

        Return type:
        :   [`bpy.types.Struct`](bpy.types.Struct.html#bpy.types.Struct "bpy.types.Struct") subclass

    *classmethod* bl_rna_get_subclass_py(*id*, *default=None*, */*)
    :   Parameters:
        :   **id** (*str*) – The RNA type identifier.

        Returns:
        :   The class or default when not found.

        Return type:
        :   type