我使用以下函数为我提供特定层上的块引用选择集。 AutoCADDrawingObjectName.BlockReference 返回文本“INSERT”。
但是,当我知道我要求的层有块引用时,它返回了selectSetResult.Status值的错误警告(我无法拾取任何代码),并为该值返回Null。
- public static SelectionSet GetBlockRefOnLayerSelectionSet(string LayerName)
- {
- Document thisDrawing;
- SelectionSet selectionSet = null;
- PromptSelectionResult selectionSetResult;
- TypedValue[] typedArray = new TypedValue[2];
- SelectionFilter selectionFilter;
- try
- {
- thisDrawing = GetDocument();
- Editor editor = thisDrawing.Editor;
- typedArray.SetValue(new TypedValue((int)DxfCode.Start, AutoCADDrawingObjectName.BlockReference), 0);
- typedArray.SetValue(new TypedValue((int)DxfCode.LayerName, LayerName), 1);
- selectionFilter = new SelectionFilter(typedArray);
- selectionSetResult = editor.SelectAll(selectionFilter);
- if (selectionSetResult.Value != null)
- {
- selectionSet = selectionSetResult.Value;
- }
- }
- catch (Exception ex)
- {
- MessageBox.Show("AutoCADUtility.GetBlockRefOnLayerSelectionSet : " + ex.Message, MessageHeadings.ExceptionError);
- }
- return selectionSet;
- }
我不禁觉得编辑器.SelectAll指令是错误的。 COM AcadSelectionSet 类允许我们使用 .选择方法,但我找不到等效方法。
有人能看到我在这里做错了什么吗?
问候, 保罗
本帖以下内容被隐藏保护;需要你回复后,才能看到! 游客,如果您要查看本帖隐藏内容请 回复 |