Bevel's affect type should change if I select vertices or edges/faces

When I’m in edit mode and I want to bevel some vertices, even if I’ve selected the vertices the bevel always affects the edges by default, and I have to change the affect type from edges to vertices every time.

Make the affect type contextual to what is selected, so if I select vertices it bevels the vertices, while if instead I select edges or faces it bevels the edges.

So in this situation it’s pretty clear what you would want it to do:

But what about this?

I would find it confusing if the second image started vertex bevel. For the first image I totally agree with you though. However, I have found that other Blender developers are generally not into these context sensitive “helping hands” types of defaults though, maybe for fear that they will add confusion and complexity for someone who isn’t already aware of the problem?

Just to be sure, you know there’s a shortcut for vertex bevel, right? ctrl-shift-b

Wow, totally missed this, thanks Hans!

I get what you mean, from my perspective I’d argue that the choice of selection is done also because the user knows how bevel would behave, so in that case he wouldn’t select vertices but edges, which is something that can be changed also after doing the selection.

I just thought about a pi-menu. Not cool. I think some kind of clever system could be in place.

Like for example:

If there is a flat part selected. Then it’s vertex. Because edges will do no change to the model. Maybe a quick check of whether Model_before != Model_after and then decide. And it could work also in other situations.

I think a “clever system” for the default values of an operator is not at all likely to work in the general case, and is more likely to be confusing than helpful. Any such behavior should at least be predictable, and the mode clever it gets the less predictable it will be.