[资料] 得到选择集ID的类
之前用VB的时候,创建选择集比较方便见:http://hi.baidu.com/kakanimo/blog/item/0288d5321e0d034bad4b5fb5.html,现在C#写了个类,使用起来也异常方便:如下ClassSset Ssetql = new ClassSset(0,"LINE", 8,"桥梁分段");
foreach (ObjectId id in Ssetql.ids)
{
。。。对选择集内的对象操作
}
创建的时候现在很方便,任意对组码成对出现就行了,如上面0,及对应的"LINE",8及对应的"桥梁分段"等等。关于组码的意思可见http://hi.baidu.com/kakanimo/blog/item/793dbf1a45912b118618bf9e.html。
ClassSset见下面:
class ClassSset
{
publicObjectId[] ids=new ObjectId;//返回的选择集ID
public ClassSset(params object[] list)
{
Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;
TypedValue[] values = new TypedValue;
for (int i = 0; i <list.Length;i=i+2 )
{
TypedValue valuetemp = new TypedValue((int)list, (string)list);
values.SetValue(valuetemp,i/2);//过滤器的条件
}
SelectionFilter sfilter = new SelectionFilter(values);//构造过滤器
PromptSelectionResult resSel = ed.SelectAll(sfilter);//用过滤器构造选择集
SelectionSet sSet = resSel.Value;//得到选择集
//这个时候可能选择集中没有任何东西
try
{
ids = sSet.GetObjectIds();//选择集中对象ID
}
catch
{
ids = ObjectId.Null;
}
}
}
页:
[1]