1, 2 and 3 keys are still destructive in object mode

OMG yes please, this current behavior is infuriating! I still have no clue what exactly it does. There doesn’t seem to be any method or reason to what determines which groups get shown or hidden.

3 Likes

Blender has no concept of what the previous visibility state was.

IMO, the use of those number keys works poorly now with nested infinite collections - we could just NOT do that. See the IC keymap, which just doesn’t have this problem.

3 Likes

I ran into this many times recently - pressed number key and hidden all other collections. I’m not sure what causes such behaviour on human side, maybe some muscle memory patterns in brain that persist between modes. Anyway, probably it might be better to remove collection isolation hotkeys.

I swear I read somewhere that this was finally about to change, but I just accidentally, again, managed to do this in the latest nightly 2.9 build… :disappointed:

For now, go to the keymap preferences and delete every “hide collection” entry bound to 1-0.

1 Like

Just found this thread. I made a post about this some time ago as well:


Feel free to chat about this there as well. I too feel it is a left over mechanic that should be re-thought.

That’s a very good idea!

first thing I do when starting new shortcut setup in newer blender versions is to disable [0-9] collection visibility shortcuts

This operation should be reviewed, either by having it off by default and assiging it manually via right click on collection or simply having better icon indication on which collections will shown if user presses number keys
image

3 Likes

I do it all the time by striking the 1 key by mistake instead of the Q. And it is infuriating. Thank God for ctrl-Z though.

I kind of like it, this idea of bookmarking collections!

This is killing me! And it isn’t even a toggle in 2.91, and it turns off internal collections as well.
So best you can do is switch to the collection which has the most collections, and then go through the rest manually turning them back on.

1 Like

Maybe this can be handled by switching to a temporary or special view layer. That way you can easily switch back to your own/previous view.

I’ve made a little script that could be useful for those that do not use the 1-3 keys to set collections visibility.
It works the same way in object mode as in edit mode. In object mode, enters edit mode and selects vertex, edge, face

bl_info = {
    "name": "AR Select",
    "category": "Object",
    "blender": (2, 80, 0),
    "author": "AR d-V-b",
}

import bpy


class ARSelect(bpy.types.Operator):
    """ARSelect"""
    bl_idname = 'object.ar_select'
    bl_label = 'Edit Select (AR)'
    bl_options = {'UNDO'} #'REGISTER'
    m_select_type: bpy.props.EnumProperty(
        name = 'Mesh Select Type',
        items = [
            ('VERT', 'Vertex', 'Select Vertex'),
            ('EDGE', 'Edge', 'Select Edge'),
            ('FACE', 'Face', 'Select Face'),
            ]
        )

    g_select_type : bpy.props.EnumProperty(
        name = 'GP Select Type',
        items = [
            ('0', 'Point', 'Select Point'),
            ('1', 'Stroke', 'Select Stroke'),
            ('2', 'Segment', 'Select Segment'),     
            ]
        )


    def execute(self, context):
        if bpy.context.object.type == 'MESH':
            bpy.ops.object.mode_set(mode='EDIT')
            bpy.ops.mesh.select_mode(
                use_extend=False,
                use_expand=False,
                type=self.m_select_type)

        elif bpy.context.object.type == 'GPENCIL':
            bpy.ops.gpencil.editmode_toggle()
            bpy.ops.gpencil.selectmode_toggle(mode=int(self.g_select_type))
        else:
            return {'CANCELLED'}

        return {'FINISHED'}


_keys = []

def register():
    bpy.utils.register_class(ARSelect)

    wm = bpy.context.window_manager
    km = wm.keyconfigs.addon.keymaps.new(name='Object Mode', space_type='EMPTY')

    kmi = km.keymap_items.new(ARSelect.bl_idname, 'ONE', 'PRESS', ctrl=False, shift=False)
    kmi.properties.m_select_type = 'VERT'
    kmi.properties.g_select_type = '0'

    kmi = km.keymap_items.new(ARSelect.bl_idname, 'TWO', 'PRESS', ctrl=False, shift=False)
    kmi.properties.m_select_type = 'EDGE'
    kmi.properties.g_select_type = '1'

    kmi = km.keymap_items.new(ARSelect.bl_idname, 'THREE', 'PRESS', ctrl=False, shift=False)
    kmi.properties.m_select_type = 'FACE'
    kmi.properties.g_select_type = '2'

    _keys.append(km)


def unregister():
    bpy.utils.unregister_class(ARSelect)
    wm = bpy.context.window_manager
    for km in _keys:
        wm.keyconfigs.addon.keymaps.remove(km)
    del _keys[:]


if __name__ == "__main__":
    register()

3 Likes

This feature actually is broken since 2.8, but it is easy to repair with a simple change in the concept. Instead of put a hotkey to the collections turn on/off the visibility by groups using the color of the collection

imagen

nocolor? 1
colors? 2-9
Show all collections? 0

If you don’t use this and pulse 2 or 3 by error only need to pulse 1 to recover your visibility, if you want to use you have all the potential of the old system. Also allow to have a better order in the scene

1 Like

How do you implement scripts?

I think your solution is awsome

If there was a concept of ‘Groups’ inside blender, the 1, 2, and 3, keys in object mode could toggle between selecting objects, parents of objects, and groups.

edit: didn’t mean to reply to SR_Wild

Copy the script to a .py file for example “set123.py” then install it like any other addon.
Edit > Preferences > Add-ons > install

Why does this behavior even exist? The solution isn’t to make it more complex, but to remove it altogether. There are just too many high-usage keys in close proximity to 1, 2, 3 for them to perform this sort of irreversible behavior. You cannot undo to return to the previous state, you have to manually go through each item that has been hidden and show it. It’s too close to Rename (F2) and Mode (Tab); arguably Extrude (E) and Rotate (R) as well, but those are edit mode so 1, 2, 3 are good there as they change the selection type; also tilde (useful for positioning camera). You could keep it optional, but it’s most likely to waste time if you use shortcut keys often, and if you don’t, then you don’t need those numbers to be shortcuts because you don’t use them.

2 Likes

Agree with Rah on this one. When swapping between Edit Mode and Object Mode it’s very easy to lose track of which mode you’re in. The hotkey overlap of 1,2,3 then triggers a disruption of the entire workflow when you accidentally hide everything you’re working on, instead of just swapping geometry selection mode.

Yes, it is annoying. But no , I don’t think it will be ‘fixed’ in the near future. Not in the default keymap anyway. As far as I can tell there are a lot of people very much attached to 1,2,3 in editmode being verts/edges/faces and there are also a lot of people very attached to using number keys for collection management (I don’t really understand, because turning collections on and off looses all viewport visibility info so I myself hardly ever do it).

Luckily it’s easy to just change the keymap for yourself.

1 Like