Here is something I didn’t think would be an issue in Grasshopper. If I have grouped geometry - in my case it is text objects, where I grouped all the 2 digit numbers. Now I want to use them in Grasshopper, but I never realised that the Group parameter doesn’t let you set groups like you can with all other parameters.
I see you have many Plugins installed, if you have Human you can retrieve the Group Value of any item with Object Properties component (there might -hopefully- be a GH_Rhino_8 component that shows the same info, but I’m not aware of it)
Thanks, that is a good hint to use the Human plugin and get the group indices! I will try that and see if I can use it to group stuff together in Grasshopper.
Its funny how you sometimes come across a seemingly typical use-case in Rhino/GH and it turns out to be surprisingly difficult.
In this case I simply wanted to create numbers 1 - 20 in a 4x5 grid to subtract from an object for 3D printing.
First surprise was that there is no 3D text object in Rhino that is still editable. You can create them, but it creates geometry out of them with no way to edit.
So, okay, let me do it in Grasshopper: GH also natively doesn’t have a good text object. It has one, but that doesn’t have alignment, meaning I cant have the numbers right-aligned. I think I used Nautilus’ component then.
Next thing I just want to lay the numbers out in a grid. Okay, in Rhino I would use “Array”. Alas, there is Array in Grasshopper, but for some dumb reason it only accepts a Rectangle as spacing, meaning you can only have the array go towards the top and right and not right and down as I needed it.
I got it now, but all in all it took about 5 times as long as anticipated for something super simple. I think it would have been quicker to just add the numbers in the Slicer.
You mean groups in Rhino? I use Grouping in Grasshopper a lot to treat multiple geometries as one, which makes it sometimes a lot easier than building elaborate data trees to match the lists of objects.
That is probably why we cannot set groups from Rhino as groups in Grasshopper - they are fundamentally very different. While we can group individual objects together and then transform those groups individually in Grasshopper, if they are just selections in Rhino that is why we cannot group objects and then transform each group individually. The selections will all just combine in Rhino and it will have no concept of a group.
Blocks are great, but have their own complexities. I wouldn’t have thought I need to block individual text objects together just to be able to scale them together.
We were discussing this a bit internally yesterday, due to this post , where groups aren’t handling model objects.
There are few topics.
The actual issue being solved by the group in GH (or wrap / unwrap in human) is a data tree management one. Being able to collapse the items to duplicate or manage attributes downstream.
The group as a Rhino Object has a lot of requests (double click to edit etc), mostly coming from sketchup users. Improving block creation/edit would resolve a lot of these.
Personally i don’t see much reason for groups in Rhino.
Interesting. Yes, I think using Blocks instead of Groups in Rhino is fine. Groups only make sense if you can nest them and for that we would need an Object Manager, because there is no way to “see” the hierarchy of groups until then.
I guess that is why the Block Manager needed to come before any Object Manager. Precisely because blocks are the only way to hierarchically combine objects and we need to be able to see that hierarchy.
ps: still think its very unfortunate we are not getting an Object Manager till at least Rhino 10
Theres plenty of reasons to use groups and not blocks in rhino.
Groups are epheremeral. You only rely on them for creating selection sets. You can therefore be as messy as you want with them and nest as much as you want.
Ctrl+G and Ctrl+Shift+G is much faster for creating these selection sets than making a block, assigning a block name and exploding said block (and purging when no longer required) is.
A block lies on a Layer whereas a group has no Layer. This can make it awkward to Show/Hide and Lock/Unlock layers and kinda forces you to have a seperate layer which is only for the block.
You cannot use Select Via Layer commands of Select Via Geometry commands if stuff is in a block.
-all these coming from an architect’s rhino workflow
Depending on how you’ve created them, you could add a User Text attribute with the number itself. Then the 1 and 8 for 18 both share “18” and Group Content will retrieve the corresponding numbers for you.
In that context, sometimes it would be preferable if I could assign attributes to a data branch rather than the individual objects. This would reduce data management complexities by a lot. If a branch would contain the metadata that is equal for each object in the branch, it would seem to me that computation times could be reduced too. Perhaps that’s something where a Group Wrapper could come in handy.
Similarly, it could be beneficial to group data without having to tie it to geometry, similar to Pancake’s Assoc’s functionality (Associative Array). I would use that to retrieve one Key/Value (e.g. a name) based on which I assign all the other corresponding Key/Value pairs.
I also don’t see why we couldn’t set groups in Grasshopper, even if they were just selections. Why can it not just set the selected objects into the parameter? Bonus would be if nested groups were set as data trees with the same nesting. It would be really cool.
In the end though, we always circle back round to the fact that if you want to make groups more powerful, you need some way to visualize them. Ergo: we need some way to see Objects with their hierarchies, because the viewport cannot show any hierarchy or nesting.