GetSnoopSet() { try { Snoop.ObjIdSet objSet = new Snoop.ObjIdSet("*A"); // TBD: how to deal with named sets? ... later... // select the graphic objects they want PromptSelectionOptions selOpts = new PromptSelectionOptions(); selOpts.MessageForAdding = "Select graphical objects for test (or RETURN for none)"; Editor ed = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Editor; PromptSelectionResult res = ed.GetSelection(selOpts); if (res.Status == PromptStatus.OK) { foreach (ObjectId objId in res.Value.GetObjectIds()) // set these as the original, let dialog add the rest { objSet.AddToSet(objId); } } else if (res.Status == PromptStatus.Error) { ; // empty selection set } else { return(null); } Autodesk.AutoCAD.ApplicationServices.Application.ShowAlertDialog("Select non-graphical objects by browsing, right-click on item, choose \"Add to Snoop Set\"."); using (TransactionHelper trHlp = new TransactionHelper(MgdDbg.Utils.Db.GetCurDwg())) { trHlp.Start(); Snoop.Forms.Database form = new Snoop.Forms.Database(trHlp.Database, trHlp); // temporarily hook up the snoop set to the snoop browse dialogs. m_snoopObjSet = objSet; if (form.ShowDialog() == DialogResult.OK) { trHlp.Commit(); return(objSet); } else { trHlp.Abort(); return(null); } } } finally { m_snoopObjSet = null; // reset to null for next invocation } }
DrillDown() { if (m_val != null) { using (TransactionHelper trHlp = new TransactionHelper(m_val)) { trHlp.Start(); Snoop.Forms.Database form = new Snoop.Forms.Database(m_val, trHlp); form.ShowDialog(); trHlp.Commit(); } } }
SnoopDatabase() { Database db = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Database; using (TransactionHelper trHlp = new TransactionHelper(db)) { trHlp.Start(); Snoop.Forms.Database dbox = new Snoop.Forms.Database(db, trHlp); dbox.Text = db.Filename; AcadApp.ShowModalDialog(dbox); trHlp.Commit(); } }
OnBnSnoop(object sender, System.EventArgs e) { Snoop.ObjIdSet curSet = GetCurrentSet(); if (curSet != null) { using (TransactionHelper trHlp = new TransactionHelper(curSet.Db)) { trHlp.Start(); Snoop.Forms.Database form = new Snoop.Forms.Database(curSet.Db, trHlp); form.ShowDialog(); trHlp.Commit(); } } }