Featured post

new redirect for blender.org bpy docs.

http://www.blender.org/api/blender_python_api_current/ As of 10/11 november 2015 we can now link to the current api docs and not be worr...

July 07, 2011

How to set active_object via python

a simple one liner!
"""using an object reference"""
>>> bpy.context.scene.objects.active = bpy.data.objects["Cube"]

# if checked to see which is now active
>>> bpy.context.scene.objects.active

# this may not update visibly as you might expect in the viewport, 
# but you will see the origin of active_object, and the name bottom left.
bpy.data.objects['Cube']

active != selected, you could have 10 objects selected, of which only 1 can ever be active at a time. Or none selected, but 1 active. To get a better understanding of this not so intuitive situation: unselect everything, if you have two objects in the scene, the last one interacted with will be 'active' (as in, shows the origin, and name displayed bottom left)

Setting the state of an object to 'select = True' , is not the same thing

Example usage of active object

as an example, below is code that adds Empties while an object is in Edit Mode, the script must set the active object back to the former object, after an empty is added. Try it with suzanne in Edit Mode, then select one vertex and run the script.

2 comments:

  1. Nice trick man, I was just having an issue with "active_object" settings... thanks a lot!

    ReplyDelete

Please use Blender.StackExchange.com for python scripting questions unrelated to this post.