Data β†’ Process πŸ¦— β†’ Data pipelines with Next-Gen Rhino 8 Connector

As I explain in this post on Data β†’ Process β†’ Data β†’ … β†’ Data β†’ Process β†’ Data Pipelines, the data flow in AEC projects can be mapped out into these pipelines.

From @RamonvanderHeijden I learned that I should use Rhino :rhinoceros: for Geometry + Data (Attribute User Text), files such as Excel or JSON :open_file_folder: for other types of structured data, and Grasshopper :cricket: or Python :snake: for the processes β‡’
:open_file_folder: | :rhinoceros: β†’ :cricket: | :snake: β†’ :open_file_folder: | :rhinoceros: β†’ :cricket: | :snake: β†’ :open_file_folder: | :rhinoceros: β†’ :cricket: | :snake: β†’ :open_file_folder: | :rhinoceros:

I really loved Speckle :blue_square: and wanted to use Speckle :blue_square: as the database, because of its awesome features (integration with many softwares, visualization, collaboration, no files, etc.) β‡’
:blue_square: β†’ :cricket: | :snake: β†’ :blue_square: β†’ :cricket: | :snake: β†’ :blue_square: β†’ :cricket: | :snake: β†’ :blue_square:

However, building Speckle objects that have Geometry + Attribute User Text + Colors in Grasshopper is VERY confusing, there really is no way to do it right it seems (see this notion site of mine).

Besides, Grasshopper for Rhino 8 now has these Rhino Data Types components in the new Rhino category. So, if we were able to build these Rhino objects with all the Geometry + Attribute User Text + Colors and then be able to create Speckle Objects directly from these objects, then Speckle in Grasshopper should become sensible. Unfortunately, there is no Speckle in Grasshopper support yet for these Rhino Data Type objects.

No worries though, I’ve finally found a pretty neat solution to go :blue_square: β†’ :cricket: β†’ :blue_square: using the Next-Gen connector for Rhino 8 and the Rhino Data Type Grasshopper components :raising_hands:

  1. Load geometry required for GH script from Speckle. The models that you load from Speckle will end up in the nested layer:
    Project β€œProject Name”: Model β€œmodel/name” > FileName.3dm > LayerName
    In case that geometry is updated, the Next-Gen Rhino connector will indicate this. See image below.
  2. Query the geometry that you loaded from Speckle in the GH script using the new Query Model component. I’d recommend querying by object Name, see image below.
  3. Operate on / process the queried Geometry + Attribute User Text
  4. Push the processed Geometry + Attribute User Text + Colors to Rhino using Cache Content component. The geometry you export from Grasshopper will end up in the layer you specify with the (Model Layer) β†’ Model Object component(s). See image below and also note in that image how attribute User Text and colors are attached to objects. Similarly materials and other render properties can also be defined using the new Rhino Data Type components.
  5. Publish data to Speckle from Rhino using the Next-Gen connector. An Update button will appear in the Next-Gen connector (see image above), whenever the Geometry + Attribute User Text + Colors you push to Rhino are updated.

:starstruck_spockle: TA-DA: :blue_square: β†’ :cricket: β†’ :blue_square: β†’ :cricket: β†’ :blue_square: β†’ :cricket: β†’ :blue_square:

Give it a try yourself!

Left: input models, right: output model:

Grasshopper script from the screenshots:
TransverseSections.gh (33.6 KB)

5 Likes

This is great @JoostGevaert !

Not sure if this is good/bad news, but here’s a super early preview of the Next-Gen Grasshopper connector that I’m working on:

It’s meant to highlight ease of working with object properties, including name / user strings (already in place) and colors and render materials (still wip)

You can pipe in model objects directly into our collection creator node, which will pull any user strings attached into the model you send! Or create an object from scratch with dynamic inputs for properties.

Here’s an example of a simple box with a single foo:bar user string, published:

Lmk what you think!

2 Likes

Hi Claire,

Actually I’m quite happy with the way of working described above :cool_spockle:. The only things that are still missing right now are receiving Attribute User Text back in Rhino and less importantly, line styles and annotations don’t work at the moment, so actually the way of working I described doesn’t quite work yet. But I thought it wasn’t necessary to mention that, because I know you’re working on it and will release it soon. Looking forward to this! :smiling_hearts_spockle:

The GH receiver node looks very nice! :partying_spockle:
When FE2, together with the new URL structure, got released I found it harded to understand what model was being loaded when looking at a GH script, but this new receiver component looks like it solves this issue.

Regarding working with objects, I’d say that it should be possible to construct and desconstruct Speckle Objects directly from these new Rhino Model Objects. Although I have a hunch for what some of the reasons will be, the question that comes to my mind is:
Why do you create a Create Speckle Property Group component, instead of making people create this type of data with the native components?
Like this:


RhinoObj-SpeckleObj-RhinoObj.gh (12.5 KB)
Now it doesn’t work yet ofc.

The Search… component looks interesting as well. Eager to learn more about that :starstruck_spockle: