1

我一直在寻找答案,但没有找到任何可以解决的问题。

我有一个调用 PostCommand 的线程,我注意到了几件事:无论我将 PostCommand 放在哪里,它都会在我的线程中最后出现,即使它在单独的事务中也是如此。

有没有办法按顺序调用它,然后返回我的 Revit API 代码继续执行?

我找到了这个线程,但我希望他们的错误是因为他们在 dynamo 中运行,而不是在 Visual Studio 中使用 c#

4

1 回答 1

1

Revit 和 Revit API 是单线程的。

您只能PostCommand在有效的 Revit API 上下文中调用,并且该上下文位于单个线程中。

无论您发布什么命令请求,在您的外部命令或其他事件处理程序终止并放弃控制之前,它们都不会被执行,因此 Revit 可以继续执行它接下来想做的任何事情。

你对此没有进一步的控制权。

一旦事件处理程序终止,Revit 就会恢复正常模式。

你无法以任何方式改变它。

于 2020-06-11T18:11:17.630 回答