Model Object component update problem

I’m slightly overworked and about to freak out due to Grasshopper Rhino component not updating.

Steps to reproduce the problem:

  1. Open the Grasshopper file and click ‘update’ to bake some geometry.

The two panels should show the same full layer names.

  1. Change a layer name of a child layer and maybe a color.

The python script has the correct output and the Model Object component doesn’t update

The Model Object component only seems to update when the geometry within a layer changes. It only updates the list item where geometry has changed.

I’m not sure if this is how it is supposed to happen?

A python script outputs the correct layer name, even updates somewhat in real-time.

The Grasshopper file includes data which can be baked into layers for testing.

layer_problem.gh (45.6 KB)

System Info

Rhino 8 SR1 2023-11-7 (Rhino 8, 8.1.23311.13281, Git hash:master @ 0f88bb345f3e6574a4453f1846edc6d9c718fbce)
License type: Kommerziell, build 2023-11-07
License details: Cloud Zoo

Windows 11 (10.0.22631 SR0.0) or greater (Physical RAM: 1.3e+02Gb)
.NET 7.0.13

Computer platform: DESKTOP

Standard graphics configuration.
Primary display and OpenGL: NVIDIA RTX A5000 (NVidia) Memory: 22GB, Driver date: 10-18-2023 (M-D-Y). OpenGL Ver: 4.6.0 NVIDIA 537.70
> Accelerated graphics device with 4 adapter port(s)
- Secondary monitor attached to adapter port 0
- Windows Main Display attached to adapter port 1

Secondary graphics devices.
NVIDIA Quadro K2200 (NVidia) Memory: 4GB, Driver date: 10-18-2023 (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
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: 10-18-2023
Driver Version: 31.0.15.3770
Maximum Texture size: 32768 x 32768
Z-Buffer depth: 24 bits
Maximum Viewport size: 32768 x 32768
Total Video Memory: 23028 MB

Rhino plugins that do not ship with Rhino
C:\Users\martinsiegrist\AppData\Roaming\McNeel\Rhinoceros\packages\7.0\EleFront\4.2.2\ElefrontProperties.rhp “ElefrontProperties” 1.0.0.0
C:\Users\martinsiegrist\AppData\Roaming\McNeel\Rhinoceros\8.0\Plug-ins\KeyShot9RhinoPlugin (ecfe8d1f-876a-460f-aa5e-3dd816936811)\1.4.0.0\KeyShot9RhinoPlugin\Rhino 7\KeyShot9RhinoPlugin.rhp “KeyShot9RhinoPlugin” 1.4.0.0

Rhino plugins that ship with Rhino
C:\Program Files\Rhino 8\Plug-ins\Commands.rhp “Commands” 8.1.23311.13281
C:\Program Files\Rhino 8\Plug-ins\WebBrowser.rhp “WebBrowser”
C:\Program Files\Rhino 8\Plug-ins\rdk.rhp “Renderer Development Kit”
C:\Program Files\Rhino 8\Plug-ins\RhinoScript.rhp “RhinoScript”
C:\Program Files\Rhino 8\Plug-ins\IdleProcessor.rhp “IdleProcessor”
C:\Program Files\Rhino 8\Plug-ins\RhinoRenderCycles.rhp “Rhino Render” 8.1.23311.13281
C:\Program Files\Rhino 8\Plug-ins\rdk_etoui.rhp “RDK_EtoUI” 8.1.23311.13281
C:\Program Files\Rhino 8\Plug-ins\NamedSnapshots.rhp “Snapshots”
C:\Program Files\Rhino 8\Plug-ins\MeshCommands.rhp “MeshCommands” 8.1.23311.13281
C:\Program Files\Rhino 8\Plug-ins\IronPython\RhinoDLR_Python.rhp “IronPython” 8.1.23311.13281
C:\Program Files\Rhino 8\Plug-ins\RhinoCycles.rhp “RhinoCycles” 8.1.23311.13281
C:\Program Files\Rhino 8\Plug-ins\Grasshopper\GrasshopperPlugin.rhp “Grasshopper” 8.1.23311.13281
C:\Program Files\Rhino 8\Plug-ins\SectionTools.rhp “SectionTools”
C:\Program Files\Rhino 8\Plug-ins\RhinoCode\RhinoCodePlugin.rhp “RhinoCodePlugin” 8.1.23311.13281
C:\Program Files\Rhino 8\Plug-ins\Toolbars\Toolbars.rhp “Toolbars” 8.1.23311.13281
C:\Program Files\Rhino 8\Plug-ins\3dxrhino.rhp “3Dconnexion 3D Mouse”
C:\Program Files\Rhino 8\Plug-ins\Displacement.rhp “Displacement”

Hi @martinsiegrist,

This is fixed on 8.1 now.

Now all the content that came from a Query component expires when any change occurs on any of the ‘Objects’ or on any of the content is referenced from these objects.
If you disable Synchronise then the Query component will output a frozen copy of the objects that never expire until the component itself expires or the Query button is pressed.

Here I changed the ‘Layer 03’ color to magenta from the UI.
The synchronised content reflects the changes while the frozen one does not.

1 Like

Thanks Kike, looking forward to try this myself.

Hi Kike,

I see that the “Bake” component has now turned into an egg box and is now called “Content Cache”.
If it wasn’t for this post, I’d still be scratching my head, but anyways…

It also took me a while to understand the versatility of this component and how you could expand it to actually have an input to trigger it (was about to rant about this when I found out accidentally…).

The only reference I found was on the “Grasshopper docs” website and this is what we learn :

…basically nothing.
Such a complex component like this one and many others in the new “Rhino” tab should have proper documentation, don’t you think ?

I know Andy made a video a while ago, but it’s over an hour long and probably outdated by now…

I believe we are working on a dedicated guide to this component because it is somewhat complex and also very powerful.

1 Like

I can’t wait !
In the mean time, I hope you can add filtering by block instance name.

By the way, this whole “cache” thing is driving me nuts.
I bake geometry with the egg crate, and then when I try to bake new geometry, the previously baked one disappears.
I tried the “Null”, “True” and “False” inputs for the cache pattern (whatever that is supposed to do ; again, no online help, nothing), and it’s all hair pulling and nail biting…
Just bake stuff and stop trying to be smart damn egg crate !!!

I’m pretty sure there is no such thing as an instance name.

Unless I’m completely off, there’s a block name and an object name.

A block instance is a block definition with a translation.

Hi Martin,

You are right in principle.
But filtering instances by the name of their definition is definitely a thing.

1 Like

That’s already possible.

No. These are definitions.
Say you reference a bunch of geometry, and you want to filter the block instances from definition “P1002”.
Then you can’t use the new fancy-panzy filtering system because no one at McNeel thought it could be useful, or “No one at McNeel ever managed a large block-based model”, which is saying more or less the same thing.

OK, I get it Martin, you can always add an extra step, create a mask, etc, etc…
But get this : some workflows are based on models containing only block instances.
So basically, at first level (and in my case also second level because I have 100% nested blocks) in my model, I have a type of object (instances) that cannot be directly filtered by the brand new bling-bling amazing filtering thing.

Now suppose you want to filter your block instances by definition name AND a bunch of other criteriae like key/value, or layer, or whatever. You can’t easily and directly benefit from the flashy new logical filters.

Doesn’t that look to you as a huge miss ?
“OOPS, we forgot about the blocks instances”

Makes me boil inside…

A block instance is an instance of the definition.

Sorry Martin, I don’t know where you are going here.
Either you are making fun of me or you just don’t understand what I’m saying.

I’m not making fun of you. I don’t see how a block instance can exist without being tied to a definition. That’s all I’m trying to say.

:sunny:

You are stating a very obvious thing, but I fail to see how this is relevant to my request .

This topic is solved for quite some time already. Please continue in your original topic…

Instead of just ranting I think it might also help to post an example with your block situation so the developers can take a look. At least in your linked topic I have not found any file posted by you….

Well I don’t think so.
One can still not filter Instances by their definition name using “Contains” because it only understand Rhino names, and this is really dumb, sorry.

Well you’re the one who got me rolling

There’s no need for that. My screen captures were quite clear, and Andy did create a Youtrack issue about this, so I guess at least HE understands.

Just to chime in here. I believe we do understand the problem that @osuire has brought up. We do have a YT for this topic but we just have not had time to be able to prioritize this yet.

Thank you Andy :pray:

1 Like