17
$\begingroup$

Is it possible to switch to vertex mode (and edge, face mode) via python. I know I can toggle between object mode and edit mode in python with

bpy.ops.object.editmode_toggle()

But how can I explicitly say I want to go in vertex mode?

$\endgroup$

2 Answers 2

18
$\begingroup$
bpy.ops.mesh.select_mode(type="VERT")
bpy.ops.mesh.select_mode(type="EDGE")
bpy.ops.mesh.select_mode(type="FACE")

Look up the operator in the api documentation.

$\endgroup$
1
  • $\begingroup$ CoDEmanX's solution is much better because the scene doesn't get reloaded. It will be faster and also easier to use of course. $\endgroup$
    – Jake Dube
    Commented Sep 30, 2016 at 2:33
19
$\begingroup$

I prefer to not use operators, if they can be avoided. You may use:

bpy.context.tool_settings.mesh_select_mode

Assign a tuple of 3 booleans to set Vertex, Edge, Face selection.

To activate vertex selection mode, use:

bpy.context.tool_settings.mesh_select_mode = (True, False, False)

For edge + face multi-selection mode, use:

bpy.context.tool_settings.mesh_select_mode = (False, True, True)

etc.


When working with the BMesh Module (bmesh), there's also

bm.select_mode

For edge selection, do:

bm.select_mode = {'EDGE'}

For vertex and face selection multi-mode, do:

bm.select_mode = {'VERT', 'EDGE', 'FACE'}
$\endgroup$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .