user: Explain bpy_struct in complete detail according to the official Blender documentation.

assistant: ncerPreviewOverlay"), [`SequencerTimelineOverlay`](bpy.types.SequencerTimelineOverlay.html#bpy.types.SequencerTimelineOverlay "bpy.types.SequencerTimelineOverlay"), [`SequencerToolSettings`](bpy.types.SequencerToolSettings.html#bpy.types.SequencerToolSettings "bpy.types.SequencerToolSettings"), [`ShaderFx`](bpy.types.ShaderFx.html#bpy.types.ShaderFx "bpy.types.ShaderFx"), [`ShapeKey`](bpy.types.ShapeKey.html#bpy.types.ShapeKey "bpy.types.ShapeKey"), [`ShapeKeyBezierPoint`](bpy.types.ShapeKeyBezierPoint.html#bpy.types.ShapeKeyBezierPoint "bpy.types.ShapeKeyBezierPoint"), [`ShapeKeyCurvePoint`](bpy.types.ShapeKeyCurvePoint.html#bpy.types.ShapeKeyCurvePoint "bpy.types.ShapeKeyCurvePoint"), [`ShapeKeyPoint`](bpy.types.ShapeKeyPoint.html#bpy.types.ShapeKeyPoint "bpy.types.ShapeKeyPoint"), [`Short2AttributeValue`](bpy.types.Short2AttributeValue.html#bpy.types.Short2AttributeValue "bpy.types.Short2AttributeValue"), [`SimulationStateItem`](bpy.types.SimulationStateItem.html#bpy.types.SimulationStateItem "bpy.types.SimulationStateItem"), [`SoftBodySettings`](bpy.types.SoftBodySettings.html#bpy.types.SoftBodySettings "bpy.types.SoftBodySettings"), [`Space`](bpy.types.Space.html#bpy.types.Space "bpy.types.Space"), [`SpaceClipOverlay`](bpy.types.SpaceClipOverlay.html#bpy.types.SpaceClipOverlay "bpy.types.SpaceClipOverlay"), [`SpaceDopeSheetOverlay`](bpy.types.SpaceDopeSheetOverlay.html#bpy.types.SpaceDopeSheetOverlay "bpy.types.SpaceDopeSheetOverlay"), [`SpaceImageOverlay`](bpy.types.SpaceImageOverlay.html#bpy.types.SpaceImageOverlay "bpy.types.SpaceImageOverlay"), [`SpaceNodeEditorPath`](bpy.types.SpaceNodeEditorPath.html#bpy.types.SpaceNodeEditorPath "bpy.types.SpaceNodeEditorPath"), [`SpaceNodeOverlay`](bpy.types.SpaceNodeOverlay.html#bpy.types.SpaceNodeOverlay "bpy.types.SpaceNodeOverlay"), [`SpaceUVEditor`](bpy.types.SpaceUVEditor.html#bpy.types.SpaceUVEditor "bpy.types.SpaceUVEditor"), [`Spline`](bpy.types.Spline.html#bpy.types.Spline "bpy.types.Spline"), [`SplineBezierPoints`](bpy.types.SplineBezierPoints.html#bpy.types.SplineBezierPoints "bpy.types.SplineBezierPoints"), [`SplinePoint`](bpy.types.SplinePoint.html#bpy.types.SplinePoint "bpy.types.SplinePoint"), [`SplinePoints`](bpy.types.SplinePoints.html#bpy.types.SplinePoints "bpy.types.SplinePoints"), [`SpreadsheetColumn`](bpy.types.SpreadsheetColumn.html#bpy.types.SpreadsheetColumn "bpy.types.SpreadsheetColumn"), [`SpreadsheetColumnID`](bpy.types.SpreadsheetColumnID.html#bpy.types.SpreadsheetColumnID "bpy.types.SpreadsheetColumnID"), [`SpreadsheetRowFilter`](bpy.types.SpreadsheetRowFilter.html#bpy.types.SpreadsheetRowFilter "bpy.types.SpreadsheetRowFilter"), [`SpreadsheetTable`](bpy.types.SpreadsheetTable.html#bpy.types.SpreadsheetTable "bpy.types.SpreadsheetTable"), [`SpreadsheetTableID`](bpy.types.SpreadsheetTableID.html#bpy.types.SpreadsheetTableID "bpy.types.SpreadsheetTableID"), [`SpreadsheetTables`](bpy.types.SpreadsheetTables.html#bpy.types.SpreadsheetTables "bpy.types.SpreadsheetTables"), [`Stereo3dDisplay`](bpy.types.Stereo3dDisplay.html#bpy.types.Stereo3dDisplay "bpy.types.Stereo3dDisplay"), [`Stereo3dFormat`](bpy.types.Stereo3dFormat.html#bpy.types.Stereo3dFormat "bpy.types.Stereo3dFormat"), [`StringAttributeValue`](bpy.types.StringAttributeValue.html#bpy.types.StringAttributeValue "bpy.types.StringAttributeValue"), [`Strip`](bpy.types.Strip.html#bpy.types.Strip "bpy.types.Strip"), [`StripColorBalanceData`](bpy.types.StripColorBalanceData.html#bpy.types.StripColorBalanceData "bpy.types.StripColorBalanceData"), [`StripCrop`](bpy.types.StripCrop.html#bpy.types.StripCrop "bpy.types.StripCrop"), [`StripElement`](bpy.types.StripElement.html#bpy.types.StripElement "bpy.types.StripElement"), [`StripElements`](bpy.types.StripElements.html#bpy.types.StripElements "bpy.types.StripElements"), [`StripModifier`](bpy.types.StripModifier.html#bpy.types.StripModifier "bpy.types.StripModifier"), [`StripModifiers`](bpy.types.StripModifiers.html#bpy.types.StripModifiers "bpy.types.StripModifiers"), [`StripProxy`](bpy.types.StripProxy.html#bpy.types.StripProxy "bpy.types.StripProxy"), [`StripTransform`](bpy.types.StripTransform.html#bpy.types.StripTransform "bpy.types.StripTransform"), [`StripsMeta`](bpy.types.StripsMeta.html#bpy.types.StripsMeta "bpy.types.StripsMeta"), [`StripsTopLevel`](bpy.types.StripsTopLevel.html#bpy.types.StripsTopLevel "bpy.types.StripsTopLevel"), [`Struct`](bpy.types.Struct.html#bpy.types.Struct "bpy.types.Struct"), [`StudioLight`](bpy.types.StudioLight.html#bpy.types.StudioLight "bpy.types.StudioLight"), [`StudioLights`](bpy.types.StudioLights.html#bpy.types.StudioLights "bpy.types.StudioLights"), [`TexMapping`](bpy.types.TexMapping.html#bpy.types.TexMapping "bpy.types.TexMapping"), [`TexPaintSlot`](bpy.types.TexPaintSlot.html#bpy.types.TexPaintSlot "bpy.types.TexPaintSlot"), [`TextBox`](bpy.types.TextBox.html#bpy.types.TextBox "bpy.types.TextBox"), [`TextCharacterFormat`](bpy.types.TextCharacterFormat.html#bpy.types.TextCharacterFormat "bpy.types.TextCharacterFormat"), [`TextLine`](bpy.types.TextLine.html#bpy.types.TextLine "bpy.types.TextLine"), [`TextureSlot`](bpy.types.TextureSlot.html#bpy.types.TextureSlot "bpy.types.TextureSlot"), [`Theme`](bpy.types.Theme.html#bpy.types.Theme "bpy.types.Theme"), [`ThemeBoneColorSet`](bpy.types.ThemeBoneColorSet.html#bpy.types.ThemeBoneColorSet "bpy.types.ThemeBoneColorSet"), [`ThemeClipEditor`](bpy.types.ThemeClipEditor.html#bpy.types.ThemeClipEditor "bpy.types.ThemeClipEditor"), [`ThemeCollectionColor`](bpy.types.ThemeCollectionColor.html#bpy.types.ThemeCollectionColor "bpy.types.ThemeCollectionColor"), [`ThemeCommon`](bpy.types.ThemeCommon.html#bpy.types.ThemeCommon "bpy.types.ThemeCommon"), [`ThemeCommonAnim`](bpy.types.ThemeCommonAnim.html#bpy.types.ThemeCommonAnim "bpy.types.ThemeCommonAnim"), [`ThemeCommonCurves`](bpy.types.ThemeCommonCurves.html#bpy.types.ThemeCommonCurves "bpy.types.ThemeCommonCurves"), [`ThemeConsole`](bpy.types.ThemeConsole.html#bpy.types.ThemeConsole "bpy.types.ThemeConsole"), [`ThemeDopeSheet`](bpy.types.ThemeDopeSheet.html#bpy.types.ThemeDopeSheet "bpy.types.ThemeDopeSheet"), [`ThemeFileBrowser`](bpy.types.ThemeFileBrowser.html#bpy.types.ThemeFileBrowser "bpy.types.ThemeFileBrowser"), [`ThemeFontStyle`](bpy.types.ThemeFontStyle.html#bpy.types.ThemeFontStyle "bpy.types.ThemeFontStyle"), [`ThemeGradientColors`](bpy.types.ThemeGradientColors.html#bpy.types.ThemeGradientColors "bpy.types.ThemeGradientColors"), [`ThemeGraphEditor`](bpy.types.ThemeGraphEditor.html#bpy.types.ThemeGraphEditor "bpy.types.ThemeGraphEditor"), [`ThemeImageEditor`](bpy.types.ThemeImageEditor.html#bpy.types.ThemeImageEditor "bpy.types.ThemeImageEditor"), [`ThemeInfo`](bpy.types.ThemeInfo.html#bpy.types.ThemeInfo "bpy.types.ThemeInfo"), [`ThemeNLAEditor`](bpy.types.ThemeNLAEditor.html#bpy.types.ThemeNLAEditor "bpy.types.ThemeNLAEditor"), [`ThemeNodeEditor`](bpy.types.ThemeNodeEditor.html#bpy.types.ThemeNodeEditor "bpy.types.ThemeNodeEditor"), [`ThemeOutliner`](bpy.types.ThemeOutliner.html#bpy.types.ThemeOutliner "bpy.types.ThemeOutliner"), [`ThemePreferences`](bpy.types.ThemePreferences.html#bpy.types.ThemePreferences "bpy.types.ThemePreferences"), [`ThemeProperties`](bpy.types.ThemeProperties.html#bpy.types.ThemeProperties "bpy.types.ThemeProperties"), [`ThemeRegions`](bpy.types.ThemeRegions.html#bpy.types.ThemeRegions "bpy.types.ThemeRegions"), [`ThemeRegionsAssetShelf`](bpy.types.ThemeRegionsAssetShelf.html#bpy.types.ThemeRegionsAssetShelf "bpy.types.ThemeRegionsAssetShelf"), [`ThemeRegionsChannels`](bpy.types.ThemeRegionsChannels.html#bpy.types.ThemeRegionsChannels "bpy.types.ThemeRegionsChannels"), [`ThemeRegionsScrubbing`](bpy.types.ThemeRegionsScrubbing.html#bpy.types.ThemeRegionsScrubbing "bpy.types.ThemeRegionsScrubbing"), [`ThemeRegionsSidebars`](bpy.types.ThemeRegionsSidebars.html#bpy.types.ThemeRegionsSidebars "bpy.types.ThemeRegionsSidebars"), [`ThemeSequenceEditor`](bpy.types.ThemeSequenceEditor.html#bpy.types.ThemeSequenceEditor "bpy.types.ThemeSequenceEditor"), [`ThemeSpaceGeneric`](bpy.types.ThemeSpaceGeneric.html#bpy.types.ThemeSpaceGeneric "bpy.types.ThemeSpaceGeneric"), [`ThemeSpaceGradient`](bpy.types.ThemeSpaceGradient.html#bpy.types.ThemeSpaceGradient "bpy.types.ThemeSpaceGradient"), [`ThemeSpreadsheet`](bpy.types.ThemeSpreadsheet.html#bpy.types.ThemeSpreadsheet "bpy.types.ThemeSpreadsheet"), [`ThemeStatusBar`](bpy.types.ThemeStatusBar.html#bpy.types.ThemeStatusBar "bpy.types.ThemeStatusBar"), [`ThemeStripColor`](bpy.types.ThemeStripColor.html#bpy.types.ThemeStripColor "bpy.types.ThemeStripColor"), [`ThemeStyle`](bpy.types.ThemeStyle.html#bpy.types.ThemeStyle "bpy.types.ThemeStyle"), [`ThemeTextEditor`](bpy.types.ThemeTextEditor.html#bpy.types.ThemeTextEditor "bpy.types.ThemeTextEditor"), [`ThemeTopBar`](bpy.types.ThemeTopBar.html#bpy.types.ThemeTopBar "bpy.types.ThemeTopBar"), [`ThemeUserInterface`](bpy.types.ThemeUserInterface.html#bpy.types.ThemeUserInterface "bpy.types.ThemeUserInterface"), [`ThemeView3D`](bpy.types.ThemeView3D.html#bpy.types.ThemeView3D "bpy.types.ThemeView3D"), [`ThemeWidgetColors`](bpy.types.ThemeWidgetColors.html#bpy.types.ThemeWidgetColors "bpy.types.ThemeWidgetColors"), [`ThemeWidgetStateColors`](bpy.types.ThemeWidgetStateColors.html#bpy.types.ThemeWidgetStateColors "bpy.types.ThemeWidgetStateColors"), [`TimelineMarker`](bpy.types.TimelineMarker.html#bpy.types.TimelineMarker "bpy.types.TimelineMarker"), [`TimelineMarkers`](bpy.types.TimelineMarkers.html#bpy.types.TimelineMarkers "bpy.types.TimelineMarkers"), [`Timer`](bpy.types.Timer.html#bpy.types.Timer "bpy.types.Timer"), [`ToolSettings`](bpy.types.ToolSettings.html#bpy.types.ToolSettings "bpy.types.ToolSettings"), [`TransformOrientation`](bpy.types.TransformOrientation.html#bpy.types.TransformOrientation "bpy.types.TransformOrientation"), [`TransformOrientationSlot`](bpy.types.TransformOrientationSlot.html#bpy.types.TransformOrientationSlot "bpy.types.TransformOrientationSlot"), [`UDIMTile`](bpy.types.UDIMTile.html#bpy.types.UDIMTile "bpy.types.UDIMTile"), [`UDIMTiles`](bpy.types.UDIMTiles.html#bpy.types.UDIMTiles "bpy.types.UDIMTiles"), [`UILayout`](bpy.types.UILayout.html#bpy.types.UILayout "bpy.types.UILayout"), [`UIList`](bpy.types.UIList.html#bpy.types.UIList "bpy.types.UIList"), [`UIPieMenu`](bpy.types.UIPieMenu.html#bpy.types.UIPieMenu "bpy.types.UIPieMenu"), [`UIPopover`](bpy.types.UIPopover.html#bpy.types.UIPopover "bpy.types.UIPopover"), [`UIPopupMenu`](bpy.types.UIPopupMenu.html#bpy.types.UIPopupMenu "bpy.types.UIPopupMenu"), [`USDHook`](bpy.types.USDHook.html#bpy.types.USDHook "bpy.types.USDHook"), [`UVLoopLayers`](bpy.types.UVLoopLayers.html#bpy.types.UVLoopLayers "bpy.types.UVLoopLayers"), [`UVProjector`](bpy.types.UVProjector.html#bpy.types.UVProjector "bpy.types.UVProjector"), [`UnifiedPaintSettings`](bpy.types.UnifiedPaintSettings.html#bpy.types.UnifiedPaintSettings "bpy.types.UnifiedPaintSettings"), [`UnitSettings`](bpy.types.UnitSettings.html#bpy.types.UnitSettings "bpy.types.UnitSettings"), [`UnknownType`](bpy.types.UnknownType.html#bpy.types.UnknownType "bpy.types.UnknownType"), [`UserAssetLibrary`](bpy.types.UserAssetLibrary.html#bpy.types.UserAssetLibrary "bpy.types.UserAssetLibrary"), [`UserExtensionRepo`](bpy.types.UserExtensionRepo.html#bpy.types.UserExtensionRepo "bpy.types.UserExtensionRepo"), [`UserExtensionRepoCollection`](bpy.types.UserExtensionRepoCollection.html#bpy.types.UserExtensionRepoCollection "bpy.types.UserExtensionRepoCollection"), [`UserSolidLight`](bpy.types.UserSolidLight.html#bpy.types.UserSolidLight "bpy.types.UserSolidLight"), [`UvSculpt`](bpy.types.UvSculpt.html#bpy.types.UvSculpt "bpy.types.UvSculpt"), [`VertexGroup`](bpy.types.VertexGroup.html#bpy.types.VertexGroup "bpy.types.VertexGroup"), [`VertexGroupElement`](bpy.types.VertexGroupElement.html#bpy.types.VertexGroupElement "bpy.types.VertexGroupElement"), [`VertexGroups`](bpy.types.VertexGroups.html#bpy.types.VertexGroups "bpy.types.VertexGroups"), [`View2D`](bpy.types.View2D.html#bpy.types.View2D "bpy.types.View2D"), [`View3DCursor`](bpy.types.View3DCursor.html#bpy.types.View3DCursor "bpy.types.View3DCursor"), [`View3DOverlay`](bpy.types.View3DOverlay.html#bpy.types.View3DOverlay "bpy.types.View3DOverlay"), [`View3DShading`](bpy.types.View3DShading.html#bpy.types.View3DShading "bpy.types.View3DShading"), [`ViewLayer`](bpy.types.ViewLayer.html#bpy.types.ViewLayer "bpy.types.ViewLayer"), [`ViewLayerEEVEE`](bpy.types.ViewLayerEEVEE.html#bpy.types.ViewLayerEEVEE "bpy.types.ViewLayerEEVEE"), [`ViewLayers`](bpy.types.ViewLayers.html#bpy.types.ViewLayers "bpy.types.ViewLayers"), [`ViewerPath`](bpy.types.ViewerPath.html#bpy.types.ViewerPath "bpy.types.ViewerPath"), [`ViewerPathElem`](bpy.types.ViewerPathElem.html#bpy.types.ViewerPathElem "bpy.types.ViewerPathElem"), [`VolumeDisplay`](bpy.types.VolumeDisplay.html#bpy.types.VolumeDisplay "bpy.types.VolumeDisplay"), [`VolumeGrid`](bpy.types.VolumeGrid.html#bpy.types.VolumeGrid "bpy.types.VolumeGrid"), [`VolumeGrids`](bpy.types.VolumeGrids.html#bpy.types.VolumeGrids "bpy.types.VolumeGrids"), [`VolumeRender`](bpy.types.VolumeRender.html#bpy.types.VolumeRender "bpy.types.VolumeRender"), [`WalkNavigation`](bpy.types.WalkNavigation.html#bpy.types.WalkNavigation "bpy.types.WalkNavigation"), [`Window`](bpy.types.Window.html#bpy.types.Window "bpy.types.Window"), [`WorkSpaceTool`](bpy.types.WorkSpaceTool.html#bpy.types.WorkSpaceTool "bpy.types.WorkSpaceTool"), [`WorldLighting`](bpy.types.WorldLighting.html#bpy.types.WorldLighting "bpy.types.WorldLighting"), [`WorldMistSettings`](bpy.types.WorldMistSettings.html#bpy.types.WorldMistSettings "bpy.types.WorldMistSettings"), [`XrActionMap`](bpy.types.XrActionMap.html#bpy.types.XrActionMap "bpy.types.XrActionMap"), [`XrActionMapBinding`](bpy.types.XrActionMapBinding.html#bpy.types.XrActionMapBinding "bpy.types.XrActionMapBinding"), [`XrActionMapBindings`](bpy.types.XrActionMapBindings.html#bpy.types.XrActionMapBindings "bpy.types.XrActionMapBindings"), [`XrActionMapItem`](bpy.types.XrActionMapItem.html#bpy.types.XrActionMapItem "bpy.types.XrActionMapItem"), [`XrActionMapItems`](bpy.types.XrActionMapItems.html#bpy.types.XrActionMapItems "bpy.types.XrActionMapItems"), [`XrActionMaps`](bpy.types.XrActionMaps.html#bpy.types.XrActionMaps "bpy.types.XrActionMaps"), [`XrComponentPath`](bpy.types.XrComponentPath.html#bpy.types.XrComponentPath "bpy.types.XrComponentPath"), [`XrComponentPaths`](bpy.types.XrComponentPaths.html#bpy.types.XrComponentPaths "bpy.types.XrComponentPaths"), [`XrEventData`](bpy.types.XrEventData.html#bpy.types.XrEventData "bpy.types.XrEventData"), [`XrNavigation`](bpy.types.XrNavigation.html#bpy.types.XrNavigation "bpy.types.XrNavigation"), [`XrSessionSettings`](bpy.types.XrSessionSettings.html#bpy.types.XrSessionSettings "bpy.types.XrSessionSettings"), [`XrSessionState`](bpy.types.XrSessionState.html#bpy.types.XrSessionState "bpy.types.XrSessionState"), [`XrUserPath`](bpy.types.XrUserPath.html#bpy.types.XrUserPath "bpy.types.XrUserPath"), [`XrUserPaths`](bpy.types.XrUserPaths.html#bpy.types.XrUserPaths "bpy.types.XrUserPaths"), [`wmOwnerID`](bpy.types.wmOwnerID.html#bpy.types.wmOwnerID "bpy.types.wmOwnerID"), [`wmOwnerIDs`](bpy.types.wmOwnerIDs.html#bpy.types.wmOwnerIDs "bpy.types.wmOwnerIDs"), [`wmTools`](bpy.types.wmTools.html#bpy.types.wmTools "bpy.types.wmTools")

*class* bpy.types.bpy_struct
:   built-in base class for all classes in bpy.types.

    as_pointer()
    :   Returns the memory address which holds a pointer to Blender’s internal data

        Returns:
        :   int (memory address).

        Return type:
        :   int

    driver_add(*path*, *index=-1*, */*)
    :   Adds driver(s) to the given property

        Parameters:
        :   - **path** (*str*) – path to the property to drive, analogous to the fcurve’s data path.
            - **index** (*int*) – array index of the property drive. Defaults to -1 for all indices or a single channel if the property is not an array.

        Returns:
        :   The driver added or a list of drivers when index is -1.

        Return type:
        :   [`bpy.types.FCurve`](bpy.types.FCurve.html#bpy.types.FCurve "bpy.types.FCurve") | list[[`bpy.types.FCurve`](bpy.types.FCurve.html#bpy.types.FCurve "bpy.types.FCurve")]

    driver_remove(*path*, *index=-1*, */*)
    :   Remove driver(s) from the given property

        Parameters:
        :   - **path** (*str*) – path to the property to drive, analogous to the fcurve’s data path.
            - **index** (*int*) – array index of the property drive. Defaults to -1 for all indices or a single channel if the property is not an array.

        Returns:
        :   Success of driver removal.

        Return type:
        :   bool

    get(*key*, *default=None*, */*)
    :   Returns the value of the custom property assigned to key or default
        when not found (matches Python’s dictionary function of the same name).

        Parameters:
        :   - **key** (*str*) – The key associated with the custom property.
            - **default** (*Any*) – Optional argument for the value to return if
              *key* is not found.

        Returns:
        :   Custom property value or default.

        Return type:
        :   Any

    id_properties_clear()
    :   Returns:
        :   Remove the parent group for an RNA struct’s custom IDProperties.

    id_properties_ensure()
    :   Returns:
        :   the parent group for an RNA struct’s custom IDProperties.

        Return type:
        :   `idprop.types.IDPropertyGroup`

    id_properties_ui(*key*, */*)
    :   Returns:
        :   Return an object used to manage an IDProperty’s UI data.

        Parameters:
        :   **key** (*str.*) – String name of the property.

        Return type:
        :   `bpy.types.IDPropertyUIManager`

    is_property_hidden(*property*, */*)
    :   Check if a property is hidden.

        Parameters:
        :   **property** (*str*) – Property name.

        Returns: