http://www.cnblogs.com/greatverve/archive/2012/03/30/revit-api-get-ribbon.html 博主:大氣象
http://www.cnblogs.com/chendongbky/p/6274690.html 博主: 蘇州城外的微笑
轉載自以上兩篇博客
//得到Ribbon控件的值 [TransactionAttribute(Autodesk.Revit.Attributes.TransactionMode.Manual)] public class cmdTest : IExternalCommand { public Result Execute(ExternalCommandData commandData, ref string messages, ElementSet elements) { UIApplication uiApp = commandData.Application; Document doc = uiApp.ActiveUIDocument.Document; Selection sel = uiApp.ActiveUIDocument.Selection; Transaction ts = new Transaction(doc, "http://revit.5d6d.com"); ts.Start(); RibbonPanel ribbonPanel = null; List<RibbonPanel> listPanel = commandData.Application.GetRibbonPanels("Tab名稱"); foreach (RibbonPanel panel in listPanel) { if (panel.Name == "RibbonPanel名稱")//RibbonPanel的Name { ribbonPanel = panel; break; } } IList<RibbonItem> listItem = ribbonPanel.GetItems(); foreach (RibbonItem item in listItem) { if (item.Name == "Ribbon名字")//Ribbon的Name屬性 { item.Enabled = false;//false即為按鈕變灰 }
} ts.Commit(); return Result.Succeeded; } }
如果是對按鈕進行動態隱藏,只需將Enabled屬性換成Visible就可以了。