Creating Multiple Sheets based on Views

I want to create a dynamo “script” that will read the floor plans and ceiling plans and create sheets accordingly. For example: I want views {EP1, EP2, EP3} on sheets {1, 2, 3}.

1 Like



Whats the error? Can you tell?

Also you might like to use this instead? Same outcome but better.

1 Like

I think you want Sheet.ByNameNumberTitleBlockAndView not Views. Your current node is looking for a single sheet with multiple views.

1 Like


The single-sheet creation does work. Is there a way to do it recursively? Such that dynamo will create sheets E1.10X based on how many floorplans there are?


I think you can use lists like you did originally. Since the node only expects one item per input it should run recursively assuming all lists have the same number of items per input.


If you look at my second picture, that was the resulting output. Notice the view is located on the first sheet but not the other two.

But that was with Views. That node is expecting multiple input views so it gets confused. The node for a single view expects only a single input so it processes lists as separate “runs”.

Your first graph will work if you replace the Views node with the View node.

1 Like

Got it!


Thanks, Nick. Now, is there a way to automate this?

1 Like

Write a script that names and numbers everything based on the input views. If you get stuck start a new post.

It feels like manually putting all that information in each time would take just as long, if not longer than the traditional way of doing things. If it took your building, created all the floor plans, resized them, then placed them all on sheets in the same place, all within the same script, then I could see the time saving - but as of now, all the manual input is just as slow

1 Like

It all depends on where your data is coming from and what inputs you have setup. If you have this information in Excel you can read it all from there. If you need power plan sheets for all levels you can have Dynamo get your power plan views and append names/numbering based on level or other parameters. You can even have user inputs to select views, titleblocks, levels, etc if you wanted. You just have to think about how you can create those values.

1 Like

I’ve automated most of it, but the name/numbering system is still manual. I plan to get that standardized and into an Excel sheet, then tinker with how that works in Revit. Below is the custom node:

And here is the actual workspace:

Unfortunately, I haven’t found a better way to filter and retrieve Titleblocks other than this:

I assume all your views/sheets have standardized naming and numbering conventions. Use that to your advantage. If a view is mechanical discipline name it so… if it’s electrical name it so… It will make things much easier and drastically reduce the number of manual inputs you need.

And try this for titleblocks :wink:

1 Like


  1. That helped a lot, thanks!

  2. The view names are “standardized”, but, we usually take the sheet numbering from the architect’s convention. I suppose, though, that that would still help a lot…

I’m sorry if not understanding, but is the rest of this post a workaround for the fact that the Sheet,ByNameNumberTitleBlockAndViews node does not accept arrays? If the node was coded correctly, wouldn’t this initial setup have worked without any issues?

I’m not sure I understand your question. There are two nodes, Sheet.ByNameNumberTitleBlockAndView (singular) and Sheet.ByNameNumberTitleBlockAndViews (multiple). Both nodes do accept arrays with the correct list structure.

This node does not work for me even though I have match list lengths for all of the inputs. I’m using Dynamo v1.3.1.

What error are you getting?

Doesn’t take arrays. Node is not functioning correctly for some reason, or something else I’m not seeing.

Warning: One or more of the input types are not matching. Couldn’t find a version of ByNameNumberTitleBlockAndView that takes arguments of type (__array,__array,__array,__array)