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

05/06/2016

Удаление пропущенных внешних ссылок из базы не в редакторе AutoCAD

Ниже вы видите код функции для удаления потерянных внешних ссылок из базы незагруженной в редактор AutoCAD:

Код - C#: [Выделить]
  1. [CommandMethod("DetachXref")]
  2. public void detach_xref()
  3. {
  4.     Document Doc = Application.DocumentManager.MdiActiveDocument;
  5.     Editor ed = Doc.Editor;
  6.     string mainDrawingFile = @"C:\xref\RectHost.dwg";
  7.     using(Database db = new Database(false, false))
  8.     {
  9.         try
  10.         {
  11.             db.ReadDwgFile(mainDrawingFile, System.IO.FileShare.ReadWrite, false, "");
  12.         }
  13.         catch (System.Exception)
  14.         {
  15.             ed.WriteMessage("\nНе могу открыть чертеж.");
  16.             return;
  17.         }
  18.         bool saveRequired = false;
  19.         db.ResolveXrefs(true, false);
  20.         using (Transaction tr = db.TransactionManager.StartTransaction())
  21.         {
  22.             XrefGraph xg = db.GetHostDwgXrefGraph(true);
  23.             int xrefcount = xg.NumNodes;
  24.             for (int j = 0; j < xrefcount; j++)
  25.             {
  26.                 XrefGraphNode xrNode = xg.GetXrefNode(j);
  27.                 String nodeName = xrNode.Name;
  28.                 if (xrNode.XrefStatus == XrefStatus.FileNotFound)
  29.                 {
  30.                     ObjectId detachid = xrNode.BlockTableRecordId;
  31.                     db.DetachXref(detachid);
  32.                     saveRequired = true;
  33.                     ed.WriteMessage("\n" + nodeName + " успешно удалено");
  34.                 }
  35.             }
  36.             tr.Commit();
  37.         }
  38.         if (saveRequired)
  39.             db.SaveAs(mainDrawingFile, DwgVersion.Current);
  40.     }
  41. }

 

Источник: http://adndevblog.typepad.com/autocad/2016/06/detaching-missing-external-reference-files-from-side-database.html

Автор перевода: Александр Ривилис

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

Опубликовано 05.06.2016
Отредактировано 07.06.2016 в 14:21:47