Тема: Вставить все XREF
Нужно вставить все XREF которые есть в чертеже.
Вот нашел код в сети.
[CommandMethod("dpBindAll")] public void dpBindAll() { Document doc = Application.DocumentManager.MdiActiveDocument; Editor ed = doc.Editor; Database db = doc.Database; try { using (Transaction tr = doc.TransactionManager.StartTransaction()) { ObjectIdCollection btrCol = new ObjectIdCollection(); XrefGraph xrGraph = db.GetHostDwgXrefGraph(false); for(int i = 1; i < xrGraph.NumNodes; i++) { XrefGraphNode xrNode = xrGraph.GetXrefNode(i); BlockTableRecord btr = tr.GetObject(xrNode.BlockTableRecordId, OpenMode.ForWrite) as BlockTableRecord; //Application.ShowAlertDialog(xrNode.Name + " - " + i.ToString() + " - " + xrGraph.NumNodes.ToString()); switch (xrNode.XrefStatus) { case Autodesk.AutoCAD.DatabaseServices.XrefStatus.Resolved: btrCol.Add(xrNode.BlockTableRecordId); ed.WriteMessage("\nДобавляем Xref: " + btr.Name); break; case Autodesk.AutoCAD.DatabaseServices.XrefStatus.Unloaded: ed.WriteMessage("\nUnloaded: " + btr.Name); break; case Autodesk.AutoCAD.DatabaseServices.XrefStatus.FileNotFound: ed.WriteMessage("\nFileNotFound: " + btr.Name); break; case Autodesk.AutoCAD.DatabaseServices.XrefStatus.NotAnXref: ed.WriteMessage("\nNotAnXref: " + btr.Name); break; case Autodesk.AutoCAD.DatabaseServices.XrefStatus.Unreferenced: ed.WriteMessage("\nUnreferenced: " + btr.Name); break; } } //return; try { if (btrCol.Count > 0) { ed.WriteMessage("\nПробуем вставить"); foreach (ObjectId id in btrCol) { db.BindXrefs(btrCol, true); ed.WriteMessage("\nВставили"); } } } catch (Autodesk.AutoCAD.Runtime.Exception ee) { ed.WriteMessage("\n Ошибка вставки Xref!" + ee); } } } catch (Autodesk.AutoCAD.Runtime.Exception ee) { ed.WriteMessage("\nОшибка!" + ee); } }
на строчке db.BindXrefs(btrCol, true); ошибка eWrongObjectType в AutoCAD
Xref!Autodesk.AutoCAD.Runtime.Exception: eWrongObjectType
at Autodesk.AutoCAD.DatabaseServices.Database.BindXrefs(ObjectIdCollection xrefIds, Boolean insertBind)
at dpLayoutsToSepFiles.Class1.dpBindAll() in c:\Visual Studio 2013\Projects\dpLayoutsToSepFiles\dpLayoutsToSepFiles\Class1.cs:line 152
Подскажите чего не так. Спасибо.