Thoughts on selection and deselection

One of Rhino’s strengths is the number of precise SelSomething commands. I know some of my ideas may interfere with the way selecting in Rhino is being made right now but I really wish there were equally strong unselect commands or user predefined areas of influence for the commands.
Some kind of temporarily saved selections would need to be made to run another selection method of choice and select what should be subtracted from the original selection

It happened to me, that inside of the viewport, ideal command to use was SelColor – the problem was that it selected everything of the same color in the whole file – waaay more than I needed. A good solution for that would be a predefined area of command influence (for example bounded to only visible in the viewport objects) or unselect commands.
If there are already some comfortable methods I wasn’t aware of, please correct me.

EDIT: Unselect method in simple words:

  1. Select what you want in the way you want
  2. Activate (maybe by the key modifier?) unselect method
  3. Select what to subtract from the previous selection in the way you want
  4. Enjoy your precise selection

1. Example - SelColor only visible objects in the viewport. (this one could be solved by macro probably)

Right now:

  1. SelColor
  2. Isolate
  3. SelNone
  4. SelVisible
  5. Unisolate


  1. SelColor
  2. Unselect Invisible

Alternate Wish:

  1. Command area of influence - Viewport
  2. Sel Color

2. Example - Select bunch of stuff but deselect e.g. white:

Right now:

  1. Select some stuff (selection method of choice)
  2. Isolate
  3. SelNone
  4. SelColor (white)
  5. Hide A (B or C)
  6. SelAll
  7. Unisolate
  8. Show A (B or C)


  1. Select some stuff (selection method of choice)
  2. Unselect Color

3. Unselect Named Selection:

Wish: RMB Click on Named Selection substracts objects from the active selection.

4. Discussed in the past – Selection methods for only occluded geometries.
In the Select by brushing command, option SelectThroughObjects=No doesn’t seem to do what I would expect it to do all the time… It acts weird.

It would be handy to have this option working not only inside Select by brushing but also as a modifier key for Window Select methods - but that may as well be too much acrobatics.

5. Isolate working for sub-objects e.g. mesh faces could also help a lot when modifying some parts of the mesh.

6. SelShortCrv - it could be SelCrvByLength where user could define not only maximum length but minimum too.

1 Like

I definitely second the Unselector wish… A Deselector mode that can take advantage of all Rhino’s detailed SelectBy… and other selection modes to Unselect would be very handy.

Deselector = Substracor (substract from current selection). Another mode could be “Intersector” to select overlapping subsets (for example: lots of object selected but we only want Curves from that selection so we would “Select Curves” in Intersector mode to get it from current selection… then only Red Curves… you get the gist. Good UI for this would be critical, or maybe it’s just a “Switch” in the Selection Filter toolbar? (Obviously I did not think of all potential problems or implications…)


here’s an old script that will give some deselect tools, doesn’t directly address your wants but it is helpful. just drag and drop on a rhino window to install. put the script somewhere where you won’t delete it. after you do that type desel and you’ll get a list of the commands. if you run deselectlist you’ll get a dialog box where you can put a check next to the types you want to delect.

DeselectByType_V4-PG-dnd.rvb (16.4 KB)

here’s a crappy toolbar i made a long time ago for it, some of the buttons don’t work, you can probably fix them or just remove the bad ones. i don’t have time to fix it, sorry.

deselect tools.rui (28.1 KB)


Wow, looks great. As you said, there is something more in this topic to solve but your tool addresses a big chunk of the problem. Thanks a lot!

1 Like