Isolate 'levels'

Hi there,
Just wondering if it’s possible to isolate in levels. That is, can I isolate multiple times, and then return one layer up instead of revealing all?

E.g., 3 total objects, select 2>isolate, of those two isolated, select 1>isolate, then unisolate to reveal 2 objects instead of all 3…?


Huh, how about that?! I have always done SelAll/InvertSelection/Hide.
I didn’t know such command exists.
That damn McNeel language again. “Isolate”? Really?

I wonder what will you name it when after a while you make a better implementation of the history and a feature-based modeling with database-based Rhino. How would you name separating parts then? :thinking: :man_facepalming:

That damn McNeel language again. “Isolate”? Really?

It is a pretty standard term in many modeling software. All Autodesk software also uses this term for object / layer isolation.

Autocad is not a feature-based modeling tool. Isolation has nothing to do with hiding if you think of the meaning of the word.

In context of history (using this term because McNeel Language again), or links between objects that define each other. A better use of the term isolate is to separate an object from the others, breaking the links.

I didn’t say it is the best word, but it is one many have adapted. I also didn’t just say AutoCad, I said Autodesk :smiley:

To me it makes sense, you are isolating it as editable from the rest of the things in the document. Maybe I am just used to the word from the software I use. Anyway, whatever its called, I am happy it was added in R6.

Hi Jeremy - no, not really in order like that, but Isolate just uses the built in hide buckets that you can use to isolate and unisolate whatever you want to custom named buckets - three are implemented in the Visibility toolbar.


Check the macros on those buttons for the correct syntax to make your own if needed.


It’s simple to make a secondary Isolate command. You just need to make a new button with the following macros for the left and right mouse buttons, respectively:

_-Invert _-Hide _Pause “TempIsolate” _Enter

! _-Show “TempIsolate”

Here are the icons that you could use for the command:
Isolate icons (32-bit PNG).zip (3.2 KB)

Isolate 16x16

Isolate 24x24

Isolate 32x32

If you want a 3rd level of Isolate, Unzip and drag the *.tb file into an open Rhino window. That will add a new icon for another Isolate that will work with its own unhide rules that are not same like the default Rhino Isolate and the secondary Isolate that I posted above. You can make a copy of this icon (Ctrl + left mouse button) to have it in an existing toolbar or in the middle mouse button’s pop-up window. (1.1 KB)

I downloaded it from here:

Thanks Pascal. I will delve into the Visibility menu a fair bit and understand that it may be difficult to implement such an isolation/unisolation sequencing.

With the solution that I posted above it’s possible to have up to 3 levels of isolation of objects. They all are an isolate command but work in a different way.

By the way, years ago @pascal created a wonderful script for Rhino 5 called “Isolate objects” with the following aliases: “_-Isolate” and “! _UnIsolate”. It had two cool features that made it special:

  1. It asked whether to save and restore the current view upon isolation of the selected object(s).

  2. It remembered the state of the isolated and temporarily hidden objects, so that even if you save the file and close it or if Rhino crashes, the eventual re-opening of Rhino and the file will let you unisolate the object(s) and bring back the temporarily hidden objects in the scene, whereas the truly hidden objects stay hidden.

Unfortunately, the native “Isolate” command in Rhino 6 has the same alias as this particular script, so it seems like it’s not possible to use the latter in Rhino 6 in order to take advantage of the two “remember and restore” features.

It’ may be very valuable for Rhino 5 users, though:

Combined with “Isolate/ Unisolate Selection” it allowed two levels of isolation in Rhino 5:

It was very handy to use primarily @pascal’s script as the main isolation way that let you save between sessions with isolated objects without worrying that the next time you open the file the temporarily hidden objects will not be remembered. And then, the “Isolate/ Unisolate Selection” script was useful for quick isolation of one or more objects that you needed isolated for a shorter time.


Is that rhino 5 script adaptable to rhino 6? it sounds extremely useful!
And yes… the rhino 6 unisolate issues are hard to avoid…

Pascal Golay is the coding genius who made the Rhino 5 Isolate script, so I hope that he could also make it work on Rhino 6 in parallel with the default Isolate command.
The Rhino 5 script could be inserted in Rhino 6 Evaluation (just tried that) but upon evoking the command it activates the integrated Isolate function of Rhino 6, because they both share the same alias… So, at the moment that script can’t work in Rhino 6 as long as it uses the same alias.

Hi All - you can edit the rvb script in EditScript or a script editor and put in whatever alias you like -

These lines:

Rhino.AddAlias "Isolate", "_NoEcho _-Runscript (Isolate)"
Rhino.AddAlias "Unisolate", "_NoEcho _-Runscript (Unisolate)"

Just make sure to drag and drop the script again after.



Thank you for the tip, Pascal! :slight_smile: I just added the letter “X” behind both “Isolate” and “Unisolate” and now the script works perfectly.

IsolateX Rhino 6.rvb (5.4 KB)


Hi Pascal,
We’ve been learning Grasshopper extensively at university this semester, But I’m completely new to non visual scripting.
What might be a good way to learn how to script and use the rvb file that’s been created? What are these aliases you’ve listed? How can one apply them to the standard isolate command in a normal workflow… eg., with a custom key mapping?