Esempio n. 1
0
        public void CloseAndDelete(List <PanelAKR> panelsToDelete)
        {
            string file = dbLib.Filename;

            try
            {
                dbLib.Dispose();
            }
            catch { }
            File.Delete(file);

            // Удаление блоков
            if (panelsToDelete != null && panelsToDelete.Count > 0)
            {
                // Сделать копию библиотеки
                PanelLibrarySaveService.BackUpLibPanelsFile();

                using (ProgressMeter progress = new ProgressMeter())
                {
                    progress.SetLimit(panelsToDelete.Count);
                    progress.Start($"Удаление {panelsToDelete.Count} панелей из библиотеки...");

                    using (var db = new Database(false, true))
                    {
                        db.ReadDwgFile(PanelLibrarySaveService.LibPanelsFilePath, FileShare.None, true, "");
                        db.CloseInput(true);

                        using (var t = db.TransactionManager.StartTransaction())
                        {
                            var bt = db.BlockTableId.GetObject(OpenMode.ForRead) as BlockTable;

                            foreach (var item in panelsToDelete)
                            {
                                if (bt.Has(item.BlName))
                                {
                                    var idPanelAkr = bt[item.BlName];
                                    var dbo        = idPanelAkr.GetObject(OpenMode.ForWrite);
                                    try
                                    {
                                        dbo.Erase();
                                        progress.MeterProgress();
                                    }
                                    catch { };
                                }
                            }
                            t.Commit();
                        }
                        db.SaveAs(PanelLibrarySaveService.LibPanelsFilePath, DwgVersion.Current);
                    }
                    Logger.Log.Error($"Удалены панели АКР из библиотеки - {panelsToDelete.Count}шт.: {string.Join(", ",panelsToDelete)}");
                    progress.Stop();
                }
            }
        }
Esempio n. 2
0
 public void AKR_SavePanelsToLibrary()
 {
     CommandStart.Start(doc =>
     {
         using (var lockDoc = doc.LockDocument())
         {
             PanelLibrarySaveService panelLib = new PanelLibrarySaveService();
             panelLib.SavePanelsToLibrary();
         }
     });
 }
Esempio n. 3
0
        public static void ShowPanelsByHeight()
        {
            Document doc = Application.DocumentManager.MdiActiveDocument;
            Database db  = doc.Database;
            List <PanelAkrFacade> panelsAkr;

            using (var t = db.TransactionManager.StartTransaction())
            {
                panelsAkr = PanelLibrarySaveService.GetPanelsAkrInDb(db);
                foreach (var item in panelsAkr)
                {
                    item.DefineGeom(item.IdBtrAkrPanel);
                }
                t.Commit();
            }

            ViewNavigator   model = new ViewNavigator(panelsAkr);
            WindowNavigator win   = new WindowNavigator(model);

            Application.ShowModelessWindow(win);
        }
Esempio n. 4
0
 public void AKR_SavePanelsToLibrary()
 {
     CommandStart.Start(doc =>
     {
         using (var lockDoc = doc.LockDocument())
         {
             PanelLibrarySaveService panelLib = new PanelLibrarySaveService();
             panelLib.SavePanelsToLibrary();
         }
     });
 }