如何从Revit API调用Revit Purge Button

时间:2017-11-07 06:45:18

标签: c# revit-api revit

我正在开发一个插件来从中央分离文档,当它完成时它也将被清除。我正在努力编写清除代码,我想从代码中调用Revit Purge按钮。如果可能的话,将非常感谢支持或者可以共享用于在API中编写purge命令的代码。

谢谢

2 个答案:

答案 0 :(得分:1)

通过一些研究,我提出了解决方案,但它也没有什么限制。我们可以从API调用Revit按钮,包括Purge。

<强>限制:

  • 您无法从插件中途调出一个按钮。
    • 您必须将其设置为在插件完成后运行。
    • 您可以通过订阅已执行的活动来解决这个问题,但我需要对此进行试验。
  • 您不知道命令是否会成功运行。
    • 另外,由于您无法在程序中途运行它,因此您无法检查代码是否成功。
    • 您可以查看日志日志并解析最新命令的结果,但这是一种非常黑客的解决方案。
  • 您事先并不知道是否其他人已经覆盖了按钮以执行其他操作。
    • 通话只需按下按钮即可。上面的文章重点介绍了重写按钮。您无法保证该按钮仍能满足您的预期目标。
  • 按下按钮触发的过程无法自动完成。
    • 您的脚本必须在按下按钮之前完成,这样您就无法控制生成的对话框。
    • 您可以订阅按钮事件并按照这种方式进行操作。再次,需要进行实验。

以下是实现此目的的示例代码:

        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

答案 1 :(得分:1)

Building Coder在purge and detecting an empty view的讨论中提供了一些清除示例的摘要。