1

我正在尝试创建一个与 Revit“过滤器”类似的“智能过滤器”,但以其他方式(例如族类型、工作集、级别,甚至“标记”)对元素进行分组。创建隔离这些参数的集合很简单,但是我似乎无法退出我的程序,将 document.selection 修改为仅包含我留下“选中”的元素。

我的程序能够操作剩余的“选中”元素,例如“隐藏在视图中”、“半色调”或“删除”——但是对结果选择执行的可能操作列表太长,无法使用它们所有内容都包含在我的对话框表单中——我想要一个选项来简单地选择一个显示“设置选择”的单选按钮,并让程序退出选择中的 THOSE 元素。

我努力了:

doc.Selection.Elements.Add(Element *****);
doc.Selection.Elements.Remove(Element *****);

这些返回错误“不在对象的实例中”。

完成 Revit 的“过滤器”后,结果是修改后的选择。有没有办法在 C# 插件中做同样的事情?

4

2 回答 2

1

您必须在 UI 文档中执行此操作。

SelElementSet selElements = uidoc.Selection.Elements;
selElements.Add(element);

这段代码对我有用。

于 2014-07-21T10:05:34.203 回答
0

我认为当您引用元素时,Revit 可能没有直接查看对象 - 您是否尝试过使用 elementID 代替?还是 element.UniqueID?

于 2014-07-19T12:25:47.487 回答