Recently, I had someone make a request for adding an X to a column in a sheet index schedule for all the revisions that sheet had. Currently, they have to do it by hand and it is tedious.
To get this to work, I added a parameter for each revision called "Seq #" (with # being the revision sequence number). I looped through each revision on each sheet and looked up it's sequence number, then add an X to the parameter matching it.
Here is a video showing how it fills in the sheet index schedule:
public void SheetRevisions() { Document doc = this.ActiveUIDocument.Document; using (Transaction t = new Transaction(doc, "Revisions on Sheet")) { t.Start(); // loop through all the sheets in the model foreach (ViewSheet vs in new FilteredElementCollector(doc).OfClass(typeof(ViewSheet))) { // get a list of all the Revision Ids for this sheet IList<ElementId> revIds = vs.GetAllRevisionIds(); // if at least 1 Revision, continue if (revIds.Count > 0) { // loop through each of the Revision Ids foreach (ElementId eid in revIds) { // get the actual Revision element Element elem = doc.GetElement(eid); Revision rev = elem as Revision; // add an X to the parameter named "Seq #" vs.LookupParameter("Seq " + rev.SequenceNumber.ToString()).Set("X"); } } } t.Commit(); } }
There's more information available on the Revit Coaster blog.
No comments:
Post a Comment