调用Revit内部命令时,无法自动跳到调用功能所在的选项卡
问题描述
比如我们在调用自带的“内建体量”功能时,按照体量的创建步骤,先输入体量的名字,之后正常的操作应该是自动跳转到创建选项卡,但是实际结果是依然停留在自己点击按钮所在的选项卡没有跳转,唯一的变化是选项卡里面的按钮都变灰了,然后右侧多出了“在位编辑器”面板,如图所示。
最终找到的解决办法是利用Adwindows.dll里面的RibbonControl类,在调用内部命令前后各用一次,代码如下:
TabActive("体量和场地");
var commandId = RevitCommandId.LookupPostableCommandId(PostableCommand.InPlaceMass);
if (uiapp.CanPostCommand(commandId))
{
uiapp.PostCommand(commandId);
}
TabActive("创建");
private void TabActive(string name)
{
RibbonControl ribbon = Autodesk.Windows.ComponentManager.Ribbon;
foreach (Autodesk.Windows.RibbonTab tab in ribbon.Tabs)
{
if (tab.AutomationName == name)
{
tab.IsActive = true;
break;
}
}
}