9
$\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$
11
$\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$
  • $\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$ – JakeD Sep 30 '16 at 2:33
16
$\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$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.