import bpy

class DimensionToolsPanel(bpy.types.Panel):
    """Creates a panel with two buttons to remember and apply object dimensions"""
    bl_label = "Retransform Tool"
    bl_idname = "OBJECT_PT_retransform_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="Retransform All Meshes", icon='FILE_REFRESH')
        
class RememberDimensionsOperator(bpy.types.Operator):
    """Stores the object's dimensions"""
    bl_idname = "object.remember_dimensions"
    bl_label = "Retransform All Meshes"

    def execute(self, context):
        counter = 0
        for obj in bpy.data.objects:
            if obj.type == 'MESH':
                obj["remember_dimensions"] = obj.dimensions.copy()
                obj.dimensions = (10,10,10)
                obj.select_set(True)
                bpy.ops.object.transform_apply(location=False, rotation=False, scale=True)
                obj.dimensions = obj["remember_dimensions"]
                obj.select_set(False)
                counter += 1
                
        self.report({'INFO'}, "Retransformed ALL " + str(counter) + " meshes in the scene")
        return {'FINISHED'}
    
def register():
    bpy.utils.register_class(DimensionToolsPanel)
    bpy.utils.register_class(RememberDimensionsOperator)

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

if __name__ == "__main__":
    register()

dimension_tools_06.py