ʳʰʸᵗʰᵐ|Viewport.Create Placing Multiple Viewports to Multiple Points

Hi, I created a list of 4 viewports and a list of 4 points, and then I have one single sheet the views would be placed on.

Using ʳʰʸᵗʰᵐ|Viewport.Create, I want to place the 4 views at the the 4 points I have, one view for each point. Can ʳʰʸᵗʰᵐ|Viewport.Create do this? Because i’m having trouble getting it to work.

Play with the list levels inputs on the node and see where you get. It’s hard to tell without knowing your exact setup.

1 Like

In conjunction with what @Hamish states about levels, you will need to make sure your view list and your point list match as far as list length. Since you are dealing with only one sheet, you can probably flatten the view list and the point list to get them to the same level and length and then use levels or lacing on the viewport create node to accomplish what you are after.

Sorry i thought I attached my image. I actually have multiple sheets as well (but the logic would be the same)…

@staylor and you are are right about using list levels, but I’m still struggling with the final output.

My three lists/inputs:
The “LIST OF VIEWS” is a list of groups of 4 views put together (North South East West).
The “LIST OF SHEETS” are just my existing available A800 series sheets.
The “POINTS ON SHEETS” is a list of 4 points on a sheet

So basically, it should take 1 group of views (4 views), then place each view on the 4 points on the sheet. Then move to the next page and points and places the next group of views.

image

In my opinion, it’s always best to get all of the lists on a one to one basis. You can only do so much with levels and lacing and if you can’t find the right combination, then you have to adjust your list. I have a similar script and this is how I have it set to run. I have forced all of my list at @L3 and the sheet input level is set to @L2 with lacing set to auto. Try doing the same with your list and see if that works.

image


image

Hi, thanks for the reply. It works for the first 4 elevations (which i managed to get before), but it doesn’t continue to place on the remaining sheets. In other words, the first four elevations of the group 1 are placed on the four points of sheet 1, but the remain groups are not placed on the following sheets.

Our lists are very similar! I’m curious if it has to do with my list of points? I’ll keep digging.

cycle your points list 3 times to get it to match the view list and see what that gives you.

Cycle 1 = no change
Cycle 2 or more = the views restarting from point 1 (instead of continuing to next page)

  • so close.

Try chopping the sheet list into lengths of 1 and remove the level from the viewport create node. Once you have all of your list in the exact same format and that doesn’t yield the correct results, then from that point it’s about levels and lacing.

Chopping did not help. This setup still seems to be the best thought so far. It doesnt want to move on to the next page. SO CLOSE. :confused:

I played around so much with the levels. From my research online, it definitely is possible with this Rhythm Node.

Here is how its working so far:

image

Lacing Trials:

Cross Product - No change

Longest -

Shortest:
image

Okay now I am a little confused as your input lists have changed. Originally you had (1) list of (3) sheets, (3) sub-lists of (4) views each and (1) list of (4) points. Now you have (5) sub-lists of (4) views each.

Your sheet list and point list should show as below when using the chop and the cycle.

Ultimately, the number of sub-lists of views and points, needs to match the number of sheets. And the number of points per each sub-list needs to match the number of views per each sub-list. Clear as mud :slight_smile:

My bad, I worked on the points list to include more points per sheet. The reason why there are 5 subLists of views is because the script uses a selection of rooms for elevations (I need to add 5 rooms to see if the extra four views spill on to the next sheet). The node behaves the same way though (still bad lol) :sweat_smile:

Anyways, here are the results from you recommendations (thanks btw!)

Okay. If I am thinking about it correctly, based on your lists above, if you remove the level from viewport create, the output should be the first (12) views will get placed (4) per each sheet. The last (8) views will be ignored because you only have (3) sub-lists of sheets. If you set the lacing to longest, then the first two sheets should get (4) views each and the last sheet should get the last (12) views. And because your points repeat, there will be (3) views placed on top of each other at the (4) points on the last sheet.

Maybe… :crazy_face:

EDIT
I still don’t understand how you have (48) points listed, when you are cycling a list of (4) points (3) times.

Yeah, which wouldn’t help me… I need the extra views to populate the next sheet.

And there are 48 views because you said to cycle it 3 times (16 points on a sheet x3 = 38). The number of sheets I have shouldnt matter though. So I removed the cycle and the result is still the same… everything is staying on one sheet. :frowning:

Its making me crazy eh lol

At the time, you only had (3) sub-lists of views. So that’s why I stated that you needed to cycle the one list of (4) points, (3) times, so it would create (3) sub-lists of (4) points each for a total of (12) points (12 views and 12 points). However, if the number of the view sub-lists changes randomly, then you will have to set up the cycle to account for that. Maybe use List.Count with lacing longest to count the number of view sub-lists and use that result for the number to cycle the points by.

Actually, the number of sheets does matter. The viewport create node doesn’t create sheets on the fly. If you don’t have enough sheets to cover the number of view sub-lists, it will either ignore the remaining views or dump them all onto the last sheet.

I will have to defer back to my statement from above:

Maybe this will help from my original example. The first group of (4) views were placed at their corresponding point on the first sheet, the second group of (3) views were placed at their corresponding point on second sheet, and so on. If this is not your endgame, then I apologize for misleading.

image

Okay, that makes sense. I’ll need to play around more.
And no need for apologies, I didn’t make my intentions clear enough from the start I don’t think.

I’ll keep at her! Appreciate the help, once I get it figured out I’ll return! Your explanation here looks promising.

1 Like

And to add, what you’re doing sounds EXACTLY like what I’m doing but using up to 16 elevations on a page (16 points).

We solved it!! Thanks @staylor

Your little sketch had me thinking, I wasn’t really grouping (chopping) my lists correctly.

Next step is playing with spacing of the elevations and controlling the amount of views on the page depending on sheet selection. thanks again.

1 Like

You’re welcome! Glad you got it!