I have many objects in the scene as they have been duplicated. pad, pad.001, pad.002 etc etc. I require a python code to select all of them by name.. name starting with 'pad' Thanks in advance.
1 Answer
The following snippet iterates through the objects in the scene and checks if their name matches a prefix. If it does it's added to the list.
objs = [obj for obj in bpy.context.scene.objects if obj.name.startswith("pad")]
If you want to select them, as in selecting them in the scene, then you can do the following for 2.7x:
for obj in bpy.context.scene.objects:
if obj.name.startswith("pad"):
obj.select=True
For 2.8:
for obj in bpy.context.scene.objects:
if obj.name.startswith("pad"):
obj.select_set(True)
You could also use:
bpy.ops.object.select_pattern(pattern="pad*")
-
$\begingroup$ Traceback (most recent call last): File "<blender_console>", line 3, in <module> AttributeError: 'Object' object has no attribute 'select' $\endgroup$ Jul 13, 2019 at 11:02
-
$\begingroup$ Is this for 2.8, I've tried the script. it will not select the objects. $\endgroup$ Jul 13, 2019 at 11:08
-
$\begingroup$ @MichaelTeiniker updated the answer for 2.8. $\endgroup$– Robert Gützkow ♦Jul 13, 2019 at 11:13
-
$\begingroup$ works, how would I make the active objects selected? I have tried this, no luck. activeObject = bpy.context.active_object $\endgroup$ Jul 13, 2019 at 11:52
-
$\begingroup$ @MichaelTeiniker I'm not sure what you mean. Active objects are already selected. $\endgroup$– Robert Gützkow ♦Jul 13, 2019 at 11:55