BUG: Geometry Pipeline - no update when adding objects to hidden layer

On Windows, Rhino Version 8 SR28

BEHAVIOUR:
The “Geometry Pipeline” and “Query Model Objects” components will not update when objects are baked to hidden layers, i.e. using a script component. Even when the “include hidden objects” option is enabled.
This is regardless if the invisible layer was created within the same scope / function call as the new object or is already in the document.

EXPECTED BEHAVIOUR:
Components should refresh when geometries are baked to hidden layers and refresh its outputs (when the “include hidden objects” option is enabled)

WORKAROUND:
Setting the hidden layer visible (via ui or code) will update the output of the “Geometry Pipeline” component.

This also works in code:


if (!layer.IsVisible) 
{
    layer.IsVisible = true; # will trigger pipeline update
    layer.IsVisible = false; # immediately hide again
}

Minimal .gh file is attached.

//EDIT

M-Objects / “Query Model Objects” works as expected and can be used as a drop in replacement for “Geometry Pipeline”

// EDIT2

same issue with the M-Objects / “Query Model Objects” component. Edited the post above to reflect that.

____

Maybe there is a flag that i can set somewhere (ObjectTable.hasChanges or similar)?

hidden layer update.gh (13.4 KB)

Geometry Pipeline has become a legacy component. Focus has moved on the components that do the same work, such as Content Cache, in the Rhino tab.

I don’t see the “Geometry Pipeline” component marked as legacy in the current version of Grasshopper.

Iirc the component behaviour changed within the last couple of updates. That exact workflow in the example file used to work fine. I know because many of my older scripts are now broken.

:person_shrugging: Marked or not, all I’m saying is that they’re not likely to fix it with Content Cache around and all the other stuff they have to do.

Where did you get the information that this is a legacy component?

Fine. “It’s not legacy”. Just look at the Rhino tab and all the querying possibilites there though.

Have you tried the new Rhino components yet?

I think the geometry pipeline is pretty much obsolete.

I don’t want to press this too much but It seems like I need to clarify:

The Rhino components work fine and can (maybe should) be used in new definitions. If this is McNeel’s position I’d like to get some kind of notification about that in the software.
I don’t see this anywhere so I assume the component is still supported and is supposed to be used.

The geometry pipeline components behaviour has changed within the last couple of updates.

This is bad because me and maybe others that delivered scripts to customers over the last years after rhino 8 release (might even be before rhino components were arount) that relied on that behaviour now have to either tell them to not update Rhino, rollback to an earlier version or negotiate over the necessary work to update the script files.

You could say this is on me because adding geometries to hidden layers via scripts or custom components is not a supported usecase. That would be fine with me.

Hope this is not received as a rant

No, that’s fine and totally legitmate, and it’s good you made the bug report, but McNeel is notoriously bad with their upkeep and I was suggesting moving on to the new components.

Just adding to the thread:

The “Query Model Objects” component has the same issue. I updated the original post to include that.

Well, that’s good. With any luck, the underlying problem, when resolved, will fix both Query Model Objects and Geometry Pipeline


Hidden Layers seem to be affecting more than just Query Model Objects and Geometry Pipeline:

It seems to work in Rhino 9

hidden layer update query model object.gh (18.7 KB)