21/12/2013
Editor.SelectAll с фильтром выбора примитивов и слоёв
При использовании метода “Editor.SelectAll” можно создать фильтр выбора для отсеивания ненужных примитивов. Код ниже показывает как можно отфильтровать Отрезки и Круги, которые находятся только на определённых слоях (0, Layer1, Layer2).
Код - C#: [Выделить]
- [CommandMethod("LayerSelection")]
- public void LayerSelection()
- {
- Document doc = Application.DocumentManager.MdiActiveDocument;
- Database db = doc.Database;
- Editor ed = doc.Editor;
- TypedValue[] filterlist = new TypedValue[2];
- //select circle and line
- filterlist[0] = new TypedValue(0, "CIRCLE,LINE");
- //8 = DxfCode.LayerName
- filterlist[1] = new TypedValue(8, "0,Layer1,Layer2");
- SelectionFilter filter = new SelectionFilter(filterlist);
- PromptSelectionResult selRes = ed.SelectAll(filter);
- if (selRes.Status != PromptStatus.OK)
- {
- ed.WriteMessage("\nОшибка метода selectAll");
- return;
- }
- ObjectId[] ids = selRes.Value.GetObjectIds();
- ed.WriteMessage("Найдено примитивов: "
- + ids.Length.ToString() + "\n");
- }
Обсуждение: http://adn-cis.org/forum/index.php?topic=408
Опубликовано 21.12.2013