Managing Large Projects

I’m just trying hard to find a way against spaghetti style, without spending hours in rearranging components for each definition.

I indeed believe that different colour can simplify reading more complex definitions. Jagged wires improve top-to-bottom arrangement of components. You might noticed the difference between last versions. I’m not saying that’s it. I’m just playing around

Unblocked it but message comes up
and component does not load

could send an empty 3dm file?

I know, it’s all good. I’m just glad there’s no surviving images on the web from the first few internal versions of GH. That stuff looked horrible.


@TomTom that’s funny… this is an old wish, from early days it was always possible to change GH canvas and people interested in it:

empty.3dm (65.6 KB)

Here it is

I actually injected the GH_Painter not the GH_Canvas class. Background colour change was done via grasshopper_gui.xml, nothing fancy

thank you. sorry, couldn’t find a problem.

+1 for how effective Telepathy is at enabling cleanup of very large definitions.

two ideas:

  1. maybe it would be a good idea to have groups or/and clusters being able to unfold as an editable canvas within the main canvas with a double-click. (and then collapse once you click outside of them)


  1. also: coming from a humble sketchup background, there was the idea of groups vs. components
  • components are groups of thinks that are interconnected (if you change one, you change all)
  • groups are groups of thinks that start their life identical but whatever change you make does not affect the rest.

(now, i know about “disentangle”, but two entities with different nature (one interconnected, one not) maybe would give more flexibility and clarity)


:upside_down_face: Aha i totally missed the joke :rofl:

Hi Gerry,

One thing I do is to connect the wire output to a parameter then move the parameter instead. That way if I let go of the mouse button, I don’t lose it and have to go back to the original component like I would a wire output itself.

I also use parameters extensively to manage wires, generally. I use them to straighten out long wire runs, or to give me a point from which to patch in and out closer to the part of the definition in which I’m using the data.

Good luck.

Yes, for sure. A group with multiple references to the same “input” are visually encapsulated better with a single wire to an input param shared in that group. Higher level abstractions, referenced frequently or remotely, can have their param input wires hidden. Still easy to follow when both ends of the “cable”.have identical names.

telepathy has solved my problems.
Great component, I suggest it to everybody


“components are groups of thinks that are interconnected (if you change one, you change all)”

Would be confusing because grasshopper commands are called components. The better term which most software uses is a block.

Ι just mentioned the other program’s terminology, but the essense is not in the names it is in the function.

Hi there and sorry if I crashed quite late to this party

If you have installed Rhino 6, then in the “Params” tab, under “Util”, you can use the “Relay” component, to connect it from the data output source, rename it, drag it across the board, and connect it to the destination input component.

In fact, using relays can be quiet handy to organise the cable spaghetti.

Can anyone please point to any documentation or examples of how to use Data Input and Data Output ? I’ve searched. If it exists, it’s extremely well hidden.

Any other options in 2020 R6 for splitting large models into separate pieces that communicate with each other?

Hi Joseph - I don’t have anywhere to point to and if I were to attach an example, the file path that I set in my example would throw an error on your machine.

In a simple test here, the following seems to work. Needless to say, you need Rhino 6 or later for this…

Connect anything that you want to transfer to the input on the Data Output component, RMB-click the component and set the Destination.

In a different GH file, RMB-click the Data Input component and set the Source to the same *.ghdata file.


Thanks, I tried that before posting here (of course!) and see this error from Data Output:

  1. Parameters without a name will not be included.


What’s the point of a feature that can’t be used or even documented?

In the Spring of 2018 I extensively evaluated the trial version of R6 and decided not to upgrade at that time, for various reasons… Yesterday I splurged and was immediately disappointed when the complex model I spent nearly a week writing in R5 failed horribly in several ways in R6. “Minor” things like different sequence of results from splits, lists that need to be reversed, curves needing to be flipped, etc. The incompatibilities between R5 and R6 are still shocking to me and have created major grief and headaches for anyone with an R5 code base!!

Two of the most important reasons I decided to move forward with R6 now are:

  1. smoother, faster animations from a much more powerful laptop and
  2. the ability to break up complex models into pieces.

So far, both are failing. :frowning: When moving sliders to rotate geometry in the model, the screen flickers very badly with parts disappearing and reappearing in a manner that is absurdly unacceptable !??! It is far smoother in R5 on my old laptop. Upgrading Nvidia GeForce “game” drivers seems to have made things worse. Trying their “studio” drivers next.

All in all, my experience with R6 now is much as it was almost two years ago - horrible.