Surface isocurves disappeared

After doing a Boolean union, joining three small objects, the surface isocurves disappeared in all viewports. No matter if the viewport setting is wireframe, shaded or ghosted. Surface isocurves is checked in the inspector sidebar.

Is this normal?

maybe try _ShrinkTrimmedSurface ?

or post the .3dm… someone will figure it out.

I don’t think ShrinkTrimmedSurface does anything in this case, since that command deals with surfaces, not solids.

I will have to prepare the file so it shows all my steps, before I can post it, since “Browse All Versions” does not work with uploaded files.

No, it will shrink all the component surfaces of a solid (or any polysurface) as well. --Mitch

I think my question was misunderstood. I asked if the disappearance of the isocurves after a boolean union was normal. ShrinkTrimmedSurfaces does not seem to relate to that questions. I don’t need to shrink anything. I was just wondering why the isocureves disappeared.

When I look at the short help video in the Inspector Sidebar when clicking on the question mark and invoking this command, the video shows something that does not seem to have anything to do with the issue I asked about.

I don’t think it was misunderstood. There was a suggestion that the underlying surfaces might be so big that the parts you see might not show isocurves. But without the object, it’s difficult to diagnose. It might be a display anomaly, or somehow, despite the fact that you think the isocurves are supposed to be showing, that their density got set to 0 or -1 which means they somehow got turned off for that object. Post the object if you can…


it’s entirely possible to have a solid object which shows no isocurves…

open this then run ShrinkTrimmedSurface on the solid and you’ll see the resulting isocurves:

noisocurves.3dm (128.4 KB)

for an example of what happens when you trim a surface (via Trim, Boolean_ing, Split, etc)… do this:

Draw a plane:

draw a curve across the plane without crossing isocurves:

Trim the plane using the curve… notice no isocurves are showing on the trimmed surface:

use PointsOn on the surface… notice the points are still those of the original plane:

run ShrinkTrimmedSurface… isocurves are now visible:

turn PointsOn again… the surface has been shrunk to the confines of the trimmed surface… the data from the original surface is no longer being tracked by rhino.

this same thing happens on polysurfaces or closed polysurfaces (solids)

I downloaded the file noisecurves.3dm, and yes, when I do ShrinkTrimmedSurface and check Surface isocurves in the inspectors sidebar, the isocurves do show.

The second example of ShrinkTrimmedSurface seems more or less the same as the one in the help video for the command.

This is what my model looks like with points turned on after the boolean union that seems to make the isocurves disappear.

Next I will recreated the file including the steps I have taken to get to this point.

Here is the file in question with the steps of what I have done.

  1. Original model.
  2. Curve added. Box extruded from curve.
  3. Boolean split.
  4. All parts I don’t want have deleted. The two red parts need to be boolean unioned with the large part. Up to this point all isocurves are still visible.
  5. After boolean union isocurves are suddenly no longer there.

isocurves.3dm (1.5 MB)

Hi Abrasha --pick order matters - the first object decides on the object attributes and in this case the skinny thing has isocurves off, so it wins- if the objects were different colors, you’d see similar behavior.


That does not work for me.

When I pick the large black object first (Default layer color) and then the two red objects, and do a boolean union, the resulting model is red and has no isocurves showing.

I also do not understand “the skinny thing has isocurves off”. I thought isocurves on or off was determined by the settings for the viewport in the sidebar.

isocurves.mp4 (5.2 MB)

Ok… now we’re getting someplace -

  • With pre-selection, rhino decides on the order- as far as the user is concerned this is is pretty much random but is actually the last created or edited object first. So, if you start the command, then select, I think you’ll see what I mean.

  • Isourves are a display mode thing AND an object property- so the display mode shows isos, or not, if they are present, and the Properties determines whether or not they are present.

Does that make sense, sort of, now?


isocurves for that box are turned off… in the Objects inspector:

Now it worked! Thank you very much. You guys are great and so patient with me. So much to learn still.

Having said that, playing around with this I found some inconsistencies.

When I do as you say, invoke the command first, and then select the objects, it works just as you say.

However, working with the objects at dot 4, when I do Undo (Command-Z) after I have done the boolean union that now has the isocurves (because I wanted to play around with the different variations), and I select the objects FIRST, each time the boolean union results in a model with isocurves, which I did not expect based on what you told me.

What is even weirder, if after the Undo of the boolean union I now select the red objects first (they still have no isocurves showing) and do a boolean union again, the resulting object is black and with isocurves. I thought that was not supposed to happen.

In short, after I do a boolean union by invoking the command first, and then selecting the objects, the result is what I want. And the after an Undo, no matter what order I do a boolean union in, i.e. no matter the order of selecting the objects, the result is always the same. Black object with isovurves.

If you pre-select (I cannot tell) then all bets are off, but if you post select, then I believe the first selected object wins - if that is not the case, I guess we’ll dig deeper…


I was trying to upload a video of what is happening with these boolean unions and isocurves. First I am being told that the video has to be smaller than 20 MB. After I made it smaller I was told that it has to be smaller than 3072kb.

So I have uploaded the large video to my dropbox. It is 39 Mb large. You can download it from here:

I think the video explains very well what is going on, and I don’t understand why this is. Pay attention at 1:54

This is my take on the subject
(Rhino for Windows but the code base is the same)



Thank you for that video. That is NOT the same thing that happens in my video. In your first examples you show:


The opposite happens with me. No matter if I window pre-select or individual pre-select. The resulting union always has the attributes of the red object (the latest in the database), not the earliest as when you do it.

Individual post-select gives me the same results as you.

When I tried WINDOW POST-select I would have expected the resulting object to have the black attributes, but this is not the case. It is red. I assume this is so, because the window always FULLY encloses one of the red objects first, even though the window starts around the black object.

That’s the key, the only predictable outcome… --Mitch