public Result Execute(
ExternalCommandData commandData,
ref string message,
ElementSet elements)
{
if( _subscribed )
{
Autodesk.Windows.ComponentManager.ItemExecuted
-= OnItemExecuted;
_subscribed = false;
}
else
{
RibbonTabCollection tabs
= ComponentManager.Ribbon.Tabs;
foreach( RibbonTab tab in tabs )
{
Debug.Print( " {0} {1} '{2}'", tab,
tab.GetType().Name, tab.AutomationName );
if( tab.KeyTip == null )
{
// This tab is user defined.
foreach( var panel in tab.Panels )
{
// Cannot convert type 'Autodesk.Windows.RibbonPanel'
// to 'Autodesk.Revit.UI.RibbonPanel' via a reference
// conversion, boxing conversion, unboxing conversion,
// wrapping conversion, or null type conversion.
//
//Autodesk.Revit.UI.RibbonPanel rp
// = panel as Autodesk.Revit.UI.RibbonPanel;
Autodesk.Windows.RibbonPanel rp
= panel as Autodesk.Windows.RibbonPanel;
Debug.Print( " {0} {1}",
panel.ToString(), panel.GetType().Name );
foreach( var item in panel.Source.Items )
{
Autodesk.Windows.RibbonItem ri = item
as Autodesk.Windows.RibbonItem;
string automationName = ri.AutomationName;
Debug.Print( " {0} {1} '{2}' {3}",
item.ToString(), item.GetType().Name,
automationName, ri.Cookie );
}
}
}
}
Autodesk.Windows.ComponentManager.ItemExecuted
+= OnItemExecuted;
_subscribed = true;
}
return Result.Succeeded;
}