if I have only one selected mesh component (face, edge, vertex), how would I go about making it the active one ?
??? If there’s only one element selected, then that element is the active one!!
Can you explain a bit better what you’re trying to do (and what are you getting from your tries)?
You use the active property of that mesh component.
bpy.data.objects['Cube'].data.polygons.active = 1 #1 as the faces index
You can loop through the mesh components and assign the selected active:
for face in bpy.data.objects['Cube'].data.polygons: if face.select: bpy.data.objects['Cube'].data.polygons.active = face.index
There are cases where this isn’t true.
I had to add “.data” after “.data.objects[‘Cube’]”, otherwise there wouldn’t be a “polygons” attribute.
Other than that your script works but only in Object Mode. Do you think there’s a way to make it work without leaving Edit Mode ?
Secrop, as cmomoney pointed out, the active face can be unselected, leaving the remaining selection inactive.