user: What is bpy_struct and how is it used in Blender Python scripting?

assistant: # bpy_struct

subclasses —
[`AOV`](bpy.types.AOV.html#bpy.types.AOV "bpy.types.AOV"), [`AOVs`](bpy.types.AOVs.html#bpy.types.AOVs "bpy.types.AOVs"), [`ActionChannelbag`](bpy.types.ActionChannelbag.html#bpy.types.ActionChannelbag "bpy.types.ActionChannelbag"), [`ActionChannelbagFCurves`](bpy.types.ActionChannelbagFCurves.html#bpy.types.ActionChannelbagFCurves "bpy.types.ActionChannelbagFCurves"), [`ActionChannelbagGroups`](bpy.types.ActionChannelbagGroups.html#bpy.types.ActionChannelbagGroups "bpy.types.ActionChannelbagGroups"), [`ActionChannelbags`](bpy.types.ActionChannelbags.html#bpy.types.ActionChannelbags "bpy.types.ActionChannelbags"), [`ActionGroup`](bpy.types.ActionGroup.html#bpy.types.ActionGroup "bpy.types.ActionGroup"), [`ActionLayer`](bpy.types.ActionLayer.html#bpy.types.ActionLayer "bpy.types.ActionLayer"), [`ActionLayers`](bpy.types.ActionLayers.html#bpy.types.ActionLayers "bpy.types.ActionLayers"), [`ActionPoseMarkers`](bpy.types.ActionPoseMarkers.html#bpy.types.ActionPoseMarkers "bpy.types.ActionPoseMarkers"), [`ActionSlot`](bpy.types.ActionSlot.html#bpy.types.ActionSlot "bpy.types.ActionSlot"), [`ActionSlots`](bpy.types.ActionSlots.html#bpy.types.ActionSlots "bpy.types.ActionSlots"), [`ActionStrip`](bpy.types.ActionStrip.html#bpy.types.ActionStrip "bpy.types.ActionStrip"), [`ActionStrips`](bpy.types.ActionStrips.html#bpy.types.ActionStrips "bpy.types.ActionStrips"), [`Addon`](bpy.types.Addon.html#bpy.types.Addon "bpy.types.Addon"), [`AddonPreferences`](bpy.types.AddonPreferences.html#bpy.types.AddonPreferences "bpy.types.AddonPreferences"), [`Addons`](bpy.types.Addons.html#bpy.types.Addons "bpy.types.Addons"), [`AnimData`](bpy.types.AnimData.html#bpy.types.AnimData "bpy.types.AnimData"), [`AnimDataDrivers`](bpy.types.AnimDataDrivers.html#bpy.types.AnimDataDrivers "bpy.types.AnimDataDrivers"), [`AnimViz`](bpy.types.AnimViz.html#bpy.types.AnimViz "bpy.types.AnimViz"), [`AnimVizMotionPaths`](bpy.types.AnimVizMotionPaths.html#bpy.types.AnimVizMotionPaths "bpy.types.AnimVizMotionPaths"), [`AnnotationFrame`](bpy.types.AnnotationFrame.html#bpy.types.AnnotationFrame "bpy.types.AnnotationFrame"), [`AnnotationFrames`](bpy.types.AnnotationFrames.html#bpy.types.AnnotationFrames "bpy.types.AnnotationFrames"), [`AnnotationLayer`](bpy.types.AnnotationLayer.html#bpy.types.AnnotationLayer "bpy.types.AnnotationLayer"), [`AnnotationLayers`](bpy.types.AnnotationLayers.html#bpy.types.AnnotationLayers "bpy.types.AnnotationLayers"), [`AnnotationStroke`](bpy.types.AnnotationStroke.html#bpy.types.AnnotationStroke "bpy.types.AnnotationStroke"), [`AnnotationStrokePoint`](bpy.types.AnnotationStrokePoint.html#bpy.types.AnnotationStrokePoint "bpy.types.AnnotationStrokePoint"), [`AnyType`](bpy.types.AnyType.html#bpy.types.AnyType "bpy.types.AnyType"), [`Area`](bpy.types.Area.html#bpy.types.Area "bpy.types.Area"), [`AreaSpaces`](bpy.types.AreaSpaces.html#bpy.types.AreaSpaces "bpy.types.AreaSpaces"), [`ArmatureBones`](bpy.types.ArmatureBones.html#bpy.types.ArmatureBones "bpy.types.ArmatureBones"), [`ArmatureConstraintTargets`](bpy.types.ArmatureConstraintTargets.html#bpy.types.ArmatureConstraintTargets "bpy.types.ArmatureConstraintTargets"), [`ArmatureEditBones`](bpy.types.ArmatureEditBones.html#bpy.types.ArmatureEditBones "bpy.types.ArmatureEditBones"), [`AssetLibraryCollection`](bpy.types.AssetLibraryCollection.html#bpy.types.AssetLibraryCollection "bpy.types.AssetLibraryCollection"), [`AssetLibraryReference`](bpy.types.AssetLibraryReference.html#bpy.types.AssetLibraryReference "bpy.types.AssetLibraryReference"), [`AssetMetaData`](bpy.types.AssetMetaData.html#bpy.types.AssetMetaData "bpy.types.AssetMetaData"), [`AssetRepresentation`](bpy.types.AssetRepresentation.html#bpy.types.AssetRepresentation "bpy.types.AssetRepresentation"), [`AssetShelf`](bpy.types.AssetShelf.html#bpy.types.AssetShelf "bpy.types.AssetShelf"), [`AssetTag`](bpy.types.AssetTag.html#bpy.types.AssetTag "bpy.types.AssetTag"), [`AssetTags`](bpy.types.AssetTags.html#bpy.types.AssetTags "bpy.types.AssetTags"), [`AssetWeakReference`](bpy.types.AssetWeakReference.html#bpy.types.AssetWeakReference "bpy.types.AssetWeakReference"), [`Attribute`](bpy.types.Attribute.html#bpy.types.Attribute "bpy.types.Attribute"), [`AttributeGroupCurves`](bpy.types.AttributeGroupCurves.html#bpy.types.AttributeGroupCurves "bpy.types.AttributeGroupCurves"), [`AttributeGroupGreasePencil`](bpy.types.AttributeGroupGreasePencil.html#bpy.types.AttributeGroupGreasePencil "bpy.types.AttributeGroupGreasePencil"), [`AttributeGroupGreasePencilDrawing`](bpy.types.AttributeGroupGreasePencilDrawing.html#bpy.types.AttributeGroupGreasePencilDrawing "bpy.types.AttributeGroupGreasePencilDrawing"), [`AttributeGroupMesh`](bpy.types.AttributeGroupMesh.html#bpy.types.AttributeGroupMesh "bpy.types.AttributeGroupMesh"), [`AttributeGroupPointCloud`](bpy.types.AttributeGroupPointCloud.html#bpy.types.AttributeGroupPointCloud "bpy.types.AttributeGroupPointCloud"), [`BakeSettings`](bpy.types.BakeSettings.html#bpy.types.BakeSettings "bpy.types.BakeSettings"), [`BezierSplinePoint`](bpy.types.BezierSplinePoint.html#bpy.types.BezierSplinePoint "bpy.types.BezierSplinePoint"), [`BlendData`](bpy.types.BlendData.html#bpy.types.BlendData "bpy.types.BlendData"), [`BlendDataActions`](bpy.types.BlendDataActions.html#bpy.types.BlendDataActions "bpy.types.BlendDataActions"), [`BlendDataAnnotations`](bpy.types.BlendDataAnnotations.html#bpy.types.BlendDataAnnotations "bpy.types.BlendDataAnnotations"), [`BlendDataArmatures`](bpy.types.BlendDataArmatures.html#bpy.types.BlendDataArmatures "bpy.types.BlendDataArmatures"), [`BlendDataBrushes`](bpy.types.BlendDataBrushes.html#bpy.types.BlendDataBrushes "bpy.types.BlendDataBrushes"), [`BlendDataCacheFiles`](bpy.types.BlendDataCacheFiles.html#bpy.types.BlendDataCacheFiles "bpy.types.BlendDataCacheFiles"), [`BlendDataCameras`](bpy.types.BlendDataCameras.html#bpy.types.BlendDataCameras "bpy.types.BlendDataCameras"), [`BlendDataCollections`](bpy.types.BlendDataCollections.html#bpy.types.BlendDataCollections "bpy.types.BlendDataCollections"), [`BlendDataCurves`](bpy.types.BlendDataCurves.html#bpy.types.BlendDataCurves "bpy.types.BlendDataCurves"), [`BlendDataFonts`](bpy.types.BlendDataFonts.html#bpy.types.BlendDataFonts "bpy.types.BlendDataFonts"), [`BlendDataGreasePencilsV3`](bpy.types.BlendDataGreasePencilsV3.html#bpy.types.BlendDataGreasePencilsV3 "bpy.types.BlendDataGreasePencilsV3"), [`BlendDataHairCurves`](bpy.types.BlendDataHairCurves.html#bpy.types.BlendDataHairCurves "bpy.types.BlendDataHairCurves"), [`BlendDataImages`](bpy.types.BlendDataImages.html#bpy.types.BlendDataImages "bpy.types.BlendDataImages"), [`BlendDataLattices`](bpy.types.BlendDataLattices.html#bpy.types.BlendDataLattices "bpy.types.BlendDataLattices"), [`BlendDataLibraries`](bpy.types.BlendDataLibraries.html#bpy.types.BlendDataLibraries "bpy.types.BlendDataLibraries"), [`BlendDataLights`](bpy.types.BlendDataLights.html#bpy.types.BlendDataLights "bpy.types.BlendDataLights"), [`BlendDataLineStyles`](bpy.types.BlendDataLineStyles.html#bpy.types.BlendDataLineStyles "bpy.types.BlendDataLineStyles"), [`BlendDataMasks`](bpy.types.BlendDataMasks.html#bpy.types.BlendDataMasks "bpy.types.BlendDataMasks"), [`BlendDataMaterials`](bpy.types.BlendDataMaterials.html#bpy.types.BlendDataMaterials "bpy.types.BlendDataMaterials"), [`BlendDataMeshes`](bpy.types.BlendDataMeshes.html#bpy.types.BlendDataMeshes "bpy.types.BlendDataMeshes"), [`BlendDataMetaBalls`](bpy.types.BlendDataMetaBalls.html#bpy.types.BlendDataMetaBalls "bpy.types.BlendDataMetaBalls"), [`BlendDataMovieClips`](bpy.types.BlendDataMovieClips.html#bpy.types.BlendDataMovieClips "bpy.types.BlendDataMovieClips"), [`BlendDataNodeTrees`](bpy.types.BlendDataNodeTrees.html#bpy.types.BlendDataNodeTrees "bpy.types.BlendDataNodeTrees"), [`BlendDataObjects`](bpy.types.BlendDataObjects.html#bpy.types.BlendDataObjects "bpy.types.BlendDataObjects"), [`BlendDataPaintCurves`](bpy.types.BlendDataPaintCurves.html#bpy.types.BlendDataPaintCurves "bpy.types.BlendDataPaintCurves"), [`BlendDataPalettes`](bpy.types.BlendDataPalettes.html#bpy.types.BlendDataPalettes "bpy.types.BlendDataPalettes"), [`BlendDataParticles`](bpy.types.BlendDataParticles.html#bpy.types.BlendDataParticles "bpy.types.BlendDataParticles"), [`BlendDataPointClouds`](bpy.types.BlendDataPointClouds.html#bpy.types.BlendDataPointClouds "bpy.types.BlendDataPointClouds"), [`BlendDataProbes`](bpy.types.BlendDataProbes.html#bpy.types.BlendDataProbes "bpy.types.BlendDataProbes"), [`BlendDataScenes`](bpy.types.BlendDataScenes.html#bpy.types.BlendDataScenes "bpy.types.BlendDataScenes"), [`BlendDataScreens`](bpy.types.BlendDataScreens.html#bpy.types.BlendDataScreens "bpy.types.BlendDataScreens"), [`BlendDataSounds`](bpy.types.BlendDataSounds.html#bpy.types.BlendDataSounds "bpy.types.BlendDataSounds"), [`BlendDataSpeakers`](bpy.types.BlendDataSpeakers.html#bpy.types.BlendDataSpeakers "bpy.types.BlendDataSpeakers"), [`BlendDataTexts`](bpy.types.BlendDataTexts.html#bpy.types.BlendDataTexts "bpy.types.BlendDataTexts"), [`BlendDataTextures`](bpy.types.BlendDataTextures.html#bpy.types.BlendDataTextures "bpy.types.BlendDataTextures"), [`BlendDataVolumes`](bpy.types.BlendDataVolumes.html#bpy.types.BlendDataVolumes "bpy.types.BlendDataVolumes"), [`BlendDataWindowManagers`](bpy.types.BlendDataWindowManagers.html#bpy.types.BlendDataWindowManagers "bpy.types.BlendDataWindowManagers"), [`BlendDataWorkSpaces`](bpy.types.BlendDataWorkSpaces.html#bpy.types.BlendDataWorkSpaces "bpy.types.BlendDataWorkSpaces"), [`BlendDataWorlds`](bpy.types.BlendDataWorlds.html#bpy.types.BlendDataWorlds "bpy.types.BlendDataWorlds"), [`BlendFileColorspace`](bpy.types.BlendFileColorspace.html#bpy.types.BlendFileColorspace "bpy.types.BlendFileColorspace"), [`BlendImportContext`](bpy.types.BlendImportContext.html#bpy.types.BlendImportContext "bpy.types.BlendImportContext"), [`BlendImportContextItem`](bpy.types.BlendImportContextItem.html#bpy.types.BlendImportContextItem "bpy.types.BlendImportContextItem"), [`BlendImportContextItems`](bpy.types.BlendImportContextItems.html#bpy.types.BlendImportContextItems "bpy.types.BlendImportContextItems"), [`BlendImportContextLibraries`](bpy.types.BlendImportContextLibraries.html#bpy.types.BlendImportContextLibraries "bpy.types.BlendImportContextLibraries"), [`BlendImportContextLibrary`](bpy.types.BlendImportContextLibrary.html#bpy.types.BlendImportContextLibrary "bpy.types.BlendImportContextLibrary"), [`BlenderRNA`](bpy.types.BlenderRNA.html#bpy.types.BlenderRNA "bpy.types.BlenderRNA"), [`BoidRule`](bpy.types.BoidRule.html#bpy.types.BoidRule "bpy.types.BoidRule"), [`BoidSettings`](bpy.types.BoidSettings.html#bpy.types.BoidSettings "bpy.types.BoidSettings"), [`BoidState`](bpy.types.BoidState.html#bpy.types.BoidState "bpy.types.BoidState"), [`Bone`](bpy.types.Bone.html#bpy.types.Bone "bpy.types.Bone"), [`BoneCollection`](bpy.types.BoneCollection.html#bpy.types.BoneCollection "bpy.types.BoneCollection"), [`BoneCollectionMemberships`](bpy.types.BoneCollectionMemberships.html#bpy.types.BoneCollectionMemberships "bpy.types.BoneCollectionMemberships"), [`BoneCollections`](bpy.types.BoneCollections.html#bpy.types.BoneCollections "bpy.types.BoneCollections"), [`BoneColor`](bpy.types.BoneColor.html#bpy.types.BoneColor "bpy.types.BoneColor"), [`BoolAttributeValue`](bpy.types.BoolAttributeValue.html#bpy.types.BoolAttributeValue "bpy.types.BoolAttributeValue"), [`BrushCapabilities`](bpy.types.BrushCapabilities.html#bpy.types.BrushCapabilities "bpy.types.BrushCapabilities"), [`BrushCapabilitiesImagePaint`](bpy.types.BrushCapabilitiesImagePaint.html#bpy.types.BrushCapabilitiesImagePaint "bpy.types.BrushCapabilitiesImagePaint"), [`BrushCapabilitiesSculpt`](bpy.types.BrushCapabilitiesSculpt.html#bpy.types.BrushCapabilitiesSculpt "bpy.types.BrushCapabilitiesSculpt"), [`BrushCapabilitiesVertexPaint`](bpy.types.BrushCapabilitiesVertexPaint.html#bpy.types.BrushCapabilitiesVertexPaint "bpy.types.BrushCapabilitiesVertexPaint"), [`BrushCapabilitiesWeightPaint`](bpy.types.BrushCapabilitiesWeightPaint.html#bpy.types.BrushCapabilitiesWeightPaint "bpy.types.BrushCapabilitiesWeightPaint"), [`BrushCurvesSculptSettings`](bpy.types.BrushCurvesSculptSettings.html#bpy.types.BrushCurvesSculptSettings "bpy.types.BrushCurvesSculptSettings"), [`BrushGpencilSettings`](bpy.types.BrushGpencilSettings.html#bpy.types.BrushGpencilSettings "bpy.types.BrushGpencilSettings"), [`ByteColorAttributeValue`](bpy.types.ByteColorAttributeValue.html#bpy.types.ByteColorAttributeValue "bpy.types.ByteColorAttributeValue"), [`ByteIntAttributeValue`](bpy.types.ByteIntAttributeValue.html#bpy.types.ByteIntAttributeValue "bpy.types.ByteIntAttributeValue"), [`CacheFileLayer`](bpy.types.CacheFileLayer.html#bpy.types.CacheFileLayer "bpy.types.CacheFileLayer"), [`CacheFileLayers`](bpy.types.CacheFileLayers.html#bpy.types.CacheFileLayers "bpy.types.CacheFileLayers"), [`CacheObjectPath`](bpy.types.CacheObjectPath.html#bpy.types.CacheObjectPath "bpy.types.CacheObjectPath"), [`CacheObjectPaths`](bpy.types.CacheObjectPaths.html#bpy.types.CacheObjectPaths "bpy.types.CacheObjectPaths"), [`CameraBackgroundImage`](bpy.types.CameraBackgroundImage.html#bpy.types.CameraBackgroundImage "bpy.types.CameraBackgroundImage"), [`CameraBackgroundImages`](bpy.types.CameraBackgroundImages.html#bpy.types.CameraBackgroundImages "bpy.types.CameraBackgroundImages"), [`CameraDOFSettings`](bpy.types.CameraDOFSettings.html#bpy.types.CameraDOFSettings "bpy.types.CameraDOFSettings"), [`CameraStereoData`](bpy.types.CameraStereoData.html#bpy.types.CameraStereoData "bpy.types.CameraStereoData"), [`ChannelDriverVariables`](bpy.types.ChannelDriverVariables.html#bpy.types.ChannelDriverVariables "bpy.types.ChannelDriverVariables"), [`ChildParticle`](bpy.types.ChildParticle.html#bpy.types.ChildParticle "bpy.types.ChildParticle"), [`ClothCollisionSettings`](bpy.types.ClothCollisionSettings.html#bpy.types.ClothCollisionSettings "bpy.types.ClothCollisionSettings"), [`ClothSettings`](bpy.types.ClothSettings.html#bpy.types.ClothSettings "bpy.types.ClothSettings"), [`ClothSolverResult`](bpy.types.ClothSolverResult.html#bpy.types.ClothSolverResult "bpy.types.ClothSolverResult"), [`CollectionChild`](bpy.types.CollectionChild.html#bpy.types.CollectionChild "bpy.types.CollectionChild"), [`CollectionChildren`](bpy.types.CollectionChildren.html#bpy.types.CollectionChildren "bpy.types.CollectionChildren"), [`CollectionExport`](bpy.types.CollectionExport.html#bpy.types.CollectionExport "bpy.types.CollectionExport"), [`CollectionExports`](bpy.types.CollectionExports.html#bpy.types.CollectionExports "bpy.types.CollectionExports"), [`CollectionLightLinking`](bpy.types.CollectionLightLinking.html#bpy.types.CollectionLightLinking "bpy.types.CollectionLightLinking"), [`CollectionObject`](bpy.types.CollectionObject.html#bpy.types.CollectionObject "bpy.types.CollectionObject"), [`CollectionObjects`](bpy.types.CollectionObjects.html#bpy.types.CollectionObjects "bpy.types.CollectionObjects"), [`CollisionSettings`](bpy.types.CollisionSettings.html#bpy.types.CollisionSettings "bpy.types.CollisionSettings"), [`ColorManagedDisplaySettings`](bpy.types.ColorManagedDisplaySettings.html#bpy.types.ColorManagedDisplaySettings "bpy.types.ColorManagedDisplaySettings"), [`ColorManagedInputColorspaceSettings`](bpy.types.ColorManagedInputColorspaceSettings.html#bpy.types.ColorManagedInputColorspaceSettings "bpy.types.ColorManagedInputColorspaceSettings"), [`ColorManagedSequencerColorspaceSettings`](bpy.types.ColorManagedSequencerColorspaceSettings.html#bpy.types.ColorManagedSequencerColorspaceSettings "bpy.types.ColorManagedSequencerColorspaceSettings"), [`ColorManagedViewSettings`](bpy.types.ColorManagedViewSettings.html#bpy.types.ColorManagedViewSettings "bpy.types.ColorManagedViewSettings"), [`ColorMapping`](bpy.types.ColorMapping.html#bpy.types.ColorMapping "bpy.types.ColorMapping"), [`ColorRamp`](bpy.types.ColorRamp.html#bpy.types.ColorRamp "bpy.types.ColorRamp"), [`ColorRampElement`](bpy.types.ColorRampElement.html#bpy.types.ColorRampElement "bpy.types.ColorRampElement"), [`ColorRampElements`](bpy.types.ColorRampElements.html#bpy.types.ColorRampElements "bpy.types.ColorRampElements"), [`ConsoleLine`](bpy.types.ConsoleLine.html#bpy.types.ConsoleLine "bpy.types.ConsoleLine"), [`Constraint`](bpy.types.Constraint.html#bpy.types.Constraint "bpy.types.Constraint"), [`ConstraintTarget`](bpy.types.ConstraintTarget.html#bpy.types.ConstraintTarget "bpy.types.ConstraintTarget"), [`ConstraintTargetBone`](bpy.types.ConstraintTargetBone.html#bpy.types.ConstraintTargetBone "bpy.types.ConstraintTargetBone"), [`Context`](bpy.types.Context.html#bpy.types.Context "bpy.types.Context"), [`CryptomatteEntry`](bpy.types.CryptomatteEntry.html#bpy.types.CryptomatteEntry "bpy.types.CryptomatteEntry"), [`CurveMap`](bpy.types.CurveMap.html#bpy.types.CurveMap "bpy.types.CurveMap"), [`CurveMapPoint`](bpy.types.CurveMapPoint.html#bpy.types.CurveMapPoint "bpy.types.CurveMapPoint"), [`CurveMapPoints`](bpy.types.CurveMapPoints.html#bpy.types.CurveMapPoints "bpy.types.CurveMapPoints"), [`CurveMapping`](bpy.types.CurveMapping.html#bpy.types.CurveMapping "bpy.types.CurveMapping"), [`CurvePaintSettings`](bpy.types.CurvePaintSettings.html#bpy.types.CurvePaintSettings "bpy.types.CurvePaintSettings"), [`CurvePoint`](bpy.types.CurvePoint.html#bpy.types.CurvePoint "bpy.types.CurvePoint"), [`CurveProfile`](bpy.types.CurveProfile.html#bpy.types.CurveProfile "bpy.types.CurveProfile"), [`CurveProfilePoint`](bpy.types.CurveProfilePoint.html#bpy.types.CurveProfilePoint "bpy.types.CurveProfilePoint"), [`CurveProfilePoints`](bpy.types.CurveProfilePoints.html#bpy.types.CurveProfilePoints "bpy.types.CurveProfilePoints"), [`CurveSlice`](bpy.types.CurveSlice.html#bpy.types.CurveSlice "bpy.types.CurveSlice"), [`CurveSplines`](bpy.types.CurveSplines.html#bpy.types.CurveSplines "bpy.types.CurveSplines"), [`Depsgraph`](bpy.types.Depsgraph.html#bpy.types.Depsgraph "bpy.type