I’ve got a very large definition which is increasingly hard to navigate and would like to demarcate portions somehow, in word and color. Scribble
, even at it’s maximum setting, made into a group and encased in a blob, still appears as if viewed from space. Any ideas?
Use Add named view
Or use jump
Or try to split the large definition to many parts and use data input/output to connect the parts (just an idea)
Thanks for your reply. Because of ongoing changes, I really need to see everything in front of me, so Data Input/Output is out. Named View is useful, but its anchored to one spot on the canvas. If I move that chunk, the view doesn’t change accordingly.
Why do you need to see anything? Usually you need to tweak the parameters and you need to observe a components failure. Therefore you can group and store all parameters in one place and make as many constants as possible. If you need to monitor failure you could encapsulate blocks of logic into Clusters (or script components). I usually like to create a kind of bus system which collects all my parameters in one list, using a combo box (parameter name to index mapping) to take out a specific parameter from that bus.
You’re obviously a lot more organized than I am. My project is constantly “evolving” in ways I can’t foresee, so parameters come and go. I don’t think what I’m looking for is so outlandish, whether it exists or not.
This is not necessarily contradicting. It just means you need to exclusively add but never remove parameters from that section on that canvas. If you remove an parameter from that “bus” you mess up indices otherwise. So obsolete parameters should be made “hidden” instead.This bus system logic is actually something I learned from using Simulink which is another Node based editor like GH is. I can later provide an example if you like
I’m sure a lot of it has to do with the kind of project involved. To me, your approach seems like something I might do when I was finally at the point of cleaning up my def and not while I was trying to muddle my way through and not aware of many of the constraints…
Sure if “sketching”, I either don’t care much about any form of organization. But on the other hand, I would also not actively sketch on a huge definition, just parts of it. Any form of development is iterative. But if you spend more time in concentrating on where to find what, then its a sign to refactor what has been done. Not to perfection, but at least to keep an overview. Furthermore I tend not to do anything in one definition. Inbetween some states I often bake and reimport. Just because at some point I often like to tweak things manually. So I personally use multiple definitions as well. Of course it’s up to what you are doing and it may require tailormade scripts to reimport baked data in correct order. But there is no perfect solution
Just for information, this is what I mean with the Data Bus. Sure for smaller def is an overkill, but for bigger definitions it will be quite useful to pass parameters bundled throughout a larger definition:
@TomTom Just a suggestion — I think you can simplify that “Bus creator” using Entwine, no? No need for all those Path Mappers. You might also consider Telepathy if the goal is to name some stream of data globally and access it anywhere in your definition by name.
As for @akilli, I tend to agree that if your definition is getting that large, you need to rethink your organization. I totally hear you on wanting to be able to change things in an ongoing manner, and things evolving — but trust me, you’ll be happier if you adopt some form of breaking up the definition — into clusters, or into separate files. However, one other tool I can add to your organizational arsenal is Metahopper “Label Group” — if you name a group:
and Label Selected Groups with Scribbles:
you’ll get a scribble right in the corner of any groups you had selected, matching the name you assigned.
You can then use the other menu item from Metahopper, “Increase selected scribble size” (This is best attached to a keyboard shortcut so you can do it quickly and repeatedly), and make your scribble as large as you want (you can bypass the font size limit in grasshopper with this command)
I appreciate all the advice on my work habits - I think my folks heard the same thing during their parent/teacher conferences - but as almost everything I’m doing impinges on something else, it’s hard to find any islands of stability that are worth sequestering either in their own files or clusters. As for now, I’ll try the Metahopper route, which looks like what I’m after.
Could you attach the code for this, so I can play with it? Thanks.
Yep, you are right. Entwine is even better. I wasn’t aware of it. Yes Telepathy is a great tool which I was also thinking of. The only flaw is that its 3rd party code, which requires anyone to download it to work with that definition. I believe GH2 should ship with many of 3rd party workflow features in its core and other proposals regarding managing larger definitions. I would also propose to give more freedom in piping wires, maybe connecting them together just like a cablebinder. It think wires can get really confusing on large definitions, but I wouldn’t just hide them. Assigning colors and appearance would be a great feature or adding handles to place with higher degree of freedom, which is partially already in there.
Anyway @akilli: Here is the def, I updated it to Andrews suggestion.BusExample.gh (14.0 KB)
Thanks for the demo! This is certainly an efficient approach, but as I said earlier, I think it requires a fair degree of foresight into what your parameters will be - and even a very concrete visualization of the final product. Since what I primarily do might be described by some as “artistic”, plan as I might, there is a large element of exploration and unexpectedness lurking along the way, but I will keep this method in mind.