import bpy def all_subclasses(cls): return set(cls.__subclasses__()).union( [s for c in cls.__subclasses__() for s in all_subclasses(c)] ) def get_bl_default(prop: bpy.types.Property): """Get the default value of a Blender property""" if getattr(prop, "is_array", False): return list(prop.default_array) elif hasattr(prop, "default"): return prop.default def set_bl_attribute(bl_object, attr, value): try: setattr(bl_object, attr, value) except Exception as e: print(e)