Rhino WIP Feature: Isolate Objects to a Viewport

In the Rhino 9 WIP, we’ve added the IsolateToViewports command.

What is this Feature?

The IsolateToViewports command makes selected objects only appear in specific viewports, while they are hidden in others.

Why this Feature?

In previous versions of Rhino, you could hide objects in all viewports or none. Having per-viewport visibility gives you more control over your scene management:

  • For sketching: showing a Picture in one viewport, while visualizing the geometry in another. This avoids images cluttering the view as you trace your curves.
  • For design iterations: having design variations per viewport for comparison and decision making.
  • For scene management: visualizing different components of a project, each in a different viewport, can bring clarity to the different parts.
  • Something else? Let us know!

How It Works

The commands we’ve included are:

  1. IsolateToViewports
  2. UnisolateFromViewports

Try it:

  1. Download and open sketch.3dm (3.9 MB) in the Rhino 9 WIP.
  2. Run the IsolateToViewports command.
  3. Select the image in the Top and Front viewports and press Enter.
  4. Click in the Top and Front viewports to select it as the viewport to keep the object visibility in.
  5. Run the Curve command.
  6. Start tracing away!

Notes

These commands only work on model space geometry. When an object in layout space is preselected while running these commands, it will be deselected, and the user is asked to select an eligible object. Objects in model space that are visible in details are eligible objects.

When an object is isolated to a specific viewport, creating new details will not show the object. Creating new floating viewports will also not show the object.

When details are deleted or floating viewports are closed, and an object becomes invisible in all remaining viewports, using the AllFullyHiddenByIsolation option in UnisolateToViewport will show all objects that no longer have any viewport in which they could be seen.

The names of the commands are not set in stone. HideInViewport and ShowInViewport, perhaps?

Download the Rhino 9 WIP and Try It Out!

12 Likes

Useful function!

TheIsolateFromViewport function appears to hide objects from a viewport, but the name could be misleading. “Isolate” typically implies that only the selected object remains visible while all others are hidden (similar to the standard Isolate command). Calling it HideInViewport and ShowInViewport seems better indeed.

Even better would be if you could combine the functionality of the HideInDetail command with IsolateFromViewport → Call it HideInView? (both working in details and viewport) And combine the function of ShowInDetail command with UnisolateToViewport → Call it ShowInView? Does this makes sense? I’m afraid we get a lot of similar sounding command doing almost the same thing.

Tested it, found some bugs:

When using IsolateFromViewport the command bar saids Click in a viewport the objects should be visible in Seems not to be right.

UnisolateToViewport after IsolateToViewportAllFullyHiddenByIsolation sometimes doesn’t do anything, only works after a restart.

3 Likes

Dag Marcel -
Thanks for the feedback!

Yes, this has been fixed in the meanwhile. The commandline now reads:

Command: IsolateFromViewport
Click in a viewport the objects should not be visible in

AllFullyHiddenByIsolation only does something when geometry has become orphaned. That is, it no longer exists in any existing viewport in the file. Note that it’s possible that an object that is isolated to a viewport is not visible because the Hide or Isolate command has been used on that object. That object still exists in the viewport.
If there is something else going on, please post a file that we can take a closer look at.
-wim

This is one of the most interesting new possibilities in Rhino 9 WIP. I had noticed this command before, but this particular forum post had escaped my attention.

For me, the naming is a bit confusing, especially since, at the moment, it seems to exist completely alongside the normal Hide/Show/Isolate workflow. That may be more of an issue for me as a non-native speaker. Even if, technically speaking, it may be not a double negation, in my mind UnisolateFromViewports functions like one :slightly_smiling_face:.

To be clear, as of today we have:

  • IsolateToViewport (one viewport)
  • IsolateToViewports (multiple viewports at once)
  • UnisolateFromViewports (multiple viewports at once)

But we don’t have UnisolateFromViewport (only one, although in the latest Rhino WIP, the RMB button invokes non-existing UnisolateToViewport) for situations where an object was isolated to 2 out of 4 viewports and now should be isolated to 3 out of 4. Currently, we have to show it in all viewports first and then again choose the 3 out of 4 where it should be visible.

This immediately raises the question of why there is no command that specifies in which viewport an object should be invisible (selecting 1 out of 4 viewports instead of 3 out of 4). This could be named IsolateFromViewport (previous name, not to be mistaken with IsolateToViewport… eh, very confusing)

Are you planning a deeper integration with the standard Hide/Show commands, but for Model Views? For example, will Grasshopper components, instead of a simple visibility toggle for a Model Object, now accept a list of viewports in which the object is visible/hidden?

TL;DR
There is a lack of commands for Model Views that have long existed for Detail Views — HideInDetail, ShowSelectedInDetail.

I feel like a third system for controlling object display is emerging and I agree with what @Marcel_P wrote. I know this is a very basic Rhino feature and changes to it are a significant issue, but from a user perspective, HideInView, ShowInView, IsolateToView, and UnisolateFromView (all functions with options for single or many) seem much simpler.
As for separating this special Isolate system from the rest of the Hide/Visible functions, Rhino also has Hide A / Show A, Hide B / Show B, etc., which could provide this separation.

I wanted this feature but didn’t know how to explain it , thank you.

1 Like

It would be helpful to have an option with a Viewport List, with tick boxes so that you have select which viewports the item is displayed/hidden in. This would then allow you to also select the object in one view and make it visible in other views, not hving to unisolate all objects I a view

1 Like

Here is a very rough script that kind of does this. It isn’t meant for production, but I’ve been playing around with Claude and vibe coding and rhino and this seemed like a neat project to burn credits on.

It essentially allows you to select objects and and then control which viewports or details they are shown in. Note that isolate to viewport can be achieved by right clicking a check circle, but it doesn’t work on layouts details.

I wouldn’t pay too much mind to structure or convention as I have had to compact / optimise a few times and a few other Eto scripts I have been playing with mashed together.

Note that I can only confirm that the script runs on MacOS on Rhino WIP, 9.0.26006.14226. It does not compile in Rhino 8 and I don’t have a PC.

Viewport Manager_R9 WIP.cs (55.6 KB)