Architecture - Layer Management Workflow?


I was wondering how to set up my layers to be able to switch between different floors of a building, where each floor contains different slabs, columns, beams etc. assigned to that floor.
I wish to be able to hide all columns at once, but also to hide certain floor at once. Is there a way how to do that? My layer management is … let’s say that it’s not ideal.

My idea is to have a feature that allows user to assign one object to multiple layers (with certain hierarchy) that are not sub-layers of each other. So there will be parent layers called “slab”, “column”, “beam” and child layers “floor 1”, “floor 2” and vice versa. User will create all columns in “column” layer and will assigne certain columns to the layer “floor 2”.

I was only able to create either one layer for each floor with elements as sub-layers or create elements with floors as sub-layers. Any ideas, please? :slightly_smiling_face:

1 Like

if you rethink your idea and use the LayerStateManager it might bring you there.

Hmm… I already tried that in a different project but found it useless for this particular usage.
Maybe I miss something important, but I still need to create a unique layer for each type of element in different floor, right?

It seems like object user text can be helpful here for cross indexing.


1 Like

Or, if the objects on the different floors are identical, you could make blocks and then insert the instances on the different floor layers.

1 Like

Thanks for suggestions. As far as I understand, these are still workarounds. If user attributes are only object-related, user has to set it for each new element created.
For example, I also can create custom material “column” and assign is to each new column element created in each floor. It gets “selectable”, but it’s still more complicated rather than convenient.

I guess this would be difficult to implement. The meaning of the image below is "I am creating whatever geometry in parent layer “01_STRUCTURE::02_column” and child layer “02_FLOORS::02”. In other words, geometry master layer is “column” that is created into layer floor “02”. There probably will be some pitfalls, but I think that this might be useful feature.


Does it have to be Layers.
If you name the object, it doesn’t matter what layer it’s on.
You can then call up 'Select By Object Name '_SelName and you have a list of objects.
Which you can select and hide, lock etc…

Thanks for suggestion. I just can’t imagine doing that for each single object I create. Layer linking solves this automatically. I can imagine to have “attribute manager” that allows me to select a custom attribute before creating a geometry. But that is already very similar to what layer does…

Since I can see you are on Rhino 7 - how about using the new Named Selections?!
You keep the traditional AEC layer structure and have your floors as Selection Sets.
I do this sometimes when working on “high-rise” buildings.

That’s for sure interesting and I will try it. Maybe it’s still a bit complicated, for example, to be able to select “all columns of floor no. 20”. Convenient user’s workflow would be to somehow select "I want to select intersection of “columns” layer and “floor no. 20” layer… I keep trying :slight_smile:

You are asking for BIM features in Rhino :slight_smile:
I’m using VisualARQ so when I’m on a floor, I can just select the column layer contents and it’s just selects the active level columns.

I don’t see a convenient layer management without a custom workflow.
If you are not able to rethink your workflow, I’d invest some time into making a tool in Grasshopper for a more in-depth layer management.

@PetrVacek I have exactly the same issue with Layer Management of a project.
I really like the idea of Blender with Collections in which an item can belong to only one Layer (Collection as they call it) but can also be linked in other Collections too.
I would really like to see this feature coming also into Rhino.
Right now the only possible way is using blocks which is far away from being considered a usable solution.

1 Like



I don’t think this really answers Petr’s question but some may find it useful - it works on layers, sub-layers and sub-sub layers etc.

Underneath Rhino there’s a beating AutoCAD heart … use the -la command (hyphen l a) - this hyphen forces the command to stay at the command prompt (no dialogue). nb you can mix prompt typing and clicking hyperlinks.

Say you had the following layers:


-la (enter) off (enter) col* (enter)(enter) will switch off all layers starting with col

-la (enter) off (enter) *2 (enter)(enter) will switch off all layers ending with 2

to switch your layers back on:

-la (enter) on (enter) * (enter).

It’s really quick if you have a lot of layers. Works the same with all the other options, changing colour etc.

Have fun. R


Is there a way for User Text to control the visibility and appearance of things?

Similarly, looking at architecture workflows, again.

I played around with this workflow a bit this morning. What worked best for me was separating the floors and layers and using the same color for each sublayer. This allowed me to use the Layers Panel and SelColor to achieve the two desired options. Here’s a test file with a very simple massing to demonstrate:

Floors and Layers Test.3dm (628.0 KB)

A few notes on efficiency for this workflow:

  • Shortcuts using -Layer in the command line allow you to manipulate layers using hotkeys and speed this process up tremendously
  • NextLayer and PrevLayer Scripts allow you to move back and forth between layers using hotkeys white editing:
    PrevNextLayer.rvb (2.8 KB)
  • I have a handy custom script which creates multiple duplicates of a layer tree, which allows you to duplicate as many “floors” as you want once you have the initial layer tree set up (2.0 KB)

Would be curious to hear others thoughts on what’s helpful/still needed here as I think this is a pretty important workflow for architects.