Add to vertex group

24 Ⅷ 2013

To work with Vertex groups and BMesh combined, you must be aware that the actual group is always part of the Object, not the vertex… So… to add a vertex group, you need to use the old way. What we need to work with is the index of the actual vertex group… so lets say you want a group called “cluster”.. lets see if it exists, and if it doesn’t… make one… then get the index.

import bpy, bmesh

groupName = 'cluster'

ob = bpy.context.active_object
me =

# Try to retrieve the vertex group, and if we can't make a new one
	group_index = ob.vertex_groups[groupName].index
	group =
	group_index = group.index

#Let's get the bmesh data
bm =

# Now here's something new... we have to get the custom data layer
# The vertex groups are all in the deform layer (there is always just one, which we retrieve as the active one)
deform_layer =
if deform_layer is None: deform_layer =

# Let's loop through all faces and if they are selected put the verts in the group!
for f in bm.faces:
		for v in f.verts:
			v[deform_layer][group_index] = 1.0
# Now here's a quick way to see if a vertex is in a vertex group
for v in bm.verts:
	if group_index in v[deform_layer]:
		print('vert',v.index,'is in the group')

# That's it... we're done... so we put the bmesh back in the object