<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Navisworks API for stacked ribbon buttons in Navisworks API Forum</title>
    <link>https://forums.autodesk.com/t5/navisworks-api-forum/navisworks-api-for-stacked-ribbon-buttons/m-p/11530011#M1773</link>
    <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/12897935"&gt;@serg-001&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;That's great news.&lt;BR /&gt;Did you use XAML to create the ribbon buttons?&lt;BR /&gt;If possible, Could you please explain how did you resolve this issue with a simple sample code?&lt;/P&gt;</description>
    <pubDate>Fri, 04 Nov 2022 03:44:58 GMT</pubDate>
    <dc:creator>naveen.kumar.t</dc:creator>
    <dc:date>2022-11-04T03:44:58Z</dc:date>
    <item>
      <title>Navisworks API for stacked ribbon buttons</title>
      <link>https://forums.autodesk.com/t5/navisworks-api-forum/navisworks-api-for-stacked-ribbon-buttons/m-p/11525475#M1770</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;How to created stacked vertically Ribbon buttons via Navisworks API? I want to have two or three ribbon buttons located in one column one below other.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have found this for Revit API, called "stacked ribbon items" on page &lt;A href="https://help.autodesk.com/view/RVT/2022/ENU/?guid=Revit_API_Revit_API_Developers_Guide_Introduction_Add_In_Integration_Ribbon_Panels_and_Controls_html" target="_blank" rel="noopener"&gt;"Ribbon Panels and Controls"&lt;/A&gt;. Example on the &lt;A href="https://help.autodesk.com/cloudhelp/2022/ENU/Revit-API/images/NewRibbonTab.jpg" target="_blank" rel="noopener"&gt;picture&lt;/A&gt;, there are two buttons: "My Button #1" and&amp;nbsp;&amp;nbsp;"My Button #2" below it.&lt;/P&gt;&lt;P&gt;How to get similar buttons in Navisworks plugin?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you&lt;/P&gt;</description>
      <pubDate>Wed, 02 Nov 2022 13:51:32 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/navisworks-api-forum/navisworks-api-for-stacked-ribbon-buttons/m-p/11525475#M1770</guid>
      <dc:creator>serg-001</dc:creator>
      <dc:date>2022-11-02T13:51:32Z</dc:date>
    </item>
    <item>
      <title>Re: Navisworks API for stacked ribbon buttons</title>
      <link>https://forums.autodesk.com/t5/navisworks-api-forum/navisworks-api-for-stacked-ribbon-buttons/m-p/11527553#M1771</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/12897935"&gt;@serg-001&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;
&lt;P&gt;Could you please try using the below sample code?&lt;/P&gt;
&lt;P&gt;I tested in Navisworks Manage 2023.&lt;/P&gt;
&lt;LI-CODE lang="csharp"&gt; public class Class1 : AddInPlugin
    {
        public override int Execute(params string[] parameters)
        {
           
            foreach (Autodesk.Windows.RibbonTab Tab in Autodesk.Windows.ComponentManager.Ribbon.Tabs)
            {
                //get Home tab
                if (Tab.Id == "ID_TabHome")
                {
                    RibbonPanel ADNPanel = null;
                    //check if the custom panel exsits
                    foreach (RibbonPanel panel in Tab.Panels)
                    {
                        if (panel.Source.Name == "ID_ADNTestPanel")
                        {
                            ADNPanel = panel;
                            break;
                        }
                    }

                    if (ADNPanel == null)
                    {

                       
                        //create custom Panel
                        ADNPanel = new RibbonPanel();
                        //create ribbon panel source and bind it to the panel
                        RibbonPanelSource ADNSource = new RibbonPanelSource();
                        ADNSource.Id = "ID_ADNTestPanel";
                        ADNSource.Name = "ADN Test Panel";
                        ADNPanel.Source = ADNSource;
                        

                        //create ribbon button
                        RibbonButton button = new RibbonButton();
                        button.IsEnabled = true;
                        button.IsVisible = true;
                        button.Image = new System.Windows.Media.Imaging.BitmapImage(new Uri(@"....\red.png", UriKind.RelativeOrAbsolute));
                        button.ShowImage = true;
                        button.Size = RibbonItemSize.Standard;
                        button.ShowText = true;
                        button.ResizeStyle = RibbonItemResizeStyles.HideText;
                        button.Id = "ID_ADNTestButton";
                        button.Name = "ADNTestButtonName";
                        button.Text = "ADN Test";
                        

                        RibbonButton button2 = new RibbonButton();
                        button2.IsEnabled = true;
                        button2.IsVisible = true;
                        button2.Image = new System.Windows.Media.Imaging.BitmapImage(new Uri(@"....\red.png", UriKind.RelativeOrAbsolute));
                        button2.ShowImage = true;
                        button2.Size = RibbonItemSize.Standard;
                        button2.ShowText = true;
                        button2.ResizeStyle = RibbonItemResizeStyles.HideText;
                        button2.Id = "ID_ADNTestButton2";
                        button2.Name = "ADNTestButtonName2";
                        button2.Text = "ADN Test2";

                        RibbonButton button3 = new RibbonButton();
                        button3.IsEnabled = true;
                        button3.IsVisible = true;
                        button3.Image = new System.Windows.Media.Imaging.BitmapImage(new Uri(@"....\red.png", UriKind.RelativeOrAbsolute));
                        button3.ShowImage = true;
                        button3.Size = RibbonItemSize.Standard;
                        button3.ShowText = true;
                        button3.ResizeStyle = RibbonItemResizeStyles.HideText;
                        button3.Id = "ID_ADNTestButton3";
                        button3.Name = "ADNTestButtonName3";
                        button3.Text = "ADN Test3";

                       
                        //add the button to the panel
                        ADNPanel.Source.Items.Add(button);
                        ADNPanel.Source.Items.Add(new RibbonRowBreak());
                        ADNPanel.Source.Items.Add(button2);
                        ADNPanel.Source.Items.Add(new RibbonRowBreak());
                        ADNPanel.Source.Items.Add(button3);
                        ADNPanel.Source.Items.Add(new RibbonRowBreak());
                        
                        //delegate the event when ribbon element is activated
                        ComponentManager.UIElementActivated += new EventHandler&amp;lt;UIElementActivatedEventArgs&amp;gt;(ComponentManager_UIElementActivated);
                        //add the panel to the tab
                        Tab.Panels.Add(ADNPanel);
                       
                    }

                }
            }
            return 0;
        }
        
        void ComponentManager_UIElementActivated(object sender, UIElementActivatedEventArgs e)
        {
            if(e != null &amp;amp;&amp;amp; e.Item != null &amp;amp;&amp;amp; e.Item.Id != null&amp;amp;&amp;amp; e.Item.Id == "ID_ADNTestButton")
            {
                MessageBox.Show("Button 1 is clicked!");
            }
            if (e != null &amp;amp;&amp;amp; e.Item != null &amp;amp;&amp;amp; e.Item.Id != null &amp;amp;&amp;amp; e.Item.Id == "ID_ADNTestButton2")
            {
                System.Windows.Forms.MessageBox.Show("Button 2 is clicked!");
            }
            if (e != null &amp;amp;&amp;amp; e.Item != null &amp;amp;&amp;amp; e.Item.Id != null &amp;amp;&amp;amp; e.Item.Id == "ID_ADNTestButton3")
            {
                System.Windows.Forms.MessageBox.Show("Button 3 is clicked!");
            }
        }
    }&lt;/LI-CODE&gt;
&lt;P&gt;Here is the Result I got&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Buttons.png" style="width: 540px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/1135482iAAFC7A419F924F8B/image-size/large?v=v2&amp;amp;px=999" role="button" title="Buttons.png" alt="Buttons.png" /&gt;&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 03 Nov 2022 08:02:27 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/navisworks-api-forum/navisworks-api-for-stacked-ribbon-buttons/m-p/11527553#M1771</guid>
      <dc:creator>naveen.kumar.t</dc:creator>
      <dc:date>2022-11-03T08:02:27Z</dc:date>
    </item>
    <item>
      <title>Re: Navisworks API for stacked ribbon buttons</title>
      <link>https://forums.autodesk.com/t5/navisworks-api-forum/navisworks-api-for-stacked-ribbon-buttons/m-p/11528622#M1772</link>
      <description>&lt;P&gt;Hi &lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/5661631"&gt;@naveen.kumar.t&lt;/a&gt; ,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I tried to get similar behavior within &lt;STRONG&gt;xaml&lt;/STRONG&gt;-file.&lt;/P&gt;&lt;P&gt;I was not able to get it work with &lt;STRONG&gt;RibbonPanel&lt;/STRONG&gt;, probably because I have extra ribbon buttons on the panel, which should be arranged as usual ribbon buttons. I replaced &lt;STRONG&gt;RibbonPanel&lt;/STRONG&gt; with &lt;STRONG&gt;RibbonRowPanel&lt;/STRONG&gt;. And&amp;nbsp;&lt;STRONG&gt;RibbonRowPanel&lt;/STRONG&gt; and&amp;nbsp;&lt;STRONG&gt;RibbonRowBreak&lt;/STRONG&gt; work fine together.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 03 Nov 2022 16:14:43 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/navisworks-api-forum/navisworks-api-for-stacked-ribbon-buttons/m-p/11528622#M1772</guid>
      <dc:creator>serg-001</dc:creator>
      <dc:date>2022-11-03T16:14:43Z</dc:date>
    </item>
    <item>
      <title>Re: Navisworks API for stacked ribbon buttons</title>
      <link>https://forums.autodesk.com/t5/navisworks-api-forum/navisworks-api-for-stacked-ribbon-buttons/m-p/11530011#M1773</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/12897935"&gt;@serg-001&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;That's great news.&lt;BR /&gt;Did you use XAML to create the ribbon buttons?&lt;BR /&gt;If possible, Could you please explain how did you resolve this issue with a simple sample code?&lt;/P&gt;</description>
      <pubDate>Fri, 04 Nov 2022 03:44:58 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/navisworks-api-forum/navisworks-api-for-stacked-ribbon-buttons/m-p/11530011#M1773</guid>
      <dc:creator>naveen.kumar.t</dc:creator>
      <dc:date>2022-11-04T03:44:58Z</dc:date>
    </item>
    <item>
      <title>Re: Navisworks API for stacked ribbon buttons</title>
      <link>https://forums.autodesk.com/t5/navisworks-api-forum/navisworks-api-for-stacked-ribbon-buttons/m-p/11530542#M1774</link>
      <description>&lt;P&gt;This is something like this:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;		...
        &amp;lt;RibbonPanel ...&amp;gt;
            &amp;lt;RibbonPanelSource ...&amp;gt;
                &amp;lt;RibbonRowPanel&amp;gt;
                    &amp;lt;roamer:NWRibbonButton ... /&amp;gt;
                    &amp;lt;RibbonRowBreak /&amp;gt;
                    &amp;lt;roamer:NWRibbonButton ... /&amp;gt;
                    &amp;lt;RibbonRowBreak /&amp;gt;
                    &amp;lt;roamer:NWRibbonButton ... /&amp;gt;
                &amp;lt;/RibbonRowPanel&amp;gt;
            &amp;lt;/RibbonPanelSource&amp;gt;
        &amp;lt;/RibbonPanel&amp;gt;
		...&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I was looking for some kind of the official documentation on the subject, but didn't find something.&lt;/P&gt;</description>
      <pubDate>Sat, 05 Nov 2022 22:26:43 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/navisworks-api-forum/navisworks-api-for-stacked-ribbon-buttons/m-p/11530542#M1774</guid>
      <dc:creator>serg-001</dc:creator>
      <dc:date>2022-11-05T22:26:43Z</dc:date>
    </item>
  </channel>
</rss>

