Auto-rename Areas with Room names

As requested by @Kulkul, I’m starting a new post with this issue, hoping this will help someone else in the community.
What I’m trying to achieve is to automaticlly rename AREAS based on room names. I’m currently working in a huge project, and I need this information for some safety plans. Retyping all the data seems like a huge waste of time and also, a possible typing error could happen.
I’ve made some trials and errors but now I’m stuck.
Thanks for the help!

1 Like

Area Name to Room Name Rev.dyn (7.0 KB)
Try this file.

1 Like

There is a node in Rhythm called Element.AreaLocation, that should do the trick.


Hi all!
Thanks for replying. @Kulkul, your file is renaming my Rooms with the Area data. I need to do the opposite. I’ve tried to invert the output but I have absolutely no knowledge at all in Python.

@john_pierson I’ve tried it, looked pretty great and simple, but I get this warning:

Thank you all!

hmm. on the output of area location are any of the values null?

1 Like

My bad :confused: i misunderstood try this for the last time :grin: Room Name to Area Name.dyn (7.1 KB)

1 Like

@john_pierson exactly!

@Kulkul Thanks for your help man! It works like a charm. Now i’m trying to push it a little further trying to read my rooms from a linked file, but I can’t seem to make it work.
I’ve just added what’s inside the red mark; any ideas?

Again, thanks to you all!

Hi Gabo,
In order to select rooms from linked file you need to use below custom nodes from archi-lab package:

1 Like

even when toggled to true it’s null?

@Kulkul works GREAT man. It’s reading every room. I feel like we’re almost there, but there’s one more problem.
I don´t seem to understand how is the matching done between each room and each area.
When I run the script, it renames every single Area but not with the room name that it should, for example:
I have a ground floor Area wich is renamed after a 5th floor room.

If only I could make the rooms and areas match, the renaming would be done. Maybe limit the action field of the script by doing it level by level? I don’t know.

Thanks again

@john_pierson that’s right. Also, as a consequence of the “Elements Area Location” returning null values, the “Element.Name” gives me this weird

“Warning: Internal error, please report: Dereferencing a non-pointer. (3f47aacd)”

Thank you all

Is your Number of Rooms from linked file matching with number of Areas?

if you mean as Quantity, no, there isn’t the same ammout of Areas and Rooms. That’s why I was asking how is the matching done, because the sequence I think is needed would be something like "Check the area that’s in the same place that the room ----> get the “Name” value of Room ----> Insert it into Area’s “Name” parameter.

I think @john_pierson was trying to do something like that?

Yes, it seems you may have some “unplaced” rooms or something like that though.

Is it possible that the node Element.AreaLocation is removed from the Rhythm package? I used the search function and looked in all the submaps asswel. but i can’t find the node.

I may have retired the node as it was very hacky. Let me check.

this works following the element id sequence, so i created a new room on third floor, and now everything is a mess, it takes the new room to the end of the list and pushes each area name to the next one,
is there somehow a way to avoid/fix this?

Hi @arshamm you’ll want to get your room and area lists to be in matching order by locations, rather than order of creation (Element ID). Here is a solution using the Clockwork node “Room.IsPointInside” to check if an Area’s location point is within a room to reorder the list of rooms to correspond with the Areas :slight_smile:

Room Parameters to Area Parameters


I was experimenting with this a short while ago - unsuccessfully so far - and I had to go back quite a few versions in the Rhythm Packages to find the node. I can’t check this from my current location but I think I found it in a late 2016 version.

Hola, aca les comparto mi solucion a este problema, espero les sirva.