Blender 2.6: Select object by name through Python
Asked Answered
Y

3

22

How do you select objects by name through Python in Blender 2.6?

In 2.4-2.5, one could simply use:

bpy.ops.object.select_name("OBJECT")

... but this has been discontinued in 2.6, to be replaced by what?


In 2.6, one can get the currently selected objects like so...

bpy.context.selected_objects

And there's a way to set the scene's active object...

bpy.context.scene.objects.active = bpy.data.objects["OBJECT"]

And one can also select via operations, like select_all() or select_by_type()...

bpy.ops.object.select_all(action="TOGGLE")

But I can't find a way to select simply by name.

Thanks very much.

Yevette answered 20/10, 2013 at 0:8 Comment(0)
Y
27
bpy.data.objects['OBJECT'].select = True

Selection data is contained within the individual objects. You can read and write them as shown. In a slightly more readable form:

object = bpy.data.objects['OBJECT']
object.select = True
Yevette answered 20/10, 2013 at 0:32 Comment(0)
S
15

bpy.ops.object.select_name() has been replaced by bpy.ops.object.select_pattern() (around 2.62, I think?), which is a more powerful version (it can select an exact name, but also use patterns with wildcards, be case-insensitive, etc.):

bpy.ops.object.select_pattern(pattern="Cube")
Shaeshaef answered 23/11, 2013 at 23:0 Comment(0)
R
4
import bpy

def returnObjectByName (passedName= ""):
    r = None
    obs = bpy.data.objects
    for ob in obs:
        if ob.name == passedName:
            r = ob
    return r

obs = bpy.data.objects

bpy.ops.object.select_all(action='DESELECT')

for ob in obs:
    print (ob.name)
    myObj = returnObjectByName(ob.name)
    if myObj != None:
        print (dir(myObj))
        myObj.selected = True
        myObj.location[2] = 10
        myObj.selected = False

Not my code, not guaranteed to work.

Source

Ricoricochet answered 20/10, 2013 at 0:18 Comment(1)
Aha! Each object has it's own selected property! Thanks, I'll put this into a readable answer.Yevette

© 2022 - 2024 — McMap. All rights reserved.