Place Legends on Multiple Sheets with Template Legend

I was asked to share the script I put together for placing Revit Legends on multiple sheets at the same location.

Here is a screen shot:

Download the script below:
Legend.dyn (31.4 KB)

And if you are curious, you can also check this one out for doing the same thing with Schedules.


Schedule.dyn (26.1 KB)

I am open for suggestions to make it better if you are inclined.

Packages used include: archilab, Rhythm, and Data-Shapes


Hello Sean,

Thank you very much for this,

Not sure why but the graph get stuck when I need to select the template, not sure why?

Could you post an image of the graph?

Hello Sean,

Please see link to screencast with the process I follow,

The problem is that we need to access the master sheet/template to retrieve the position of the legend and be used in the other sheets, does it work in your end?

Many thanks again!!

That graph is set up primarily for Dynamo Player. However, if you just make sure that Dynamo isn’t maximized when you run it you can access the Legend in Revit. You will also want to make sure the Page of the Master Legend if currently visible to select it as well.

Hello Sean,

I got you know,

So the process is:

  1. Have the active view the sheet you want to retrieve the legend position from

  2. Legend to place, choose the legend in the drop down list

  3. Select sheets, tick the sheets you want to place the legend to

  4. Select the viewport title

  5. Click to select legend, jump into Revit and select from the active view the legend you need the insertion point


I was confused on the last step as it is not clear you need to select the viewport in Revit, and the dialog does not changed when you select it.

It works well,

Many thanks for sharing!!!

Thanks Sean very much, I love Data-Shape as I use it everyday. Dynamo Player hasn’t been fully developed to that far unfortunately.
However, sometimes I got stuck when using DataShape. As you know the UserInput of MultipleInputForm to be used as the List String and I can’t find and node or package to be able tell Revit to convert this String to elements. Any advise please ?

Thanks, I am glad it is working well for you. Would you share exactly what your trying to do?

Hi Sean,
Thanks for your reply, I’ve been trying to add a For Construction Stamp on the selected sheets using DataShape. My topic has been on post few weeks ago as seen below please:
Spring Node- Spring.NullGetParamater doesn't pick the element from DataShape list.
Would you mind helping me to solve this issue that very appreciated !!!

Hi Sean,

i’ve tried to use the script, but the legend is not positioned in the correct place. any idea’s how to fix this? the sheet i used as an example contains 2 title blocks. (sheet size and the stamp).

@yeelen, which version of Revit are you using? What happens when you copy and paste an element “in the same location” between the sheets? Do they go to the right spot, or are they too different? I have seen things like this where the TB gets moved around on the sheet and therefore the reference location doesn’t appear correct. Another way to check is to create two new sheets and try it between them to see if it is an oddity, or something that is happening each time.

@SeanP. i’m using Revit 2018 and Dynamo 2.0.3, but it don’t think it makes any difference anymore.
when i copy an element and paste it to the same place, it’s also outside the edge of the paper. how is it possible that the reference location of the sheet is different?

It is most likely because the Title Block has been manually moved at some point, and so not everything seems off. I would recommend removing the views, deleting the sheet, and then recreating it with the same views and see if that resolves it for you. You could also copy and paste a line or some other reference element and Move all the sheet contents to make them align.


1 Like

The initial run did not work, and after replacing all of the broken nodes and finally get it to work, the sheets no longer open and crash revit. I also figure this functionality is no longer that important when 2020 allows copy\paste of legends anyway :slight_smile:

Although you can copy and paste between one sheet at a time, this graph provides support for multiple sheets at a time and more importantly the ability to update the location if it needs to change. I may update the graph to the current version and share, but the overall functionality is still relevant.

If you can update the graph to work with the current version, that would be awesome. I believe it is still relevant.
Thank you in advance

Per request, I have updated this script to the current version of Data-Shapes (@Mostafa_El_Ayoubi) as well as streamlined it with python and removed depreciated nodes.

I have also included the ability for it to update the position of legends that already exist on sheets.

This will also change the View Type of all newly created Legends to that of the Legend Selected.

And the update for Schedules of course.

Legends to Sheets Update.dyn (38.1 KB)
Schedule to Sheets Update.dyn (38.7 KB)


You need to select the Legend or Schedule that is placed on a Sheet, not from the project browser.

Hello @SeanP
thank you for your reply.
When I tried to select legend no window open.
Please help me