I’m a newbie to Dynamo and Revit. With the help of dynamo i was able to create 3D ortho views, schedules and sheets for my list of assemblies. I also figured how to place all my views onto the newly created sheets with respect to co-ordinates using Dynamo as shown in screenshot attached.
Now, i’m trying to Autoscale my 3D Views according to my sheets and have no idea where to begin! Is this even possible? I know how to manually enter a scale and resize my view but its tedious to do so for every other assembly. So i’m wondering if Dynamo could help me autoscale my views according to the sheets and place them!
Any help is greatly appreciated.
Definitely. You may have to spend some additional time to get the specific list of sheets (e.g. filter by a prefix if all assemblies share a common prefix or other attribute), but you can do something like this:
I am using a node from the Clockwork package to get the view’s scale, but otherwise everything is using OOTB nodes. The Legend is also considered a view in this case, so you may want to filter that out as well (I haven’t done that on my end). In the above example, I am changing the view’s scale from 1:100 to 1:50. If you do not plan on using the view’s current scale in defining the view’s new scale, you don’t have to use Clockwork either.
Thankyou for reaching out and your feedback but this is not what i’m looking for. I’ve already figured how to change scale of all my 3D views before placing them on the respective sheets. Attached below is the screenshot of my script i use to scale and place all my 3D views on the sheets with respect to coordinates.
However, some of the assembly views need to be scaled even more to make them fit on to my sheets such as the image below.
This may be a long shot, but i’m looking to automatically scale down or up all my assemblies to make them fit onto my sheets. I hope my question is now clear and sorry for the misunderstanding!
In that case, it is quite a bit more complicated. This is certainly possible through the API, but much more difficult (if even possible) directly through Dynamo nodes. A few steps would be:
- Get the title block on a given sheet
- Get the title block’s dimensions (Sheet Width and Sheet Height)
- Get the viewport outline of the 3D ortho view
- Get the min and max points of the outline
You can then use the dimensions of each of the elements (Title Block vs Viewport outline) to roughly gauge how much you have to scale the view to make it fit within the title block. This is of course an overly simplistic method of doing this as it doesn’t account for the size of other components of the title block and size/placement of other components (e.g. schedules) placed on the same sheet. To get the most accurate result, you would have to use a packing algorithm or otherwise find a way to identify where to move the viewport.
Sounds like a work of an professional. However, i get where you are going at and shall try to do it! Thankyou for your time! Appreciate it!