Locate View on Sheet

Greetings,

The native “Sheet.ByNameNumberTitleBlockAndViews” functions great but I’m in need of implicit control of view locations on sheets to generate more presentable drawings.

Is there a know method or process for locating (specifically live section views) relative to the viewport size? I can get the bounding box of the view but I fear that is not entirely helpful if the view is not orthogonal.

 

In short I am naming the views to be sheeting according to a box location I want on the sheet but I don’t seem to have direct access to the viewport size nor do I see a native method for transforming/moving the views once placed.

Perhaps I am missing something?

Thanks in advance,

I am having the same problem. The Sheet.ByNameNumberTitleBlockAndViews node is cool, but we organize out sheets in an differnent way (starting lower right:up, then left) . I’d be ok even if I could just specify target X,Y coordinates. Any help out there?

Try sth like this:

viewports = UnwrapElement(IN[0])
for i in viewports:
centerPoint = i.GetBoxCenter().ToPoint()
outlineMin = centerPoint.MinimumPoint.ToPoint()
outlineMax = centerPoint.MaximumPoint.ToPoint(

Min - bottom left corner
Max - top right corner

Jeff,

There is a lot of elements in play here and to be able to control them all you will have to do some heavy lifting.

Here’s my thoughts:

  1. Sheets are located in “paper space”. By default when a Titleblock is added to the sheet it will be at 0,0 but that’s not guaranteed. That’s a moving target Number 1, you have to check if Titleblock is in 0,0 and adjust for it if its not.
  2. Each titleblock might have different borders around it. For example my 11X17 has all titleblock along the bottom while my typical E1 will have it on a side in a vertical direction (I am talking about drawing info like sheet number, name etc.). Knowing what’s the ACTUAL boundary that you can place views within is a constantly moving target #2.
  3. You can get through the first two issue with a little bit of family and parameter trickery but then you have the views themselves. Most views have an Outline property that you can use to get their size in paper space, then you can check if they fit on a sheet. Views are placed by center of that outline boundary. Except:
  4. …this is moving target #3 where schedules are placed by top/left corner and don’t have Outline property so you need another routine for placing schedules on sheets.

This list goes on and on. It gets pretty complicated once you start putting the whole thing together.

Good luck!

1 Like

There is a node viewport.setboxcenter. It will only take one viewport at a time (be aware)
I’m place the views on the sheet and then set the center…
Before placing I check the size of the viewport and the available room on the sheet. Then I set the scale and if scale is set, i place the views on sheet. If you want to scale in steps of 50 be aware that your views must be set at a costum scale to start with

set_project_elevation_on_sheet.dyn (119.8 KB)

this is my file…it’s made for my projects, but maybe you can get some ideas from it.

1 Like

I’m just digging into this same issue & found this thread.
I’ve gotten a few of the issues mentioned above settled out, but my latest roadblock is:
How do I identify and select the Titleblock on each Sheet and get its location?

In case anyone else finds this thread, I found another related thread here:
http://dynamobim.org/forums/topic/get-title-block-of-sheet/

Post has been along time ago but this one is useful . From “MyVit” package.