Wish: Smart object selection

Proposal 1. “Compound region select” which either uses the pre-selected objects as limit for the subsequent selection, or lets the user draw a region (rectangular or circle) to select only certain area of the screen that consists object. Once one of those two actions is completed, the command asks for a subsequent selection which is limited to the pre-selected objects of the ones selected via the region selection. For example, if I have a bunch of objects of different type in some area, I want to be able to region select them and then Rhino will be waiting for a new selection command of my choice to be executed (like “Select by name”, “Select curves” etc).

This is NOT same as the existing ! _IsolateLock command, because the latter will not allow extra objects to be added to the selection once some other objects are already added to the list. Instead, it simply runs the command again to further limit the number of selectable objects from the already limited selected.

There is also no ! _UnisolateLockSelected command, which should let the user select certain objects to remove them from the existing IsolateLock selection. This could be somewhat emulated by running the ! _IsolateLock command again, then select the desired objects, then run the '_Invert command, but it’s more complicated. Of course, a custom made macro probably could be made to mitigate this lacking function in Rhino, but my point is that it’s not present in the program by default.

Another drawback of ! _IsolateLock is the forced use of ! _UnisolateLock after the selection of the necessary objects is completed, otherwise Rhino will not let the user choose any other objects in the scene. In contrast, “Compound region select” will turn off itself once the subsequent selection is completed, making it possible to select any non-locked object in the scene.


Proposal 2. “Filtered select by name” search box in the “Select name” panel ('_SelName) based on selecting all objects whose name consist certain characters. As the name suggests, its purpose is to show the results in the search box while typing, in a similar fashion like the Command line which suggests possible commands. However, it must be able to show results even when typing characters that are not initial. For example, when the user types “in”, Rhino must be smart enough to bring a list with the following names of objects in the scene (assuming they exist there): Rhino, Infrared, Minimal, Chain etc. That is a much needed feature.

I wonder if the developers of Rhino are not interested into making the user experience regarding selection of objects much better, or the aforementioned feature requests were simply ignored due to other reasons that remain a mystery? :slight_smile:

The current selection types are quite limiting and lack the convenience to select objects based on combining two criteria into the same selection command.

The lack of search box in the “Select name” panel is also a huge missing opportunity to make working with Rhino easier.

1 Like

It’s not a bad idea.
It’s up to the Rhino development team with user input to make a guess as to how many users would benefit from it, and how complicated the development effort would likely be.
You have to trust them to make the best decision with everything taken into account.

1 Like

you can select with asterix (placeholder) - this is super powerful:
-_selName *in*

just to link related topics:

This is nowhere as useful as a proper life search box inside the “Select name” pop-up window. The advantage of the former is that it let the user preview the selection in the vertical list of objects and do adjustments before hitting OK (such like adding or removing some objects from/to the selection). Also, the search box allows quick change of the characters included in the object names, hence the selection could vary accordingly depending on the written characters.

As I described in my original post, the main reason for the proposal is to make the object selection more powerful and user-friendly by giving the user convenient ways to select the desired objects from a temporary preliminary selection. Such like doing a region selection of multiple objects, followed by selecting only some of those pre-selected objects (ignoring the rest objects that were not part of the pre-selection) via a secondary criteria.

Maybe some clever macro with lots of _Pause or _Multipause commands inside could be made to run ! _IsolateLock as an initial command that awaits for a secondary type of objects selection (or allows mouse selection in the viewport), then the user selects the desired objects, then hitting the Enter key or the RMB should directly run ! _UnisolateLock to release the previously locked selection for further actions.

Proposal 3: After the primary pre-selection, allow a secondary excluding from the selection. This is the exact opposite of selecting by type, by name, or by any other criteria.

Proposal 4: This is an addition to Proposal 2 from the first post. Adding a dedicated “Invert selection” button inside the “Select name” panel. It will let the user select certain objects, then invert the selection before hitting “OK” to confirm the selection.

Proposal 5: Add a tickbox called “Add” (or “Add to selection”, though this is too long) inside the “Select name” panel. This should be on by default, but the user can turn it off during the selection process. The advantage of this approach is that the user can control whether the new selection will add those objects to an existing selection, or will replace the old selection with the new one.

Proposal 6: Allow right-click context menu (or an icon) to copy the object names marked in the list of objects inside the “Select name” window. It will also help to have a few more options, such like: Select all, Select none, Invert selection.

Example:

Note: To copy the names of already selected objects, simply run the '_SelName command, select all objects and choose “Copy object names”.


That particular feature was also requested in another topic:

1 Like

I would love to see those 6 proposals becoming a real functionality in Rhino 9. Any intention by the developers to work on them? :slight_smile:

Hi @Rhino_Bulgaria,

I’ve logged some of the wishes, probably missed a few.

https://mcneel.myjetbrains.com/youtrack/issue/RH-82910

– Dale

1 Like

Thanks! Lets hope that these will be released in Rhino 9! :slight_smile:

While we are on this topic, I would like to add some more thoughts.


Being able to copy the name of the selected objects is essential for many industries. Especially if there is an option to store them in the clipboard either as a vertical list with one name per line or separated by commas. Example:

a) Vertical list:
Glass
Wood
Metal
Water
Stone

b) Horizontal list:
Glass, Wood, Metal, Water, Stone

The vertical list is more usable in Microsoft Excel tables or general use in forums, Notepad, Wordpad, Word, etc.

Optionally, the list may contain the number of objects with the same name placed in brackets:

c) Vertical list with object count:
Glass (x2)
Wood (x457)
Metal (x1)
Water (x98)
Stone (x4093)


In my opinion, Rhino should be able to remember the custom size of the “Select name” window during the whole session. It’s really annoying to expand the pop-up window manually every time I run the '_SelName command. I’m forced to repeat that hundreds of times per day, because for some reason it always opens as a short pop-up window that’s just about 1/3 of the actual height of my 4K screen.


There could be a toggle (or a tickbox) inside the “Select object” window named “Ignore Selection filter” that will temporarily ignore the active selection filter. Once the selection via the “Select object” list is made and the pop-up window is closed, the Selection filter returns to its previous state. For example, if I have the Selection filter set to “Curves” only, I would like to be still able to select all objects of certain names through the “Select object” list, including surfaces, polysurfaces, meshes, points etc.


There is a very helpful script that enables selecting of objects with the same name as the currently selected one(s). However, it would help many Rhino users if it becomes a standard RMB command for the '_SelName` icon.

SelSameName.rar (441 Bytes)

Tooltip:
Select objects with same name

Command:
_-RunPythonScript “Your directory\SelSameName.py”

RH-82910 is fixed in Rhino WIP

Please, consider adding the last request from the following topic to the list of improvements (remembering the manually expanded size of the pop-up window during the current Rhino session).

As mentioned there, the current implementation resets the size of the pop-up window to a very unusable 1/3 of the screen on my 1080p laptop, making it cumbersome to work with due to the need to expand the height of the window every single time. Working on a desktop PC with a 4K monitor makes the experience even worse.
If you run the '_SelName command in a scene with 5-10 object names, the limited size of the pop-up window may not be an issue. However, it becomes super annoying while working with plenty of named objects. If I run the '_SelName command 1000 times per day, I’m forced to manually expand its window almost 1000 times, too (on rare occasions the desired object is located across the initial 10 places in the list).

@Rhino_Bulgaria this is already implemented, the dialog size is stored (at least within the session, I haven’t checked between sessions)

1 Like

Awesome! Thank you for letting me know! :smiley:
Is the searchbox implemented already? I don’t have Rhino 9 WIP and can’t check by myself.

Also, name grouping by same name and number of copies inside brackets? This could work best by adding a new tickbox called “Group by name” or “Group same names” (not to be confused with the actual _Group command in Rhino).

1 Like

The new pop-up window looks so much useful now! :slight_smile: Great work!
I just edited my post above to add another question. :slight_smile:

1 Like

For my liking, the default minimum width is too wide.

Here with a guid

System Info

Rhino 9 SR0 2025-7-29 (Rhino WIP, 9.0.25210.12305, Git hash:master @ 5c7f484f1781b99f5671a31bfcbddafd724e61af)
License type: Commercial, build 2025-07-29
License details: Cloud Zoo
Expires on: 2025-09-12

Windows 11 (10.0.26100 SR0.0) or greater (Physical RAM: 128GB)
.NET 9.0.7

Computer platform: DESKTOP

Standard graphics configuration using OpenGL
Primary display: NVIDIA RTX A5000 (NVidia) Memory: 24GB, Driver date: 5-12-2025 (M-D-Y). OpenGL(4.6.0 NVIDIA 573.24)
> Accelerated graphics device with 4 adapter port(s)
- Windows Main Display attached to adapter port #0
- Secondary monitor attached to adapter port #1

Secondary graphics devices.
NVIDIA Quadro K2200 (NVidia) Memory: 4GB, Driver date: 5-12-2025 (M-D-Y).
> Accelerated graphics device with 4 adapter port(s)
- There are no monitors attached to this device!

OpenGL Settings
Safe mode: Off
Use accelerated hardware modes: On
GPU Tessellation is: On
Redraw scene when viewports are exposed: On
Graphics level being used: OpenGL 4.6 (primary GPU’s maximum)

Anti-alias mode: 4x
Mip Map Filtering: Linear
Anisotropic Filtering Mode: High

Vendor Name: NVIDIA Corporation
Render version: 4.6
Shading Language: 4.60 NVIDIA
Driver Date: 5-12-2025
Driver Version: 32.0.15.7324
Maximum Texture size: 32768 x 32768
Z-Buffer depth: 24 bits
Maximum Viewport size: 32768 x 32768
Total Video Memory: 24564 MB

OpenBLAS: OpenBLAS 0.3.29 DYNAMIC_ARCH NO_AFFINITY Zen MAX_THREADS=64.

Rhino plugins that do not ship with Rhino

Rhino plugins that ship with Rhino
C:\Program Files\Rhino 9 WIP\Plug-ins\Commands.rhp “Commands” 9.0.25210.12305
C:\Program Files\Rhino 9 WIP\Plug-ins\rdk.rhp “Renderer Development Kit”
C:\Program Files\Rhino 9 WIP\Plug-ins\RhinoBonusTools.rhp “Rhino Bonus Tools”
C:\Program Files\Rhino 9 WIP\Plug-ins\AnimationTools.rhp “AnimationTools”
C:\Program Files\Rhino 9 WIP\Plug-ins\UpdatesAndStatistics\UpdatesAndStatistics.rhp “UpdatesAndStatistics” 9.0.25210.12305
C:\Program Files\Rhino 9 WIP\Plug-ins\RhinoRenderCycles.rhp “Rhino Render” 9.0.25210.12305
C:\Program Files\Rhino 9 WIP\Plug-ins\RhinoRender.rhp “Legacy Rhino Render”
C:\Program Files\Rhino 9 WIP\Plug-ins\rdk_etoui.rhp “RDK_EtoUI” 9.0.25210.12305
C:\Program Files\Rhino 9 WIP\Plug-ins\NamedSnapshots.rhp “Snapshots”
C:\Program Files\Rhino 9 WIP\Plug-ins\MeshCommands.rhp “MeshCommands” 9.0.25210.12305
C:\Program Files\Rhino 9 WIP\Plug-ins\IronPython\RhinoDLR_Python.rhp “IronPython” 9.0.25210.12305
C:\Program Files\Rhino 9 WIP\Plug-ins\RhinoCycles.rhp “RhinoCycles” 9.0.25210.12305
C:\Program Files\Rhino 9 WIP\Plug-ins\Toolbars\Toolbars.rhp “Toolbars” 9.0.25210.12305
C:\Program Files\Rhino 9 WIP\Plug-ins\3dxrhino.rhp “3Dconnexion 3D Mouse”
C:\Program Files\Rhino 9 WIP\Plug-ins\Displacement.rhp “Displacement”
C:\Program Files\Rhino 9 WIP\Plug-ins\SectionTools.rhp “SectionTools”

1 Like

Could it be set to a narrower size, but taking 80% of the screen’s height instead? I mostly need vertical space, not horizontal.

I just made PR that fixes that. min. width becomes 300 (was 500). It will stay 500 for SelBlockInstanceNamed. It will also make the content scrollable.
this is min size:

2 Likes

When scrolling, type a first character and it would autoscroll to the first name with that character would be nice

1 Like