As for Blender 3.6 the script by @iyad-ahmed stopped working because Blender added new builtin orientation `PARENT`. Previous script was relying that there will be exactly 6 builtins, I've updated the script so that it will get the actual list of builtin transformations so it won't break the next time Blender adds/removes new transformation. PS there is still no other way to get list of all custom orientations besides parsing exception message and excluding builting. import bpy context = bpy.context transform_slots = context.scene.transform_orientation_slots builtin_transforms = [i.identifier for i in bpy.types.TransformOrientationSlot.bl_rna.properties['type'].enum_items] # hacky (but the only way) to get the all available transforms try: context.scene.transform_orientation_slots[0].type = "" except Exception as inst: exec("transforms = " + str(inst).split("in")[1]) for transform in transforms: if transform in builtin_transforms: continue transform_slots[0].type = transform bpy.ops.transform.delete_orientation()