예제 #1
0
 public void PIK_ModelObjectsCountInfo()
 {
     CommandStart.Start(doc =>
     {
         var db = doc.Database;
         var ed = doc.Editor;
         using (var t = db.TransactionManager.StartTransaction())
         {
             var allTypes = new Dictionary <string, int>();
             var ms       = db.CurrentSpaceId.GetObjectT <BlockTableRecord>(OpenMode.ForRead);
             foreach (var id in ms)
             {
                 if (allTypes.ContainsKey(id.ObjectClass.Name))
                 {
                     allTypes[id.ObjectClass.Name]++;
                 }
                 else
                 {
                     allTypes.Add(id.ObjectClass.Name, 1);
                 }
             }
             var sortedByCount = allTypes.OrderBy(i => i.Value);
             foreach (var item in sortedByCount)
             {
                 ed.WriteMessage($"\n{item.Key} - {item.Value}");
             }
             t.Commit();
         }
     });
 }
예제 #2
0
 public void PIK_BlocksUnitsless()
 {
     CommandStart.Start(doc =>
     {
         var db = doc.Database;
         using (var t = db.TransactionManager.StartTransaction())
         {
             var bt = (BlockTable)db.BlockTableId.GetObject(OpenMode.ForRead);
             foreach (var id in bt)
             {
                 var btr = (BlockTableRecord)id.GetObject(OpenMode.ForRead);
                 if (btr.IsLayout || btr.IsAnonymous || btr.IsDependent)
                 {
                     continue;
                 }
                 if (btr.Units != UnitsValue.Undefined)
                 {
                     btr       = (BlockTableRecord)id.GetObject(OpenMode.ForWrite);
                     btr.Units = UnitsValue.Undefined;
                 }
             }
             t.Commit();
         }
     });
 }
예제 #3
0
 public void PIK_SearchById()
 {
     CommandStart.Start(doc =>
     {
         var ed  = doc.Editor;
         var res = ed.GetString("\nВведи ObjectID, например:8796086050096");
         if (res.Status != PromptStatus.OK)
         {
             return;
         }
         var id = long.Parse(res.StringResult);
         var db = doc.Database;
         using (var t = db.TransactionManager.StartTransaction())
         {
             var ms    = (BlockTableRecord)SymbolUtilityServices.GetBlockModelSpaceId(db).GetObject(OpenMode.ForRead);
             var entId = ms.Cast <ObjectId>().FirstOrDefault(f => f.OldId == id);
             if (entId.IsNull)
             {
                 "Элемент не найден в Моделе.".WriteToCommandLine();
             }
             else
             {
                 entId.ShowEnt();
             }
             t.Commit();
         }
     });
 }
예제 #4
0
 public void PIK_Optimization()
 {
     CommandStart.Start(doc =>
     {
         new Optimization().Optimize(doc);
     });
 }
예제 #5
0
 public void PIK_UserSettings()
 {
     CommandStart.Start(doc =>
     {
         UserSettingsService.Show();
         UserInfo.ShowUserProfileRegister();
     });
 }
예제 #6
0
 public void About()
 {
     CommandStart.Start(doc =>
     {
         var ed = doc.Editor;
         ed.WriteMessage($"\nБиблиотека AcadLib версии {AcadLibVersion}");
     });
 }
예제 #7
0
 public void PIK_AutoLayersStop()
 {
     CommandStart.Start(doc =>
     {
         AutoLayersService.Stop();
         doc.Editor.WriteMessage($"\n{AutoLayersService.GetInfo()}");
     });
 }
예제 #8
0
 public void PIK_PlotToPdf()
 {
     CommandStart.Start(doc =>
     {
         using (doc.LockDocument())
             PlotDirToPdf.PromptAndPlot(doc);
     });
 }
예제 #9
0
 public void CleanZombieBlocks()
 {
     CommandStart.Start(doc =>
     {
         var db          = doc.Database;
         var countZombie = db.CleanZombieBlock();
         doc.Editor.WriteMessage($"\nУдалено {countZombie} зомби!☻");
     });
 }
예제 #10
0
 public void PIK_PurgeAuditRegen()
 {
     CommandStart.Start(doc =>
     {
         var ed = doc.Editor;
         ed.Command("_-purge", "_All", "*", "_No");
         ed.Command("_audit", "_Yes");
         ed.Command("_-scalelistedit", "_R", "_Y", "_E");
         ed.Regen();
     });
 }
예제 #11
0
 public void PIK_PurgeAuditRegen()
 {
     CommandStart.Start(doc =>
     {
         var ed = doc.Editor;
         ed.Command("_-purge", "_All", "*", "_No");
         ed.Command("_-purge", "_R", "*", "_No");
         ed.Command("_audit", "_Yes");
         ed.Command("_-scalelistedit", "_R", "_Y", "_E");
         DbDictionaryCleaner.Start();
         DbDictionaryCleaner.Clean(doc.Database);
         ed.Regen();
     });
 }
예제 #12
0
 public void PIK_RegAppsList()
 {
     CommandStart.Start(d =>
     {
         var dlg = new SaveFileDialog
         {
             Title        = "Сохранение файла со списком зарегистрированных приложенией",
             FileName     = $"regApps_{Path.GetFileNameWithoutExtension(AcadHelper.Doc.Name)}.txt",
             DefaultExt   = ".txt",
             AddExtension = true
         };
         if (dlg.ShowDialog() == DialogResult.OK)
         {
             File.WriteAllLines(dlg.FileName, d.Database.GetRegApps());
             Process.Start(dlg.FileName);
         }
     });
 }
예제 #13
0
 public void PIK_CleanRegApps()
 {
     CommandStart.Start(d => d.Database.CleanRegApps());
 }
예제 #14
0
 public void PIK_CheckUpdates()
 {
     CommandStart.Start(d => CheckUpdates.CheckUpdatesNotify(false));
 }
예제 #15
0
 public void PIK_PaletteProperties()
 {
     CommandStart.Start(d => UI.Palette.Start());
 }
예제 #16
0
 public void PIK_StyleManager()
 {
     CommandStart.Start(d => Styles.StyleManager.StyleManagerService.ManageStyles());
 }
예제 #17
0
 public void PIK_ListModules()
 {
     CommandStart.Start(doc => ListModules.List());
 }
예제 #18
0
 public void ColorBookNCS()
 {
     CommandStart.Start(doc => ColorBookHelper.GenerateNCS());
 }
예제 #19
0
 public void PIK_UpdateFieldsInObjects()
 {
     CommandStart.Start(doc => UpdateField.UpdateInSelected());
 }
예제 #20
0
 public void PIK_Ribbon()
 {
     CommandStart.Start(d => RibbonBuilder.CreateRibbon());
 }
예제 #21
0
 public void PIK_UserSettings()
 {
     CommandStart.Start(doc => { UserSettingsService.Show(); });
 }
예제 #22
0
 public void BlockListCommand()
 {
     CommandStart.Start(doc => doc.Database.List());
 }
예제 #23
0
 public void PIK_LayersSelectedObjects()
 {
     CommandStart.Start(LayersSelectedService.Show);
 }
예제 #24
0
 public void PIK_ClearObjectsExtData()
 {
     CommandStart.Start(ClearObjectsExtData.Clear);
 }
예제 #25
0
 public void XDataView()
 {
     CommandStart.Start(doc => XData.Viewer.XDataView.View());
 }
예제 #26
0
 public void PIK_BatchRemoveLayoutsTest()
 {
     CommandStart.Start(d => Test.BatchRemoveLayouts.Batch());
 }
예제 #27
0
 public void PIK_AutoLayersAll()
 {
     CommandStart.Start(doc => AutoLayersService.AutoLayersAll());
 }