Complete system of "Tag" and "TagGroup"

I am thinking about some system or simpler/efficient way of organising things in rhino. we have layers that serves the purpose well. but i find some limitations that the Tag system can eliminate. the tag system is just like using hashtags in the current digital or social world (the inspiration comes from telegram which handles large amount of unorganised data with the help of hashtags).

  1. Any object can be the member of only one layer or sublayer. which serves the 90-95% usecase. but lets say we want to select all furnitures of the projects that are either on Ground, first or any floor then we have to expand each floor layer and select the sub-layer furniture. now if the user add any additional floor and copy furniture from previous floor that removes all the previous information of the object but with tag system it is preserved.

  2. Once the layers cross 30 or 40, it becomes the hassle of scrolling and expanding of layers even to select layer objects. but with the help of tags we can select/deselect in any manner. It completely replace the selection panel which 90% of the people not used to.

  3. Rhino is currently working on things called rhino.inside so there can be an automated system of assigning tags to objects created from other softwares like revit, etabs or any other. it will be very helpful to automatically assign tags to imported Autocad data which otherwise is very painful to manage.

  4. Layers are not flexible when you work with teams specially when they have different background and maybe using another software.

  5. when the data becomes big, it becomes hard to manage. however, we can create and assign layers but that need dedicated time and even after we have 100+ layers and sub-layers that we sometimes struggle to give name. also after doing that work we have to scroll and expand the sub-layers each time to select objects.

  6. The data organized by Tags can be helpful not only for the person working on but to anyone he shares his file. we can also search for specific models online using tags. like lets say we assign tag to our object as Furniture, wooden then we can replace it with available models with similar tags even we can just create cube and assign tag and replace it with available online library of rhino models. after importing and tweaking it to our liking we can submit our model back to library so other users can find variety to the same model.

once we assign the tags we can used them to create TagGroups

TagGroups can be used to select objects and if there is not any technical issue we can use standard layer function like on/off, lock and others. we can have commands like ‘TagGrouptoLayers’ to quickly make layers.
maybe rhino can auto-assign tags like while importing models from autocad or other software.

This seems streamline and contemporary workflow which even can replace layer system. i think all BIM software have something similar function managed internally by software but Rhino can make it available directly to the user so he can use whatever way he like to use it. i see it’s use mainly for organising and hiding unnecessary objects. It can be combined with layouts to have very specifically workflow inside layout.


Hello- please see Attribute User Text in object properties


SetUserText GetUserText SelKey SelValue SelKeyValue


Actually it is a very slow process and also not as flexible and easy to use.

I see that with this option of a key-value pair, a functionality can be achieved, as I would also like. Unfortunately a little “cumbersome”.

One more small note about the general organization in the drawings. I used to work in Vectorworks a few years ago. There I think there was a good system to group the models more clearly. In Vectorworks there are layers and then classes. So two different objects can be on the same layer but in a different class or vice versa. This has the advantage that I can select objects from multiple layers via the class, show, hide or whatever. Also I can give additional settings to the object (I hope it is understandable what I mean).

As Pascal just mentioned, this functionality can be achieved by setting a key/value pair. But when I create an object, it doesn’t have a default key/value pair and I can’t add additional settings in a simple way.

Have a nice day

this thing is very powerful and fulfil the need.

FYI @Kalpit_3d ,

Not sure if you noticed but in the “Content Information” component in R8 Grasshopper there is a “Tags” input/output and you can assign tags to referenced or baked objects and filter the results.

Just sharing in case you want an additional or more nuanced control over object information outside of layers and user text.


1 Like

This is for grashopper file about we also create object in rhino viewport and sometimes even import external data as well that can be assigned tags automatically based upon from which software or file type the data is imported.

Bumping this.

I think native tag support in Rhino is very important moving forward.

I can’t seem to find any API methods for tagging at this time but I’ll keep looking.

1 Like

Tag group can be better named as “Tag-Rule” for easy understanding.

Many of us would love a new easy vanilla rhino object org tool, but it MUST be tied to a super slick visibility control panel of some sort.

We already have many ways of tagging and selecting (named objects, sel by name, color, AUT, etc) but what do we do with that once everything is tagged???

@pascal Attribute User Text is extremely useful and powerful. It just lacks a way to hide and show objects, all it helps with is selecting. Without the clean visibility control method it’s still just tedious. Perhaps snapshots is the answer? mmmmmm… it works but it is NOT fluid. Having to create yet another custom list of on/off state entities is just… too much.

Putting eyeball button on the AUT palette would be AMAZING, giving us PER OBJECT visibility control at our finger tips OMG!!!

my use case:
I have a vehicle design. It has panels, windows, doors, doors with windows, doors with no windows, door assemblies, hardware, construction curves/surfaces/extrusions/subds, etc, etc, etc. It is a freaking tedious NIGHTMARE keeping all of this organized logically. Do I put ALL the windows on a main Windows parent layer? But then I can’t parent close the door assemblies that have windows…

So a tag system of some sort would let me just select everything labeled… but then what? I’ve selected and now have to just use our antiquated and binary hide/unhide tools? Ouch. No. The only vanilla rhino option with a built in on/off visibility control that is EASY and READILY usable by most team members is the Layers palette. So that is where I organize everything, and make tough choices about where assemblies are listed and shown.

So in my example I’m just using parent layers like ‘Windows-all’ for all windows not in doors, ‘Door assmb’ for all Door assemblies, etc., using the layers pallet to control object visibility like we have been for decades now.

Perhaps it is time to evolve towards using GH more regularly if for no other reason than entity org.
If anyone has something easy and slick they use I’m interested.

So, wait… for a given key/value , add a visibility (and lock?) column, is that what you mean - so all objects with this key value are hidden or shown accordingly?

I can’t see that by itself working, so I must be missing the real request. Making more coffee.


YES YES YES on an initial evaluation that is exactly what would work!!! OMG please implement!!!
And to be clear we are talking about visibility in the scene of course.
Holy shite if you could add that it would rock our worlds.

However, we might need visibility columns for both the Keys and the values. Then we could have all the Pings on, but pick and choose from the Pong 1,2,3 etc…

use case:
there would be a list of all keys already populated (we wouldn’t have to generate it by preselecting) and we could just hit the visible status button for each as needed. Everything keyed Ping could be turned on, but I don’t want Pong8 on so that value is off.

Just an idea. I might be missing something complex here but I think this is the basic interaction.

Hello- one fly in the ointment seems to me that objects can have multiple key/values and there will inevitable be (un resolvable, to my eye, at the moment anyway) conflicts.


In Rhino 8 grasshopper you can do that.

Any usertext value Pong of the key Ping gets visibility turned off in this definition. (9.3 KB)

1 Like

It may get conflicted with other visibility option so the visibility option should be ignored but other things like changing color, line width, especially material can be implemented and with color option we can make it fully transparent that will work for visibilty on/off. with such thing we can do different presentation in different layout or detail view.

Yes, I have been using similar methods via GH to leverage user text for such operations and it is very helpful but would be great to have more power in Rhino to that regard as well.

@pascal Similar to how it works currently where you can “Select All Matching Key”, “Select All Matching Value”, “Select All Matching Key/Value” you could have additional options/buttons to do similar functions that would read like “Hide All Matching Key/Value”, “Isolate All Matching Key”, “Group All Matching Key”, “Ungroup All Matching Key/Value”, etc.

Does that seem valid to you all in this chat?

Currently I do this kind of workflow via Grasshopper but natively in Rhino would be hugely helpful

Hi Michael - my question is, what happens if an object has a key/value pair for which visibility is off, and a second a key/value pair for which visibility is on? The only way I can see this working is if the visibility is an action (button) and not a state.


1 Like

i think even forget about action as well, we can utilize transparency/alpha slider to play with visibility. i just want to utilize tag rule for presentation work. especially in layout views to show different color and material as per the intent of visualization. thats why i suggested to first tag the desired object and later we can define color and material rules to include & exclude by object tags. i even say that key-value is more advanced than tags but tags feels more familiar as we use them in other works as well and also they served the purpose as well.

1 Like

sorry Kalpit this has been a long running desire of us longer time rhino users so we are slightly hijacking your post. :slight_smile: no disrespect intended.

1 Like

agreed, visibility action would work. Just an across the board control of visibility. We’d use this AUT panel to implement that action.

But I need to think about this some more when i’m not on the clock with a design job… will get back to this later folks!