Place multiple views on multiple sheets by coordinates

Can this put assembly views on sheets? struggling to get this working. trying to put 140 plan detail views on one sheet so i can look across them and adjust them.

1 Like

Hi @vanman,

I donā€™t see why it wouldnā€™t be able to do that. Could you post at least an image so we can have a look. Maybe there is something in the graph which will shed some light.

Cheers,
Dan

1 Like

Hi Daniel,

Thanks this would be so appreciated! I think i just havenā€™t fully understood how it works yet.

I get this error,
ā€œNumber of sheets does not match either the number of view lists of (or?) location listsā€
if i have 140 views to put on a sheet to look at. do i need 140 location points?

Me trying to get it to work with 2 views

1 Like

Ha, Yup, you need the same amount of points as views. So basically, earlier in this post I explained the structure of how the inputs must be set up (python nodes do not allow for the built-in lacing we use on all packaged nodes). Iā€™ll break this down again hereā€¦

So, we want to place multiple views on multiple sheets therefore we require a list of sheets (single list) and list of lists for the views (as it allows for multiple views per sheet), but these lists of list or views need locations, so, we need those locations (points) to have the same list structure as the viewsā€¦a list of lists. Here is an example of the list structureā€¦

List of sheets:
-[0]Sheet 1
-[1]Sheet 2

List of views
-[0]List of views on sheet 1
__[0]View 1
__[1]View 2
-[1]List of views on sheet 2
__[0]view 3
__[1]view 4
__[2]view 5

List of locations (points)
-[0]List of Locations on sheet 1
__[0]Location 1
__[1]Location 2
-[1]List of Location on sheet 2
__[0]Location 3
__[1]Location 4
__[2]Location 5

I hope this makes sense so far. Note how there are 2 sheets and also 2 sublists within a list of views and locations. This is how your data should look.

In the image you supplied, I would put a list.create node between the filter by bool node (views) and the views input to the python node. This will give you the list structure you need. :wink:

5 Likes

Dude you are so helpful and awesome! Iā€™m going to keep reading through and understanding what your saying. My brain will eventually click, Iā€™m almost there. thanks so much!!!

Holy i need to figure out some code (formula) bumps the location along the x point every time instead of inputting 140 locations

1 Like

No worries mate. As for creating 140 points, if they are in the same location then use the list.cycle node with the list.count of your sheet list.

If you are walking along an axis, then use the sequence node to generate 140 x values. Just plug in the starting value, how much you want to step, and how many times you want it to step.

Youā€™ll get there though, itā€™s a little tricky at first, but we were all there once (or twice :joy:)

Be sure to create a new thread though if it is not directly related to the node. Keeps this one clean. :slight_smile:

2 Likes

cool thanks man ill give that ago. im sitting here with a pen and paper trying to remember my high school algebra. Cool will do :slight_smile:

Thanks man works great. so awesome :slight_smile:

1 Like

Ha! No algebra required thankfully. :wink:

1 Like

Hi @Daniel_Woodcock1,

Thanks for sharing this script. It seems really helpful. However I know Iā€™m doing something wrong because I can get it to work. This might be a really silly question (Iā€™m a newbie in Dynamo), but for someone like me who doesnā€™t has Python, what would be the last node where I should plug my lists of Sheets, views and points into in order to get the views place in the desired location? The Tool.PlaceViewsOnSheets doesnā€™t seem to work.
Here Iā€™ll share a screenshot of my current script:

Many thanks in advance

1 Like

Hi @Daniel_Woodcock1
Love the dynamo scripts your doing for placing items on multiple sheets. I am just learning Dynamo so I have only been able to do the early graphs and have not yet mastered the visual display you produced on your latest graph. I was wondering however is it possible to set up the location of legends, views, keynotes etc on one sheet in revit (so they can be positioned accurately), use dynamo to extract the coordinates of each from this sheet, and feed this back into a series of selected sheets?

Cheers

Pete

1 Like

Hi @PeteGreenwood,

Yes, this is perfectly possible. You can get the viewport centre by using View.ViewPortBoxCentre from the steam package and then feed these, as well as the views and sheets you want to copy to.

Cheers,
Dan

2 Likes

@Daniel_Woodcock1

Hi Daniel,

Maybe Iā€™m using your script in an incorrect way but I tried to test it with a single view on a sheet

There were no errors but it didnt work in Revit with my test view and test sheet. But it could be that Iā€™m using it wrong

1 Like

Hello @Daniel_Woodcock1
I havenā€™t managed to get a proper preview of the elements. I become them in my model and not in the sheets where they will be place. Evenmore the ā€œsheetā€ rectangle is out of scale so there is not relation between preview and result. I had expected to see them in the sheet, where they would be at the end. Does anyone know why it is so? Is there a way to make the preview in the sheets?
Thanks!

@DavidV I find the script is a bit ā€œpickyā€ :stuck_out_tongue: . You need to past the ā€œViewsā€ throw a List.Create in order to give them the proper list hierarchy.

1 Like

Hi Dan,

I modify your script and try to place one legend on 6 sheets on the same coordinates points. I do this because I donā€™t understand this: ā€œsheets needs to be a single list of sheets (no nesting) and the inputs for views and locations must be a list of listsā€.
I always get the message ā€œThe number of sheets don`t matchā€¦ā€ or null. I donā€™t know what Iā€™m doing wrong.

Any help much appreciated thanks

1 Like

If I remember well each View and Location needs to in a list, except the sheets. So Chop list by 1 on your locations and views will do the tric

Did it Work?

You almost have it. Your 2nd graf is almost correct. If I havenā€™t miss anything, you should just remove both Flatten after Create Points and Get Views.

Hi,
No, I have not tried your suggestions, but I found another way to filter the sheets which I want to place the legends and It work. I wil try again these next days, I want to have the possibility of inserting several views to several sheets at the same time . Thank you!!!

Just donĀ“t forget that, in general, you can not place the same view in several sheets. You can do that just with Legends. Let us know if you need something. I managed once to make it with legends.

Daniel, thank you for your wonderfull file.

I want to tell you that I think I found an important bug.
If you feed the ā€œplace view on sheetsā€ (python node) with a list of schedules that is generated via a Element Type-ViewSchedule selector (with all the nodes necessary to achive the requested python input), you will find out that the python node will put the program in freeze state(you have to kill the app). In your example you feed the view input via a code block text array where you manually designate the schedules view names. But we dont`t need manually to write the list.

I can tell you that the ā€œscheduleā€ view types generete the problem. The same process, if it is limited to normal view types, works, but as soon as you mix with a schedule view or only you generate a schedule views selection, you will see this problem.
So the key words to find the bug is ā€œscheduleā€ and ā€œinput list generated via smart filteringā€ not manual input with a code block.

I came to this conclusion after 2 days of fighting with the fileā€¦and this is the conslusion about the elements that generate the bug.

Can you help me to remove this bug?
Thank you!