在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>());
}
最新文章
政策新闻 | 淮北市住建局承接安徽省住建厅委托建筑业企业资质行政审批公告(淮建资许〔2025〕60号) 政策新闻 | 临海市灰坑村传统村落保护项目设计方案通过专家评审 政策新闻 | 安居区会龙镇扎实开展农村房屋安全隐患排查整治 政策新闻 | 关于发布“运河区文安和韵小区前期物业服务项目变更公告”的公示公告 政策新闻 | 锦州市委常委会召开会议 政策新闻 | 《加快推动建筑领域节能降碳实施方案》解读 政策新闻 | 马鞍山地下管线综合管理信息系统(二期)初步设计报告编制项目中标(成交)结果公告 政策新闻 | 住房城乡建设部办公厅关于印发《房屋市政工程有限空间识别及施工安全作业 指南(试行)》的通知 政策新闻 | 广西住建厅关于公布2025年第29批建筑业企业资质(首次申请)审查结果的通告 政策新闻 | 呼伦贝尔市稳步推进农村牧区危房改造工作