[csharp]view plaincopyprivatevoidTest() { //获取当前文档和数据库 DocumentacDoc=Application.DocumentManager.MdiActiveDocument; DatabaseacCurDb=acDoc.Database; Editored=acDoc.Editor; //启动事务 using(TransactionacTrans=acCurDb.TransactionManager.StartTransaction()) { //使用选择过滤器定义选择集规则 TypedValue[]typedValue=newTypedValue[1]; //TestLayer为图层名字DxfCode.LayerName为筛选类型详情见下面的DXF组码 typedValue.SetValue(newTypedValue((int)DxfCode.LayerName,"TestLayer"),0); SelectionFilterfilter=newSelectionFilter(typedValue); //根据条件选择当前空间内所有未锁定及未冻结的对象。 //从图形中选择对象有几种方式,详情见下表 PromptSelectionResultresult=ed.SelectAll(filter); //如果提示状态OK,表示已选择到对象反之则没有对象 if(result.Status!=PromptStatus.OK){return;} SelectionSetacSSet=result.Value; //遍历选择集内的对象 foreach(ObjectIdidinacSSet.GetObjectIds()) { Entityhatchobj=acTrans.GetObject(id,OpenMode.ForWrite)asEntity; hatchobj.Erase();//删除 } mit(); } }
常见过滤器DXF组码:
从图形中选择对象的几种方式:
GetSelection :提示用户从屏幕拾取对象。
SelectAll :选择当前空间内所有未锁定及未冻结的对象。
SelectCrossingPolygon :选择由给定点定义的多边形内的所有对象以及与多边形相交的对象。多边形可以是任意形状,但不能与自己交叉或接触。
SelectCrossingWindow :选择由两个点定义的窗口内的对象以及与窗口相交的对象。
SelectFence :选择与选择围栏相交的所有对象。围栏选择与多边形选择类似,所不同的是围栏不是封闭的,围栏同样不能与自己相交。
SelectLast :选择当前空间中最后创建的那个对象。
SelectPrevious :选择前一个“选择对象:”提示符期间已选定的所有对象。
SelectWindow :选择完全框入由两个点定义的矩形内的所有对象。
SelectWindowPolygon :选择完全框入由点定义的多边形内的对象。多边形可以是任意形状,但不能与自己交叉或接触。
SelectAtPoint :选择通过给定点的对象,并将其放入活动选择集。
SelectByPolygon :选择围栏里面的对象,并将其添加到活动选择集。提示选择屏幕上的对象并遍历选择集