So, I thought I understood how the new Content Cache component works and was very glad it allowed to modify Rhino objects via Grasshopper. But then I tried it on Annotations such as Text Entities and Leaders and Dimensions. It seems it does not modify those objects but rather creates a cached objects under Grasshopper-layer.
As an example:
create a Leader in Rhino with the text “Something”
reference that Leader as a Model Object or more specifically as a Leader in Grasshopper
modify the Text into something like “Else”
plug the modified Leader into Content Cache and press Push
→ I would expect the original Rhino leader to change its Text, but instead I just get the cached component under the Grasshopper-layer. This means, that in order to create parametric dimensions which I could then print with the rest of my drawings, I need to hide the actual Rhino objects (Leaders, Texts, Dimensions) and enable only the cached content. So the Rhino object stays there with the “incorrect old information” and is linked to the cached object by its GUID?
I read the recent updated guide on the Content Cache by Scott and thought that I understood the concept and how to incorporate that into my workflows, but it seems I didn’t fully grasp it. I’m running SR8, not any SRC version.
Is there a reason it works like this and not the same way as with geometrical objects? @AndyPayne@scottd
Although the Leader object is a “Model Leader” as I understand it is not actually a “Model Object” meaning it doesn’t know what layer it is on and the more nuanced details that the “Model Object” keeps track of.
Therefore, we need to “get” the leader and then “set” the text and pass this updated leader INTO a Model Object Geometry input and the original leader goes into the Model Object component O input so that it can know it’s layer info and everything else about the object.
Slightly confusing but, in summary, when in doubt, try the G input out.
It’s really powerful being able to dynamically update specific values!
Of course you can “inject” an update at anytime in your logic stream so you could even do stuff like “set the leader text to this for now” have a timer or data dam and then “set the leader text to this now after a certain amount of time has passed”
That’s a poor example but basically what I mean is you can “get” and/or “set” any property at any time and do this multiple times to the same object or even duplicate/fork an object to a new copy and then modify that and get two dynamically “linked” copies of something.
Definitely worth investing time into. Once you realize the potential of it all it’s hard to go back to the other components only haha
I am building a logic for part marks for a bunch of Breps in the model. So I draw a Leader and then in Grasshopper I find the closest Brep to that arrow tip and place some information from the object on the Leader line. Of course it can be automated in a way like: “Create a Leader for each selected objects” or something along those lines.
But now I got it working in a way that also serves the purpose of generating different Annotations for different parts of the model, so I can also enable/disable some Annotations for different drawings.