public void InsertTablero() { TableroContent cont = AutoCADUtils.GetTableroFromJSON(); if (cont == null) { return; } Editor ed = Application.DocumentManager.MdiActiveDocument.Editor; var res = ed.GetPoint("Selecciona el punto de inserción de la tabla"); if (res.Status == PromptStatus.OK) { cont.LoadBlocks(); AutoCADUtils.VoidTransaction((Document doc, Transaction tr) => { TableroTable table = new TableroTable(res.Value, cont); table.Blocks = tr.GetBlockTableRecordIds(doc.Database); table.Init(); table.Insert(doc, tr); }); } }
/// <summary> /// Obtiene la información que crea un tablero desde los datos en JSON /// que obtiene del porta papeles /// </summary> /// <returns>La información del tablero a insertar</returns> public static TableroContent GetTableroFromJSON() { TableroContent cont = null; try { string cp = System.Windows.Clipboard.GetText(); if (cp != null) { cont = Newtonsoft.Json.JsonConvert.DeserializeObject <TableroContent>(cp); } if (cont == null) { throw new Exception("Error al cargar la información del tablero. JSON no válido."); } } catch (Exception exc) { Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Editor.WriteMessage(exc.Message); Autodesk.AutoCAD.ApplicationServices.Application.ShowAlertDialog("La información del portapapeles actual no coincide con la información de un tablero."); } return(cont); }