This came about as a request from a colleague of mine from our Washington DC office. It turns out that they do a lot of printing (duh), and their View Sets are always out of date. No surprises there, after all, who wants to run around and keep these updated. The interface in Revit for creating these is atrocious.
Anyways, here’s a few solutions using Dynamo. There are obviously multiple ways to approach this problem, and I am only showing three (3). Take them as a clue, to what can be done, and go ahead and create some more. I will be more than happy to share them here for wider audience.
1. Create a View Set from a Drawing List.
This is pretty useful. I mean, after all the time you have spent running around your model, and making sure that all of the “right” sheets are displayed in the Drawing List, it would only make sense to be able to print all sheets in a given schedule. Here’s how:
- First we need to find the Drawing List that we are interested in. Drawing Lists in Revit are nothing more but Schedules so that’s why we are collecting all of the Schedules and then filtering them out for the one that matches the name that we are interested in.
- Once we have the one that we are interested in we do something that not a whole lot of people actually know. We “select all elements visible in a schedule”. What?! Yes, this is one of those things in Revit that are not obvious, but a Schedule in Revit is a View, and each row in a schedule represents an element. The funny thing is that Revit thinks of these elements as if they were in a view, just like if it was a floor plan. That’s why we can use a Archi-lab.net node here (Select.ByCategoryView) to select all Sheets visible in the Schedule. Pretty neat, huh? Anyways, that should give us all of the Sheets in a schedule.
- Next we need to exclude sheets that are placeholders. It’s likely that you can have some placeholders in there filling gaps for consultants sheets. Whatever it is, let’s exclude them since they are not “physical” sheets and would not be printed.
- Finally, we take these sheets, and pass them to another archi-lab.net node (ViewSets.ByViewsName). That will create a new view set for us that contains all of the sheets we passed it. This node will also make the view set the currently selected one so that you can go to printing things faster.
2. Create a View Set from Sheets that have a certain Parameter value.
This is probably more useful when you want to print sheets being issued for an Addendum. The way that we normally mark these is by some sort of custom parameter added to the sheet itself. That’s usually used to show sheets in a schedule. It could also allow us to create a view set for something like a list of “my” sheets. So on a typical project you might have a few sheets that you are responsible for, these would be marked under “Drawn By” with your initials. When there is time to plot them for the Project Architect (PA) to review, you can get to them really quickly this way.
- First we get all Sheets in the model, and filter out all Placeholders. See above for reasons.
- Then we can simply get a parameter value from each Sheet, and compare it to something that we are interested in. In this case we are looking at “Drawn By” Parameter and matching value. That will narrow down the list of sheets for us even more.
- Finally we can pass the resulting list of sheets to an archi-lab.net node (ViewSets.ByViewsName). Done!
3. Create a View Set by Revision.
This particular method, can be useful when it is time to publish all changes to the contractor. You probably lost track of all the sheets that have changes on them for the given revision. This can let you get them all in one simple swoop.
- Similarly to the above solutions we first get all sheets, and then filter them down to exclude placeholders.
- Now we can get all sheets that have a Revision that we are interested in using one of the archi-lab.net nodes (Sheets.Revisions). The trick here is that Sheets.Revisions node will return a list of Revisions that are on the Sheet, so we need to check if selected revision is in that list. To do that we are using a little reverse logic with AllFalse node, and List.FilterByBoolMask.
- Then the final step which is the same as all of the above examples.
That’s it! Now you have a few different ways to create View Sets automatically. That should make it much easier for you quickly get your prints out.
Ps. Please note that the above definitions are for Dynamo 1.3 and Archi-lab.net package version 2018.0.11.
Ps. Download files: ViewSetCreationExamples (5126 downloads)