ADN Open CIS
Сообщество программистов Autodesk в СНГ

20/11/2013

Удаление неиспользуемых имен приложений из базы

Метод Database.Purge API можно использовать для идентификации неиспользуемых имён приложений. Когда имена неиспользованных приложений получены, так сразу можно использовать метод “erase” для удаления их из базы.

Код - C#: [Выделить]
  1. [CommandMethod("PurgeApplicationName")]
  2. public static void PurgeApplicationName()
  3. {
  4.     Document doc = Application.DocumentManager.MdiActiveDocument;
  5.     Database db = doc.Database;
  6.     Editor ed = doc.Editor;
  7.  
  8.     using (Transaction Tx =
  9.            db.TransactionManager.StartTransaction())
  10.     {
  11.         RegAppTable table = Tx.GetObject(db.RegAppTableId,
  12.             OpenMode.ForRead) as RegAppTable;
  13.  
  14.         ObjectIdCollection regIds = new ObjectIdCollection();
  15.         foreach (ObjectId id in table)
  16.         {
  17.             regIds.Add(id);
  18.         }
  19.  
  20.         // этот метод позволяет удалить из массива
  21.         // все использованные в чертеже имена приложений
  22.         db.Purge(regIds);
  23.  
  24.         foreach (ObjectId id in regIds)
  25.         {
  26.             DBObject obj = Tx.GetObject(id, OpenMode.ForWrite);
  27.             obj.Erase();
  28.         }
  29.         Tx.Commit();
  30.     }
  31. }

Источник: http://adndevblog.typepad.com/autocad/2012/05/delete-un-used-registered-application-names-from-database.html

 

Обсуждение: http://adn-cis.org/forum/index.php?topic=332

Опубликовано 20.11.2013