Quantcast
Channel: All Revit API Forum posts
Viewing all articles
Browse latest Browse all 66665

Re: Delete PrintSetup and ViewSheetSettings

$
0
0

No worries, i finally managed to create a CleanUp-method that works. If others are interested, here it goes 

 

        private void CleanUp(Document doc)
        {
            var pMgr = doc.PrintManager;
            using (var trans = new Transaction(doc))
            {
                trans.Start("CleanUp");
                CleanUpTemporaryViewSheets(doc, pMgr);
                CleanUpTemporaryPrintSettings(doc, pMgr);
                trans.Commit();
            }
        }

        private void CleanUpTemporaryPrintSettings(Document doc, PrintManager pMgr)
        {
            var printSetup = pMgr.PrintSetup;
            foreach (var printSettingsToDelete in (from element in new FilteredElementCollector(doc).OfClass(typeof(PrintSetting)).ToElements()
                                                   where element.Name.Contains(_tmpName) && element.IsValidObject
                                                   select element as PrintSetting).ToList().Distinct(new EqualElementId()))
            {
                printSetup.CurrentPrintSetting = pMgr.PrintSetup.InSession;
                printSetup.CurrentPrintSetting = printSettingsToDelete as PrintSetting;
                pMgr.PrintSetup.Delete();
            }
        }

        private void CleanUpTemporaryViewSheets(Document doc, PrintManager pMgr)
        {
            var viewSheetSettings = pMgr.ViewSheetSetting;
            foreach (var viewSheetSetToDelete in (from element in new FilteredElementCollector(doc).OfClass(typeof(ViewSheetSet)).ToElements()
                                                  where element.Name.Contains(_tmpName) && element.IsValidObject
                                                  select element as ViewSheetSet).ToList().Distinct(new EqualElementId()))
            {
                viewSheetSettings.CurrentViewSheetSet = pMgr.ViewSheetSetting.InSession;
                viewSheetSettings.CurrentViewSheetSet = viewSheetSetToDelete as ViewSheetSet;
                pMgr.ViewSheetSetting.Delete();
            }
        }

Viewing all articles
Browse latest Browse all 66665

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>