The script is great. I’ve been mocking around the code and the nodes to make it work with Revit 2016 and the latest package updates. And everything worked fine (thanks Konrad for such a great work on this)

I now want to modify the script a bit so that it will define the “entry apartment door” from the core/lobby as door 01 and then all internal doors will start to be numbered clockwise from this defined entry door position.

My thoughts:

Create a list of doors that open from the central core into the apartment .

Find the instances location of list 1 above

Calculate vector angle between these doors location with the room location

Make this angle become 0

Other doors angle will also need to be adjusted with the same formular in 4 so that it will start clockwise from the entry door.

With my limited understanding of Dynamo and Python, i would appreciate any helps with this. Thanks!

Hi Kulkul, the script that i used was exactly just that - downloaded and modified from archi-lab.the imaged attached previously was the result of that. However the door number “01” is always defined based on the smallest vector angle so I have no control over which door I want to start as number “01”. My question was how to define the door “01” location based on the room it is opened from (say central lobby).

Updates - I managed to extract the list of the apartment entry doors and calculated their vector angles. I now have 2 separate lists:

List 1- Vector angles of all doors in the projects

List 2- Vector angles of the entry doors only.

How do you sort list 1 into room locations and then match to list 2 values. And then do the calculation to adjust the vector angle in each room (list 1 value - list 2 value) Any thoughts?

or is there a way to rotate the y vector to the entry door location ??

If your interested, i have used the Case Room renumbering along a curve node and slightly modified to do this for doors/windows etc. You have the option to add in Prefix/suffix and a start number. In my case, i needed to renumber doors in a large building, going clockwise from entrance with Prefix “D” for doors and the level with a 3 digit unique number for the door. So “D.00.001 > D.oo.002 etc. etc.” All you do is draw a spline model line, and have it intersect each door/window/room in order you want to number them and input the prefix/suffix (if required)

I’ve not really cleaned it up but it should be easy to use if your interested i can post it tomorrow when back in the office?

Thanks Alister - sounds like a good solution. It would be really helpful to have a look and test it out. I need apply this to a large apartment tower with over 3000 doors so any workaround that worked would be extremely useful

I had to use it on a project with about 2100 doors and managed to renumber them all in a specific order in about 10mins. It just takes however long it takes to draw the spline line. Will post it in the morning.

Finally I made the above concept work. My work flows is pretty messy (properly there would be a cleaner way to do it) but the outcome is what I wanted to achieved.

For anyone who is interested:

Filter out all “Entry doors” from lobby and then calculate theirs vector angles

Sort all door Vector angles by room/apartment

List.MatchwithKeyValues - use results in step 1 to determine the entry doors within list 2.

Use list.combine to Make entry door vector angle zero (means this will be come the starting point) - all other doors’s vector angles will all also be adjusted by the entry door vector angles

Make all negative angles positive

6.Then this result will be feed into Konrad python script to sort door and rename door

I have tested this in a larger complicated project and so far so good.

You can try using Door.RenumberByRoom custom node from BVN Package to renumber doors by its rooms. You can install BVN Package from online package search in Dynamo.