Python: Traceback (most recent call last): File "…", line 32, in execute AttributeError: 'Object' object has no attribute 'remember_dimensions'

I apologize for the confusion caused by my previous response. The error message you are getting is because the script is trying to access an attribute 'remember_dimensions' on the object that does not exist. In order to fix the issue, you can add the following line before storing the dimensions:

obj["remember_dimensions"] = obj.dimensions.copy()

This line creates a new attribute 'remember_dimensions' on the object and assigns the current dimensions to it.

Here's the full corrected code:

import bpy

class DimensionToolsPanel(bpy.types.Panel):
    """Creates a panel with two buttons to remember and apply object dimensions"""
    bl_label = "Dimension Tools"
    bl_idname = "OBJECT_PT_dimension_tools"
    bl_space_type = 'PROPERTIES'
    bl_region_type = 'WINDOW'
    bl_context = "object"

    def draw(self, context):
        layout = self.layout
        obj = context.active_object
        
        row = layout.row()
        row.label(text="Selected Object: " + obj.name)
        
        row = layout.row()
        row.operator("object.remember_dimensions", text="Remember Dimensions", icon='FILE_TICK')
        
        row = layout.row()
        row.operator("object.apply_remembered_dimensions", text="Apply Remembered Dimensions", icon='FILE_REFRESH')
        
class RememberDimensionsOperator(bpy.types.Operator):
    """Stores the object's dimensions"""
    bl_idname = "object.remember_dimensions"
    bl_label = "Remember Object's Dimensions"

    def execute(self, context):
        obj = context.active_object
        obj["remember_dimensions"] = obj.dimensions.copy()
        self.report({'INFO'}, "Remembered dimensions for object: " + obj.name)
        return {'FINISHED'}
    
class ApplyRememberedDimensionsOperator(bpy.types.Operator):
    """Applies the remembered dimensions to the object"""
    bl_idname = "object.apply_remembered_dimensions"
    bl_label = "Apply Remembered Dimensions"

    def execute(self, context):
        obj = context.active_object
        if "remember_dimensions" in obj:
            obj.dimensions = obj["remember_dimensions"]
            self.report({'INFO'}, "Applied remembered dimensions to object: " + obj.name)
        else:
            self.report({'WARNING'}, "No remembered dimensions found for object: " + obj.name)
        return {'FINISHED'}

def register():
    bpy.utils.register_class(DimensionToolsPanel)
    bpy.utils.register_class(RememberDimensionsOperator)
    bpy.utils.register_class(ApplyRememberedDimensionsOperator)

def unregister():
    bpy.utils.unregister_class(DimensionToolsPanel)
    bpy.utils.unregister_class(RememberDimensionsOperator)
    bpy.utils.unregister_class(ApplyRememberedDimensionsOperator)

if __name__ == "__main__":
    register()

dimension_tools_02.py