Rename and Number elements by Level

Good day fellow Dynamo Users

We currently have a project with a tight deadline, and require a Dynamo script to speed up the process, if this idea is possible thru Dynamo.

The target is to rename and number all the elements for 4 different categories, numbering them from 1 onwards with a 3 digit padding (0001, 0002, …)

The elements need to be numbered, however, from left to right and from bottom to top (by level)

I am sure nodes such as Select.ByCategoryAndLevel will be used for the selection part, and we will be setting the name using Element.SetParameterByName but I am not sure exactly how to pull off the LeftToRight and BottomToTop selection as well setting the incrementing numbers to these.

Should be possible, at least in theory…

Have you attempted to get the Location Points of the Elements and then order them by that?

Thank you, will look into that aspect of Revit. I’m actually the post-prod artist here, assisting the Revit teams who are loaded with projects. Still learning and familiarizing myself with both Revit and Dynamo as I go.

This threat and script in theory, should be the solution

It worked for the OP there but results in an error when I tried


That thread was closed so I am not able to ask about it.

A FamilyInstance Node will not work on a Revit System Family element. There should be something like element.getlocation or something similarly named.

Also if you need to number Walls (and other non-point placed elements) think hard about how you are going to define the order of longer/shorter/overlapping elements. Finding the Start or End or Mid etc?