在revit二次开发中,如果需要用到调用原生功能或者某个插件的功能。我们可以用UIApplication.PostCommand
这个方法来调用一些RevitCommand来实现这个需求。
但是 PostableCommand
这个枚举提供的command id比较少 只有一些常用且原生的RevitCommand。如果我们的需求里面的command id没有提供的话,我们该如何去找呢。
有以下几种方法
1、通过Revit自带日志的方法去查找。 日志的存放路径位于 %appdata%\Local\Autodesk\Revit\%revit版本%\Journals 这个路径下这里面可以查找一些revit使用日志 里面就包含了一些使用的command id
2、通过快捷方式 快捷方式的配置用两种方法获取到。第一种就是在设置里面直接导出
第二种就是在Revit的配置路径 %appdata%\Roaming\Autodesk\Revit\%revit版本%
这个配置表包含常用的Command Id 不包含其他插件的Command id。配置表部分
3 通过代码的方式获取 这个方式需用到不常用的两个dll AdWindows和UIFramework 这两个dll均可以在revit的安装目录找到。
[Transaction(TransactionMode.Manual)]
internal class CommandIdCommand : CommandBase
{
public override Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
{
ComponentManager.ItemExecuted += ComponentManager_ItemExecuted; //这里做演示就不注销事件了
return Result.Succeeded;
}
private void ComponentManager_ItemExecuted(object sender, RibbonItemExecutedEventArgs e)
{
var commandId = ControlHelper.GetCommandId(e.Item);
Autodesk.Revit.UI.TaskDialog.Show("prompt:", $"command id: {commandId}");
}
}
我们可以通过事件来拿到command id 以下是第三方插件和原生command的id 都能获取到
标签:RevitCommandId,id,插件,Revit,command,二次开发,revit From: https://www.cnblogs.com/youngala/p/17688690.html