ANEXO 1. Crear una nueva vista con nombre /// /// Crea una nueva vista en el dibujo actual. Si ya existe no hace nada. /// /// Nombre de la nueva vista public static void CreateNamedView(string ViewName) { Document doc = Application.DocumentManager.MdiActiveDocument; Database db = doc.Database; try { // Iniciar la transacción using (Transaction trans = db.TransactionManager.StartTransaction()) { // Abrimos la ViewTable en modo lectura ViewTable acViewTbl = trans.GetObject(db.ViewTableId, OpenMode.ForRead) as ViewTable; // Comprobar que la vista recibida no existe en el dibujo if (!acViewTbl.Has(ViewName)) { // Abrir la ViewTable para escritura acViewTbl.UpgradeOpen(); // Crear un nuevo ViewTableRecord con el nombre recibido ViewTableRecord acViewTblRec = new ViewTableRecord(); acViewTblRec.Name = ViewName; // Agregar el nuevo ViewTableRecord acViewTbl.Add(acViewTblRec); trans.AddNewlyCreatedDBObject(acViewTblRec, true); // Establecer la nueva vista como vista actual doc.Editor.SetCurrentView(acViewTblRec); // Confirmar la transacción trans.Commit(); } } } catch (Exception ex) { FRMS.MessageBox.Show(ex.Message, "Error", FRMS.MessageBoxButtons.OK, FRMS.MessageBoxIcon.Error); } finally { db.Dispose(); } } ANEXO 2. Eliminar una vista con nombre /// /// Elimina una vista con nombre del dibujo actual /// /// Nombre de la vista a eliminar public static void EraseNamedView(string ViewName) { Document doc = Application.DocumentManager.MdiActiveDocument; Database db = doc.Database; try { // Iniciar la transacción using (Transaction trans = db.TransactionManager.StartTransaction()) { // Abrimos la ViewTable en modo lectura ViewTable acViewTbl = trans.GetObject(db.ViewTableId, OpenMode.ForRead) as ViewTable; // Comprobar que la vista recibida no existe en el dibujo if (acViewTbl.Has(ViewName)) { // Abrir la ViewTable en modo escritura acViewTbl.UpgradeOpen(); // Obtener la vista solicitada en modo escritura ViewTableRecord acViewTblRec = trans.GetObject(acViewTbl[ViewName], OpenMode.ForWrite) as ViewTableRecord; // Eliminar la vista acViewTblRec.Erase(); // Confirmar los cambios trans.Commit(); } } } catch (Exception ex) { FRMS.MessageBox.Show(ex.Message, "Error", FRMS.MessageBoxButtons.OK, FRMS.MessageBoxIcon.Error); } finally { db.Dispose(); } }