UIDocument uidoc = this.ActiveUIDocument;
Document doc = uidoc.Document;
ICollection<ElementId> selView = uidoc.Selection.GetElementIds();
ICollection<ElementId> elemOnSelView = new List<ElementId>();
foreach (var el in selView)
{
ViewSheet sheet = doc.GetElement(el) as ViewSheet;
foreach(var t in SearchAndPlaceSchedule(doc, sheet))
{
elemOnSelView.Add(t);
}
}
ElementClassFilter fil1 = new ElementClassFilter(typeof(View));
ElementClassFilter fil2 = new ElementClassFilter(typeof(ScheduleSheetInstance));
LogicalOrFilter fil3 = new LogicalOrFilter(fil1, fil2);
IEnumerable<ElementId> elements = new FilteredElementCollector(doc).WherePasses(fil3).Select(s=>s.Id as ElementId);
var elemOnSelViewDistinct = elemOnSelView.Distinct();
HashSet<ElementId> hsId = new HashSet<ElementId>(elemOnSelViewDistinct.Select(s=>s));
var res = elements.Where(m=> !hsId.Contains(m));
using (Transaction tr = new Transaction(doc))
{
tr.Start("d");
foreach (var e1 in res)
{
try
{
doc.Delete(e1);
}
catch {}
}
tr.Commit();
}