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();
}
}