Hi,
If you're targetting the 2011 SDK, look at the Editor.TraceBoundary() method.
Here's a quick and dirty
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.Colors;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.EditorInput;
using Autodesk.AutoCAD.Runtime;
using AcAp = Autodesk.AutoCAD.ApplicationServices.Application;
namespace TraceBoundarySample
{
public class TestCommand
{
[CommandMethod("Test")]
public void Test()
{
Document doc = AcAp.DocumentManager.MdiActiveDocument;
Database db = doc.Database;
Editor ed = doc.Editor;
PromptPointResult ppr = ed.GetPoint("\nSelect inner point: ");
if (ppr.Status != PromptStatus.OK)
return;
DBObjectCollection objs = ed.TraceBoundary(ppr.Value, true);
using (Transaction tr = db.TransactionManager.StartTransaction())
{
BlockTableRecord btr =
(BlockTableRecord)tr.GetObject(db.CurrentSpaceId, OpenMode.ForWrite);
foreach (DBObject obj in objs)
{
Entity ent = (Entity)obj;
btr.AppendEntity(ent);
tr.AddNewlyCreatedDBObject(ent, true);
ent.Color = Color.FromColorIndex(ColorMethod.ByAci, 1);
}
tr.Commit();
}
}
}
}