下載app免費領取會員
在RevitAPI里創建Tab有一個限制就是數量不能超過20個
Autodesk.Revit.Exceptions..::..InvalidOperationException Too many custom tabs have been created in this session. (Maximum is 20).
那有沒有可能創建第21個Tab呢?當然是可以的
Type uiapp = typeof(UIApplication);
FieldInfo fielInfo = uiapp.GetField("m_ItemsNameDictionary", BindingFlags.NonPublic | BindingFlags.Static | BindingFlags.Instance);
Dictionary<string, Dictionary<string, RibbonPanel>> dict = fielInfo.GetValue(null) as Dictionary<string, Dictionary<string, RibbonPanel>>;
if (dict.Count < 23)
{
UiCtrlApp.CreateRibbonTab(name);
}
else
{
RevitRibbonControl rvtControl = RevitRibbonControl.RibbonControl;
if (rvtControl.FindTab(name) != null)
{
throw new ArgumentException("tabName or panelName is Empty or the tab name duplicates the name of another tab in the Revit UI");
}
adWin.RibbonTabCollection tabs = rvtControl.Tabs;
int num = 0;
if (0 < tabs.Count)
{
do
{
adWin.RibbonTab ribbonTab = tabs[num];
if (ribbonTab.IsContextualTab || ribbonTab.Id == "Modify")
{
break;
}
num++;
}
while (num < tabs.Count);
}
adWin.RibbonTab ribbonTab2 = new adWin.RibbonTab();
ribbonTab2.Name = name;
ribbonTab2.Title = name;
ribbonTab2.Id = name;
rvtControl.Tabs.Insert(num, ribbonTab2);
dict.Add(name, new Dictionary<string, RibbonPanel>());
}
本文版權歸腿腿教學網及原創作者所有,未經授權,謝絕轉載。
上一篇:Revit如何自動生成圖紙目錄?
下一篇:二次開發教程:C#鍵盤鉤子
推薦專題