# Object delete handler

Is there any way to call a function on object delete or on changing count of bpy.data.objects? There is nothing suitable in bpy.app.handlers and I coudn't find something anywhere else.

• could set up a scene_update handler to do this with a global dic or similar and check with something like this blender.stackexchange.com/questions/34860/… – batFINGER Oct 28 '16 at 9:56
• Thanks. I Tried to avoid scene_update handler because it calls too often but it's ok if this is an only option... – Anton Oct 28 '16 at 10:02
• Could use a modal timer operator, or even a draw method to flag change. The scene_update handler is AFAIK the "catch all" way to check on delete. – batFINGER Oct 28 '16 at 10:26
• You can override the delete function. blender.stackexchange.com/questions/28932/… – Piotr Kowalczyk Mar 22 '19 at 14:54

Piotr commented that you could override the Delete operator, as described for a different purpose in this answer: https://blender.stackexchange.com/a/28933/66651

I am using it to remove derivative objects. It works very well!

class delete_override(bpy.types.Operator):
"""delete objects and their derivatives"""
bl_idname = "object.delete"
bl_label = "Object Delete Operator"

@classmethod
def poll(cls, context):
return context.active_object is not None

def execute(self, context):
for obj in context.selected_objects: