internal static void EliminaColindancias() { ObjectIdCollection idsColindancias = DManager.IdsByXRecord(M.Constant.XRecordColindancia); Document doc = Autodesk.AutoCAD.ApplicationServices.Core.Application.DocumentManager.MdiActiveDocument; //Abrimos la BD y el editor Database dwg = doc.Database; Editor ed = doc.Editor; //En la BD se encuentra el transaction manager que se encarga de //controlar todas las transacciones using (Transaction tr = dwg.TransactionManager.StartTransaction()) { using (doc.LockDocument()) { try { foreach (ObjectId id in idsColindancias) { DManager.RemoveXRecord(id, M.Constant.XRecordColindancia); } tr.Commit(); } catch (Exception ex) { tr.Abort(); ex.Message.ToEditor(); } } } }
internal static int ReasignoColindancia(this M.ManzanaData insertedData, bool PolilineaNueva, bool RumboNuevo) { //Si ya existe Polilinea en la lista con Rumbo Nuevo if (!PolilineaNueva && RumboNuevo) { //Elimino de la lista M.Manzana.ColindanciaManzana. RemoveAll(x => x.hndPlColindancia.Value == insertedData.hndPlColindancia.Value); } //Si es Nueva Polilinea en la lista con Rumbo ya insertado else if (PolilineaNueva && !RumboNuevo) { //Buscar Polilinea de Rumbo anterior y eliminarlo--------------- //Polilinea repetida M.ManzanaData itemRepetido = new M.ManzanaData(); itemRepetido = M.Manzana.ColindanciaManzana. Where(x => x.rumboActual == insertedData.rumboActual).FirstOrDefault(); Entity entPl = itemRepetido.hndPlColindancia.toObjectId().OpenEntity(); DManager.RemoveXRecord(entPl.ExtensionDictionary, M.Constant.XRecordColindancia); //---------------------------------------------------------------- //Eliminar de lista Rumbo M.Manzana.ColindanciaManzana. RemoveAll(x => x.rumboActual == insertedData.rumboActual); } //Si es Polilinea y Rumbo ya insertados en la lista else if (!PolilineaNueva && !RumboNuevo) { M.ManzanaData itemRumbo = new M.ManzanaData(); //Calculo item de Polilinea-------------------------------------------------------- //Elimino de la lista M.Manzana.ColindanciaManzana. RemoveAll(x => x.hndPlColindancia.Value == insertedData.hndPlColindancia.Value); //---------------------------------------------------------------------------------- //Calculo item de Rumbo------------------------------------------------------------- itemRumbo = M.Manzana.ColindanciaManzana. Where(x => x.rumboActual == insertedData.rumboActual).FirstOrDefault(); if (itemRumbo != null) { ObjectId idPl = new ObjectId(); idPl = itemRumbo.hndPlColindancia.toObjectId(); Entity entPl = idPl.OpenEntity(); DManager.RemoveXRecord(entPl.ExtensionDictionary, M.Constant.XRecordColindancia); //Eliminar de lista Rumbo M.Manzana.ColindanciaManzana. RemoveAll(x => x.rumboActual == insertedData.rumboActual); //---------------------------------------------------------------------------------- } } return(insertedData.InsertoColindancia()); }