如何将元素集合转换为"当前选择"在Revit?

时间:2014-07-18 15:25:07

标签: c# revit-api

我正在尝试创建一个类似于Revit“过滤器”的“智能过滤器”,但是以其他方式对元素进行分组(例如家庭类型,工作集或级别,甚至“标记”)。很容易创建隔离这些参数的集合,但我似乎无法退出我的程序,并修改了document.selection以仅包含我已经“检查”的元素。

我的程序能够操作剩余的“已检查”元素,例如“隐藏视图”或“半色调”或“删除” - 但是对结果选择执行的可能操作列表太长将它们全部包含在我的Dialog表单中 - 我想要一个选项,只需选择一个单选按钮,显示“Set Selection”,并让程序退出选择中的THOSE元素。

我试过了:

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

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

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

2 个答案:

答案 0 :(得分:1)

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

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

此代码适用于我。

答案 1 :(得分:0)

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