如何从 Revit API 调用 Revit 清除按钮
How to Call Revit Purge Button from the Revit API
我正在开发一个插件来从中央分离文档,完成后它也会被清除。我正在努力编写清除代码,我正在考虑 从代码 调用 Revit 清除按钮。如果可能的话,希望得到支持或分享在 API.
中编写清除命令的代码
谢谢
通过一些研究,我提出了解决方案,但它也有一些限制。我们可以从 API 调用 Revit 按钮,包括 Purge。
限制:
- 您不能在插件执行到一半时调用按钮。
- 插件完成后,您必须将其设置为 运行。
- 您可以通过订阅已执行事件来解决这个问题,但我需要对此进行试验。
- 您不知道该命令是否会运行成功。
- 此外,由于您不能 运行 在您的程序执行到一半时,您无法在代码中检查它是否成功。
- 您可以检查日志并解析最新命令的结果,但这是一个非常 hack-y 感觉的解决方案。
- 您无法提前知道其他人是否已覆盖按钮以执行其他操作。
- 通话就是按下按钮。上面的文章着重于覆盖按钮。您不能保证该按钮仍会按照您的预期执行。
- 您按下按钮触发的过程无法自动执行。
- 您的脚本必须在按下按钮之前完成,因此您无法控制生成的对话框。
- 您可以通过这种方式订阅按钮事件和 fiddle。同样,需要进行实验。
以下是实现此目的的示例代码:
UIApplication uiapp = commandData.Application;
//Store the ID of desired plugin button, in this case its 'purge unused'
String s_commandToDisable = "ID_PURGE_UNUSED";
RevitCommandId s_commandId = RevitCommandId.LookupCommandId(s_commandToDisable);
//This revit button will run at the end of your application.
uiapp.PostCommand(s_commandId);
要查找默认 revit 命令 ID 的列表,请单击 here
Building Coder 在 purge and detecting an empty view 的讨论中提供了一些清除示例的摘要。
我正在开发一个插件来从中央分离文档,完成后它也会被清除。我正在努力编写清除代码,我正在考虑 从代码 调用 Revit 清除按钮。如果可能的话,希望得到支持或分享在 API.
中编写清除命令的代码谢谢
通过一些研究,我提出了解决方案,但它也有一些限制。我们可以从 API 调用 Revit 按钮,包括 Purge。
限制:
- 您不能在插件执行到一半时调用按钮。
- 插件完成后,您必须将其设置为 运行。
- 您可以通过订阅已执行事件来解决这个问题,但我需要对此进行试验。
- 您不知道该命令是否会运行成功。
- 此外,由于您不能 运行 在您的程序执行到一半时,您无法在代码中检查它是否成功。
- 您可以检查日志并解析最新命令的结果,但这是一个非常 hack-y 感觉的解决方案。
- 您无法提前知道其他人是否已覆盖按钮以执行其他操作。
- 通话就是按下按钮。上面的文章着重于覆盖按钮。您不能保证该按钮仍会按照您的预期执行。
- 您按下按钮触发的过程无法自动执行。
- 您的脚本必须在按下按钮之前完成,因此您无法控制生成的对话框。
- 您可以通过这种方式订阅按钮事件和 fiddle。同样,需要进行实验。
以下是实现此目的的示例代码:
UIApplication uiapp = commandData.Application;
//Store the ID of desired plugin button, in this case its 'purge unused'
String s_commandToDisable = "ID_PURGE_UNUSED";
RevitCommandId s_commandId = RevitCommandId.LookupCommandId(s_commandToDisable);
//This revit button will run at the end of your application.
uiapp.PostCommand(s_commandId);
要查找默认 revit 命令 ID 的列表,请单击 here
Building Coder 在 purge and detecting an empty view 的讨论中提供了一些清除示例的摘要。