Upset by "Create Set"

The “Create set” component fails to provide a helpful output :

Here’s an example : you’ve got a bunch of blocks and you want to reference only one instance of each.
First I create a set of the block names, and then I want a set of the geometry of those instances.
Each time I need to do that, I have to torture my gray matter to remember the twisted chain of components allowing to do that :

Why not provide an extra output with a list of indexes that you can use to filter another list, and get a “parallel” set ?

I’m sure this would be far more useful in practical cases than the hair-pulling, maddening, convoluted “Map of original indices to set indices”.

1 Like

I feel your pain, but can’t think of a workflow that would handle all cases better. All and all working with sets has been good.

Sets are “unordered” collections of unique objects. So as soon as you throw a list of objects into a set, any kind of order you had before is gone. (sets in Python work the same way).

So you may need some sort of scripted component to deal with that uses something like a dictionary to keep track of object<>name relationships…

Hi Rickson,

That’s my point : I’m fine with an output that allows to deal with all cases, except it leaves you with heavylifting to do for MOST PRACTICAL CASES.
Thus my request for another output that will do what folks want directly : something like the “Sort synchronously” feature of the “Sort List” component.
It could be called “Synchronous set” for example.

It’s exactly the same with the automatic grafting that goes on in most components.
Yeah, sure, it avoids problems in “all cases” but it’s a pain in the ass for most practical cases, and I spend half of my time adding “Suirify” (god bless) components to keep my trees nice and clean.

This is the stuff that makes GH such a stiff climb, once you’ve passed the initial fooling around, and it’s a bit sad because it would deserve to be more widely used, including by people who don’t have time to lose with useless intricacies and cold math stickling.

1 Like

I use “Assign Paths” from tree frog for this frequently:


If you don’t mind using plug-ins, LunchBox has a “Sort Duplicate Values” component that’s very effective for this:


Wow, neet trick.
I have to remember this…

Hey, that’s MUCH smarter than the “Index map” of the “Create Set” component !
You still have the information of all the initial indexes of unique items, except they are each in a separate branch , which makes it DIRECTLY USEFUL.

That’s the way it ought to be !!!

1 Like

I don’t mind using plugins, but I secretly hope GH grows a more mature set of native components, inspired by the great work of guys like you, Andrew, David Stasiuk,…

Namely :
-Smart tree management components
-Block referencing, management and baking

The example of blocks cries for pure GH tools as each plugin has it’s own data types, therefore components that are incompatible with either GH or other plugin’s components, etc…
It seems that none of the plugins dealing with blocks has a complete and practical set of components, meaning that one has to assemble them haphazardly to perform all the required tasks…



I would invest some time to study the problem and the components, before showing frustration on a public forum.

1 Like

Wow, you sure confused the heck out of me here.
Learn to make a sketch before posting to a public forum, man…


where did you get Assign Paths? ty

Thats TreeFrog, it ships with Human now.

got it, installed the wrong version. thank you.