Example #1
0
        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();
                    }
                }
            }
        }
Example #2
0
        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());
        }