【发布时间】:2016-04-22 16:27:30
【问题描述】:
我是 Revit Api 的新手,正在寻找另一种方法来获取选定元素,而不是使用 idling 事件。我所做的所有阅读,主要是关于buidingcoder 说这似乎是唯一的方法。还有其他方法吗?
【问题讨论】:
标签: revit-api
我是 Revit Api 的新手,正在寻找另一种方法来获取选定元素,而不是使用 idling 事件。我所做的所有阅读,主要是关于buidingcoder 说这似乎是唯一的方法。还有其他方法吗?
【问题讨论】:
标签: revit-api
这绝对不是唯一的方法。选择一个元素与 Idling 事件没有任何关系。什么彻头彻尾的废话!
您可以使用 Selection.PickObject 方法以交互方式选择元素。
您还可以在从 Selection.GetElementIds 方法启动命令之前检索预先选择的元素。
如果您不熟悉 Revit API,您应该首先阅读入门资料,尤其是 DevTV 和 My First Revit Plugin 教程。
这立即回答了您的这个问题,除此之外还有更多:
http://thebuildingcoder.typepad.com/blog/about-the-author.html#2
【讨论】:
如果您在选择更改时尝试执行某些操作,您可能需要查看 Jeremy Tammik 的以下博客文章:Element Selection Changed Event。
基本思想是订阅事件而不是轮询(您提到的IdleEvent 方法或使用计时器)。由于 Revit API 实际上并没有这样的事件,一个聪明的家伙 - 我们称他为 Vilo - 想出了订阅 Modify 面板的PanelEvent 的想法。这很巧妙!阅读博客文章以获取有关如何执行此操作的更多信息(和示例代码!)!
【讨论】: