This used to drive me crazy.
I’d be putting together some sheets in Revit. I’d create the first sheet, typically a floor plan, then I would add the views. Pretty standard stuff. These sheets usually include only a single plan view and maybe a legend or two. Once I had everything organized on the sheet, I’d move on to the next sheet. And the next sheet. The layout would be pretty similar from sheet to sheet.
I work on mostly large projects, so I’m creating lots of plan and reflected ceiling plan sheets in the model file. If you’re like me, you want all the plan and ceiling plan views to align from sheet to sheet. This is important because when you flip through PDFs of the sheets, you can see the building stack up, one level on top of the other.
The problem is that Revit doesn’t automatically align views between sheets. Yes, you can use guide grids but this requires you to open every sheet and manually adjust the views into position. Not a problem if you only need to do this on a few sheets but when you have over fifty plan sheets, not the mention the same number of RCP sheets, it’s a real time suck.
What would invariably happen to me is that I’d get the views ALMOST perfectly aligned. They’d look good on the screen, but when I flipped through the PDF, the views would jump around from sheet to sheet. It would be very slight, but I would notice it. So would everyone else who viewed the PDFs.
This would drive me crazy. I’d go back and nudge the views ever so slightly. Then I’d reprint the set and flip through the PDFs. And again and again until I got it right. I’m all about working smarter, but this is one area where my obsessiveness gets the better of me.
What was really frustrating was that I never had this problem in AutoCAD. I could easily copy layouts from sheet to sheet. It was really easy to get a whole set of drawings perfectly aligned. Yes I know, Revit isn’t AutoCAD and BIM isn’t CAD but this is one of the few areas where traditional CAD has a leg up on BIM.
At least until today. . .
Easily Align Views on Sheets
Wouldn’t it be great if you could align multiple views between sheets? You could just setup one sheet the way you want then select all the views on other sheets and align them all perfectly. Think about all the time and frustration you’d save yourself.
The “Align Views” macro takes away the guesswork and automatically aligns views between sheets. It’s like a dream come true for sheet obsessives like me.
The macro is very straightforward. Simply select the primary view then select all the views you want to align to this view.
You can also specify the alignment point. The options are: center, top left, top right, bottom left, and bottom right. If you’re aligning views of different sizes and want them all justified to the left or right, or top or bottom, you can specify the alignment point to get the justification you need.
The macro works by collecting all the viewports in the current model file. The viewport class is used to connect a view to a sheet. It has properties for both the view ID and the sheet ID, as shown in the screenshot from the Revit API help file below.
In order to move a view using the API, you must specify the view’s new center point. The macro calculates new center points based on the selected alignment point. It uses the view’s outline properties to determine the minimum and maximum points of the view. Adding or subtracting these points from the primary view’s outline points determines the new center point.
Fortunately, the Revit API provides easy methods for adding and subtracting points. As you can see in the code above, the macro determines the difference between the primary view’s and the selected view’s maximum or minimum point. This delta then gets added or subtracted to the selected view’s center point. The macro uses this new center point to move the view.
Download the Macro
You can download the macro from the ArchSmarter Revit Macro library. Don’t have access? Sign up for ArchSmarter updates in the form below and get immediate access to this and six other time-saving Revit macros!