public void SheetManager() { UIDocument uidoc = this.ActiveUIDocument; Document doc = uidoc.Document; ICollection selectedSheetsId = uidoc.Selection.GetElementIds(); ICollection selectedSheets = new List(); foreach (var eid in selectedSheetsId) { selectedSheets.Add(doc.GetElement(eid) as ViewSheet); } uidoc.ActiveView = uidoc.ActiveGraphicalView; XYZ origin = uidoc.Selection.PickPoint("Select insertion point"); double Yoffset = origin.Y; double width = 0.5; //feet TextNoteOptions options = new TextNoteOptions(); options.HorizontalAlignment = HorizontalTextAlignment.Left; options.TypeId = doc.GetDefaultElementTypeId(ElementTypeGroup.TextNoteType); ICollection allLegends = new FilteredElementCollector(doc).OfClass(typeof(View)).ToList(); List> result = new List>(); var sortedList = selectedSheets.OrderBy(pd => pd.SheetNumber); string headers = "Sheet Numbers; LegendIds; Legend Positions; LegendNames"; string sheetNumbers = ""; string legendIds = ""; string legendName = ""; string legendPosition = ""; foreach (ViewSheet vs in sortedList) { ICollection viewports = vs.GetAllViewports(); foreach (var vpid in viewports) { Viewport vport = doc.GetElement(vpid) as Viewport; View view = doc.GetElement(vport.ViewId) as View; if (view.ViewType == ViewType.Legend){ result.Add (new Tuple(vs.SheetNumber.ToString(), vpid.ToString())); sheetNumbers += vs.SheetNumber.ToString() +"; \n"; legendIds += vpid.ToString() +";\n"; legendName += view.Name+";\n"; legendPosition += vport.GetBoxCenter()+";\n"; } } } using (Transaction t = new Transaction(doc, "Place text")) { t.Start(); XYZ headersPos = new XYZ(origin.X, Yoffset+0.02, 0); XYZ col1 = new XYZ(origin.X, Yoffset, 0); XYZ col2 = new XYZ(origin.X+0.05, Yoffset, 0); XYZ col3 = new XYZ(origin.X+0.10, Yoffset, 0); XYZ col4 = new XYZ(origin.X+0.35, Yoffset, 0); TextNote noteHeader = TextNote.Create(doc, doc.ActiveView.Id, headersPos, width, headers, options); TextNote note1 = TextNote.Create(doc, doc.ActiveView.Id, col1, 0.05, sheetNumbers, options); TextNote note2 = TextNote.Create(doc, doc.ActiveView.Id, col2, 0.05, legendIds, options); TextNote note3 = TextNote.Create(doc, doc.ActiveView.Id, col3, width, legendPosition, options); TextNote note4 = TextNote.Create(doc, doc.ActiveView.Id, col4, width, legendName, options); t.Commit(); } }