鼠标在选择的时候通过一个过滤器就可以筛选指定类别的元素,
那么我在用鼠标点选的时候只要选择墙,怎么做呢。
案例如下:
var ele = sel.PickObject(ObjectType.Element,/*要添加的过滤器*/).GetElement(doc);
过滤器定义
public class WallFilter:ISelectionFilter
{
public bool AllowElement(Element elem)
{
if(elem is Wall) //在这里判断鼠标下方的元素是什么
return true;
return false;
}
public bool AllowReference(Reference reference, XYZ position)
{
return true;
}
}
那好,有了这个过滤器了,就可以用它来过滤了
ISelectionFilter newfilter = new WallFilter();
var ele = sel.PickObject(ObjectType.Element,newfilter).GetElement(doc);