If we need to quickly select all the edges that have UV seams assigned to them, we can use the Blender Python API. To do this, we can use the “ops” operator, mesh data access, or bmesh.
The easiest way to select all the edges that have UV seams is to use the “select_similar” operator.
Note that at least one edge with a UV seam must already be selected on the mesh. We also need to switch to edge selection mode in the 3D viewport. Now we can call the operator:
|
1 |
bpy.ops.mesh.select_similar(type='EDGE_SEAM') |
After which all the edges with seams will be selected.
We can select all edges with UV seams by looping through the mesh edges and checking their “use_seam” property. This method will only work in object mode, so we need to switch to this mode before looping.
|
1 2 3 4 5 6 |
bpy.ops.object.mode_set(mode = 'OBJECT') for edge in bpy.context.object.data.edges: edge.select = edge.use_seam bpy.ops.object.mode_set(mode = 'EDIT') |
After the loop, we can switch back to the edit mode and make sure all the sean edges are selected.
We can also select edges with UV seams when working with a bmesh object.
We need to switch to object mode, create a bmesh object, fill it with data from the current mesh, and loop through all the edges in the same way. For a bmesh edge, the required property has the “seam” name.
|
1 2 3 4 5 6 7 8 9 10 11 12 |
bpy.ops.object.mode_set(mode = 'OBJECT') bm = bmesh.new() bm.from_mesh(bpy.context.active_object.data) for edge in bm.edges: edge.select = edge.seam bm.to_mesh(bpy.context.active_object.data) bm.free() bpy.ops.object.mode_set(mode = 'EDIT') |
After looping through the edges, push the bmesh data back to the original mesh, clear the bmesh, and switch back to the edit mode.
All edges with UV seams will be selected.

.blend file on Patreon