<?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 Betreff: iLogicMini Toolbar Combo Box List Item Icon from Browser Node in Inventor Programming - iLogic, Macros, AddIns &amp; Apprentice</title>
    <link>https://forums.autodesk.com/t5/inventor-programming-ilogic/ilogicmini-toolbar-combo-box-list-item-icon-from-browser-node/m-p/11023901#M135823</link>
    <description>&lt;P&gt;Hello&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Add in the header section of your rule just&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="general"&gt;AddReference "stdole"&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Wed, 23 Mar 2022 13:48:46 GMT</pubDate>
    <dc:creator>Ralf_Krieg</dc:creator>
    <dc:date>2022-03-23T13:48:46Z</dc:date>
    <item>
      <title>iLogicMini Toolbar Combo Box List Item Icon from Browser Node</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-ilogic/ilogicmini-toolbar-combo-box-list-item-icon-from-browser-node/m-p/11023771#M135820</link>
      <description>&lt;P&gt;Inventor 2021, latest version:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have a sample of a rule I'm making that uses a Mini Toolbar to allow the user to select component occurrences in an assembly and see them in a combo box.&amp;nbsp; I see in the API Guide that there's an option to have an icon next to each combo box item.&amp;nbsp; I'm trying to find the way to grab the icon from the browser node of the selected occurrence (icons for Part, Assembly, Weldment, Sheet Metal, etc.) and use that as the icon in the combo box.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;When adding the combo box item, it accepts IPictureDisp as an icon input.&amp;nbsp; I think I found the API to grab the icon from the selected occurrence which results as an IPictureDisp:&lt;/P&gt;&lt;P&gt;ThisDoc.Document.BrowserPanes.GetNativeBrowserNodeDefinition(&lt;SPAN&gt;oEntity&lt;/SPAN&gt;).Icon&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;However, when I try to use this to contain the icon in an object I get an error:&lt;/P&gt;&lt;P&gt;Error : Reference required to assembly 'stdole, Version=7.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' containing the type 'stdole.IPictureDisp'. Add one to your project.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I'm not sure how to properly set up "stdole.IPictureDisp" as a reference in iLogic or if it's even possible.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Here's my rule sample, the area where the icon needs to be grabbed and used is in subroutine evSelectEvents_OnSelect:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;SPAN&gt;Class&lt;/SPAN&gt; &lt;SPAN&gt;ThisRule&lt;/SPAN&gt;
	&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;bStop&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Boolean&lt;/SPAN&gt; = &lt;SPAN&gt;False&lt;/SPAN&gt;
	&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;cOccs&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Inventor&lt;/SPAN&gt;.&lt;SPAN&gt;ComponentOccurrences&lt;/SPAN&gt;
	&lt;SPAN&gt;Private&lt;/SPAN&gt; &lt;SPAN&gt;WithEvents&lt;/SPAN&gt; &lt;SPAN&gt;evMiniToolbar&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Inventor&lt;/SPAN&gt;.&lt;SPAN&gt;MiniToolbar&lt;/SPAN&gt;
	&lt;SPAN&gt;Private&lt;/SPAN&gt; &lt;SPAN&gt;WithEvents&lt;/SPAN&gt; &lt;SPAN&gt;evInteractionEvents&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Inventor&lt;/SPAN&gt;.&lt;SPAN&gt;InteractionEvents&lt;/SPAN&gt;
	&lt;SPAN&gt;Private&lt;/SPAN&gt; &lt;SPAN&gt;WithEvents&lt;/SPAN&gt; &lt;SPAN&gt;evSelectEvents&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Inventor&lt;/SPAN&gt;.&lt;SPAN&gt;SelectEvents&lt;/SPAN&gt;
	&lt;SPAN&gt;Private&lt;/SPAN&gt; &lt;SPAN&gt;WithEvents&lt;/SPAN&gt; &lt;SPAN&gt;evKeyboardEvents&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Inventor&lt;/SPAN&gt;.&lt;SPAN&gt;KeyboardEvents&lt;/SPAN&gt;
	&lt;SPAN&gt;Private&lt;/SPAN&gt; &lt;SPAN&gt;WithEvents&lt;/SPAN&gt; &lt;SPAN&gt;evComboBox&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Inventor&lt;/SPAN&gt;.&lt;SPAN&gt;MiniToolbarComboBox&lt;/SPAN&gt;
	&lt;SPAN&gt;Sub&lt;/SPAN&gt; &lt;SPAN&gt;Main&lt;/SPAN&gt;
		&lt;SPAN&gt;oApp&lt;/SPAN&gt; = &lt;SPAN&gt;ThisApplication&lt;/SPAN&gt;
		&lt;SPAN&gt;oDoc&lt;/SPAN&gt; = &lt;SPAN&gt;ThisDoc&lt;/SPAN&gt;.&lt;SPAN&gt;Document&lt;/SPAN&gt;
		&lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;TypeOf&lt;/SPAN&gt; &lt;SPAN&gt;oDoc&lt;/SPAN&gt; &lt;SPAN&gt;Is&lt;/SPAN&gt; &lt;SPAN&gt;AssemblyDocument&lt;/SPAN&gt; &lt;SPAN&gt;And&lt;/SPAN&gt; &lt;SPAN&gt;Right&lt;/SPAN&gt;(&lt;SPAN&gt;oApp&lt;/SPAN&gt;.&lt;SPAN&gt;UserInterfaceManager&lt;/SPAN&gt;.&lt;SPAN&gt;ActiveEnvironment&lt;/SPAN&gt;.&lt;SPAN&gt;DisplayName&lt;/SPAN&gt;, 8) = &lt;SPAN&gt;"Assembly"&lt;/SPAN&gt; &lt;SPAN&gt;Then&lt;/SPAN&gt;
			&lt;SPAN&gt;cOccs&lt;/SPAN&gt; = &lt;SPAN&gt;oDoc&lt;/SPAN&gt;.&lt;SPAN&gt;ComponentDefinition&lt;/SPAN&gt;.&lt;SPAN&gt;Occurrences&lt;/SPAN&gt;
			&lt;SPAN&gt;oCommandManager&lt;/SPAN&gt; = &lt;SPAN&gt;oApp&lt;/SPAN&gt;.&lt;SPAN&gt;CommandManager&lt;/SPAN&gt;
			&lt;SPAN&gt;evMiniToolbar&lt;/SPAN&gt; = &lt;SPAN&gt;oCommandManager&lt;/SPAN&gt;.&lt;SPAN&gt;CreateMiniToolbar&lt;/SPAN&gt;
			&lt;SPAN&gt;evInteractionEvents&lt;/SPAN&gt; = &lt;SPAN&gt;oCommandManager&lt;/SPAN&gt;.&lt;SPAN&gt;CreateInteractionEvents&lt;/SPAN&gt;
			&lt;SPAN&gt;evSelectEvents&lt;/SPAN&gt; = &lt;SPAN&gt;evInteractionEvents&lt;/SPAN&gt;.&lt;SPAN&gt;SelectEvents&lt;/SPAN&gt;
			&lt;SPAN&gt;evSelectEvents&lt;/SPAN&gt;.&lt;SPAN&gt;AddSelectionFilter&lt;/SPAN&gt;(&lt;SPAN&gt;SelectionFilterEnum&lt;/SPAN&gt;.&lt;SPAN&gt;kAssemblyLeafOccurrenceFilter&lt;/SPAN&gt;)
			&lt;SPAN&gt;evSelectEvents&lt;/SPAN&gt;.&lt;SPAN&gt;WindowSelectEnabled&lt;/SPAN&gt; = &lt;SPAN&gt;False&lt;/SPAN&gt;
			&lt;SPAN&gt;evSelectEvents&lt;/SPAN&gt;.&lt;SPAN&gt;Enabled&lt;/SPAN&gt; = &lt;SPAN&gt;True&lt;/SPAN&gt;
			&lt;SPAN&gt;evMiniToolbarControls&lt;/SPAN&gt; = &lt;SPAN&gt;evMiniToolbar&lt;/SPAN&gt;.&lt;SPAN&gt;Controls&lt;/SPAN&gt;
			&lt;SPAN&gt;oView&lt;/SPAN&gt; = &lt;SPAN&gt;oApp&lt;/SPAN&gt;.&lt;SPAN&gt;ActiveView&lt;/SPAN&gt;
			&lt;SPAN&gt;evMiniToolbar&lt;/SPAN&gt;.&lt;SPAN&gt;Position&lt;/SPAN&gt; = &lt;SPAN&gt;oApp&lt;/SPAN&gt;.&lt;SPAN&gt;TransientGeometry&lt;/SPAN&gt;.&lt;SPAN&gt;CreatePoint2d&lt;/SPAN&gt;(&lt;SPAN&gt;oView&lt;/SPAN&gt;.&lt;SPAN&gt;Left&lt;/SPAN&gt;, &lt;SPAN&gt;oView&lt;/SPAN&gt;.&lt;SPAN&gt;Top&lt;/SPAN&gt;)
			&lt;SPAN&gt;evMiniToolbar&lt;/SPAN&gt;.&lt;SPAN&gt;ShowOK&lt;/SPAN&gt; = &lt;SPAN&gt;True&lt;/SPAN&gt;
			&lt;SPAN&gt;evMiniToolbar&lt;/SPAN&gt;.&lt;SPAN&gt;ShowOptionBox&lt;/SPAN&gt; = &lt;SPAN&gt;False&lt;/SPAN&gt;
			&lt;SPAN&gt;evMiniToolbarControls&lt;/SPAN&gt;.&lt;SPAN&gt;AddLabel&lt;/SPAN&gt;(&lt;SPAN&gt;"MainLabel"&lt;/SPAN&gt;, &lt;SPAN&gt;"Select occurrences."&lt;/SPAN&gt;, &lt;SPAN&gt;"Occurrences"&lt;/SPAN&gt;)
			&lt;SPAN&gt;evMiniToolbarControls&lt;/SPAN&gt;.&lt;SPAN&gt;AddNewLine&lt;/SPAN&gt;
			&lt;SPAN&gt;evMiniToolbarControls&lt;/SPAN&gt;.&lt;SPAN&gt;AddLabel&lt;/SPAN&gt;(&lt;SPAN&gt;"Selection:"&lt;/SPAN&gt;, &lt;SPAN&gt;"Selection"&lt;/SPAN&gt;, &lt;SPAN&gt;"Select Occurrences."&lt;/SPAN&gt;)
			&lt;SPAN&gt;evComboBox&lt;/SPAN&gt; = &lt;SPAN&gt;evMiniToolbarControls&lt;/SPAN&gt;.&lt;SPAN&gt;AddComboBox&lt;/SPAN&gt;(&lt;SPAN&gt;"Selection"&lt;/SPAN&gt;)
			&lt;SPAN&gt;evComboBox&lt;/SPAN&gt;.&lt;SPAN&gt;AutoHide&lt;/SPAN&gt; = &lt;SPAN&gt;False&lt;/SPAN&gt;
			&lt;SPAN&gt;evMiniToolbar&lt;/SPAN&gt;.&lt;SPAN&gt;Visible&lt;/SPAN&gt; = &lt;SPAN&gt;True&lt;/SPAN&gt;
			&lt;SPAN&gt;evInteractionEvents&lt;/SPAN&gt;.&lt;SPAN&gt;Start&lt;/SPAN&gt;
			&lt;SPAN&gt;Do&lt;/SPAN&gt;
				&lt;SPAN&gt;oApp&lt;/SPAN&gt;.&lt;SPAN&gt;UserInterfaceManager&lt;/SPAN&gt;.&lt;SPAN&gt;DoEvents&lt;/SPAN&gt;
			&lt;SPAN&gt;Loop&lt;/SPAN&gt; &lt;SPAN&gt;Until&lt;/SPAN&gt; &lt;SPAN&gt;bStop&lt;/SPAN&gt; = &lt;SPAN&gt;True&lt;/SPAN&gt;
			&lt;SPAN&gt;evInteractionEvents&lt;/SPAN&gt;.&lt;SPAN&gt;Stop&lt;/SPAN&gt;
			&lt;SPAN&gt;evMiniToolbar&lt;/SPAN&gt;.&lt;SPAN&gt;Delete&lt;/SPAN&gt;
		&lt;SPAN&gt;Else&lt;/SPAN&gt;
			&lt;SPAN&gt;MessageBox&lt;/SPAN&gt;.&lt;SPAN&gt;Show&lt;/SPAN&gt;(&lt;SPAN&gt;"This rule must be run in an Assembly Environment."&lt;/SPAN&gt;)
		&lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;If&lt;/SPAN&gt;
	&lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;Sub&lt;/SPAN&gt;
	&lt;SPAN&gt;Sub&lt;/SPAN&gt; &lt;SPAN&gt;evMiniToolbar_OnApply&lt;/SPAN&gt;() &lt;SPAN&gt;Handles&lt;/SPAN&gt; &lt;SPAN&gt;evMiniToolbar&lt;/SPAN&gt;.&lt;SPAN&gt;OnApply&lt;/SPAN&gt;
		&lt;SPAN&gt;evSelectEvents&lt;/SPAN&gt;.&lt;SPAN&gt;ResetSelections&lt;/SPAN&gt;
	&lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;Sub&lt;/SPAN&gt;
	&lt;SPAN&gt;Sub&lt;/SPAN&gt; &lt;SPAN&gt;evMiniToolbar_OnOK&lt;/SPAN&gt;() &lt;SPAN&gt;Handles&lt;/SPAN&gt; &lt;SPAN&gt;evMiniToolbar&lt;/SPAN&gt;.&lt;SPAN&gt;OnOK&lt;/SPAN&gt;
		&lt;SPAN&gt;bStop&lt;/SPAN&gt; = &lt;SPAN&gt;True&lt;/SPAN&gt;
	&lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;Sub&lt;/SPAN&gt;
	&lt;SPAN&gt;Sub&lt;/SPAN&gt; &lt;SPAN&gt;evMiniToolbar_OnCancel&lt;/SPAN&gt;() &lt;SPAN&gt;Handles&lt;/SPAN&gt; &lt;SPAN&gt;evMiniToolbar&lt;/SPAN&gt;.&lt;SPAN&gt;OnCancel&lt;/SPAN&gt;
		&lt;SPAN&gt;bStop&lt;/SPAN&gt; = &lt;SPAN&gt;True&lt;/SPAN&gt;
	&lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;Sub&lt;/SPAN&gt;
	&lt;SPAN&gt;Sub&lt;/SPAN&gt; &lt;SPAN&gt;evKeyboardEvents_OnKeyPress&lt;/SPAN&gt;(&lt;SPAN&gt;lKey&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Long&lt;/SPAN&gt;) &lt;SPAN&gt;Handles&lt;/SPAN&gt; &lt;SPAN&gt;evKeyboardEvents&lt;/SPAN&gt;.&lt;SPAN&gt;OnKeyPress&lt;/SPAN&gt;
		&lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;lKey&lt;/SPAN&gt; = 27 &lt;SPAN&gt;Then&lt;/SPAN&gt; &lt;SPAN&gt;evMiniToolbar_OnCancel&lt;/SPAN&gt;
		&lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;lKey&lt;/SPAN&gt; = 10 &lt;SPAN&gt;Then&lt;/SPAN&gt; &lt;SPAN&gt;evMiniToolbar_OnApply&lt;/SPAN&gt;
	&lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;Sub&lt;/SPAN&gt;
	&lt;SPAN&gt;Sub&lt;/SPAN&gt; &lt;SPAN&gt;evSelectEvents_OnPreSelect&lt;/SPAN&gt;(&lt;SPAN&gt;ByRef&lt;/SPAN&gt; &lt;SPAN&gt;PreSelectEntity&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Object&lt;/SPAN&gt;, &lt;SPAN&gt;ByRef&lt;/SPAN&gt; &lt;SPAN&gt;DoHighlight&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Boolean&lt;/SPAN&gt;, &lt;SPAN&gt;ByRef&lt;/SPAN&gt; &lt;SPAN&gt;MorePreSelectEntities&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Inventor&lt;/SPAN&gt;.&lt;SPAN&gt;ObjectCollection&lt;/SPAN&gt;, &lt;SPAN&gt;ByVal&lt;/SPAN&gt; &lt;SPAN&gt;SelectionDevice&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Inventor&lt;/SPAN&gt;.&lt;SPAN&gt;SelectionDeviceEnum&lt;/SPAN&gt;, &lt;SPAN&gt;ByVal&lt;/SPAN&gt; &lt;SPAN&gt;ModelPosition&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Inventor&lt;/SPAN&gt;.&lt;SPAN&gt;Point&lt;/SPAN&gt;, &lt;SPAN&gt;ByVal&lt;/SPAN&gt; &lt;SPAN&gt;ViewPosition&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Inventor&lt;/SPAN&gt;.&lt;SPAN&gt;Point2d&lt;/SPAN&gt;, &lt;SPAN&gt;ByVal&lt;/SPAN&gt; &lt;SPAN&gt;View&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Inventor&lt;/SPAN&gt;.&lt;SPAN&gt;View&lt;/SPAN&gt;) &lt;SPAN&gt;Handles&lt;/SPAN&gt; &lt;SPAN&gt;evSelectEvents&lt;/SPAN&gt;.&lt;SPAN&gt;OnPreSelect&lt;/SPAN&gt;
		&lt;SPAN&gt;PreSelectEntity&lt;/SPAN&gt; = &lt;SPAN&gt;PreSelectEntity&lt;/SPAN&gt;.&lt;SPAN&gt;OccurrencePath&lt;/SPAN&gt;.&lt;SPAN&gt;Item&lt;/SPAN&gt;(1)
	&lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;Sub&lt;/SPAN&gt;
	&lt;SPAN&gt;Sub&lt;/SPAN&gt; &lt;SPAN&gt;evSelectEvents_OnSelect&lt;/SPAN&gt;(&lt;SPAN&gt;ByVal&lt;/SPAN&gt; &lt;SPAN&gt;JustSelectedEntities&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Inventor&lt;/SPAN&gt;.&lt;SPAN&gt;ObjectsEnumerator&lt;/SPAN&gt;, &lt;SPAN&gt;ByVal&lt;/SPAN&gt; &lt;SPAN&gt;SelectionDevice&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Inventor&lt;/SPAN&gt;.&lt;SPAN&gt;SelectionDeviceEnum&lt;/SPAN&gt;, &lt;SPAN&gt;ByVal&lt;/SPAN&gt; &lt;SPAN&gt;ModelPosition&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Inventor&lt;/SPAN&gt;.&lt;SPAN&gt;Point&lt;/SPAN&gt;, &lt;SPAN&gt;ByVal&lt;/SPAN&gt; &lt;SPAN&gt;ViewPosition&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Inventor&lt;/SPAN&gt;.&lt;SPAN&gt;Point2d&lt;/SPAN&gt;, &lt;SPAN&gt;ByVal&lt;/SPAN&gt; &lt;SPAN&gt;View&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Inventor&lt;/SPAN&gt;.&lt;SPAN&gt;View&lt;/SPAN&gt;) &lt;SPAN&gt;Handles&lt;/SPAN&gt; &lt;SPAN&gt;evSelectEvents&lt;/SPAN&gt;.&lt;SPAN&gt;OnSelect&lt;/SPAN&gt;
		&lt;SPAN&gt;oEntity&lt;/SPAN&gt; = &lt;SPAN&gt;JustSelectedEntities&lt;/SPAN&gt;.&lt;SPAN&gt;Item&lt;/SPAN&gt;(1)
		&lt;SPAN&gt;sEntity&lt;/SPAN&gt; = &lt;SPAN&gt;oEntity&lt;/SPAN&gt;.&lt;SPAN&gt;Name&lt;/SPAN&gt;
		&lt;SPAN&gt;evSelectEvents&lt;/SPAN&gt;.&lt;SPAN&gt;AddToSelectedEntities&lt;/SPAN&gt;(&lt;SPAN&gt;oEntity&lt;/SPAN&gt;)
		&lt;SPAN&gt;oIcon&lt;/SPAN&gt; = &lt;SPAN&gt;ThisDoc&lt;/SPAN&gt;.&lt;SPAN&gt;Document&lt;/SPAN&gt;.&lt;SPAN&gt;BrowserPanes&lt;/SPAN&gt;.&lt;SPAN&gt;GetNativeBrowserNodeDefinition&lt;/SPAN&gt;(&lt;SPAN&gt;oEntity&lt;/SPAN&gt;).&lt;SPAN&gt;Icon&lt;/SPAN&gt;
		&lt;SPAN&gt;evComboBox&lt;/SPAN&gt;.&lt;SPAN&gt;AddItem&lt;/SPAN&gt;(&lt;SPAN&gt;sEntity&lt;/SPAN&gt;, &lt;SPAN&gt;"Occurrence"&lt;/SPAN&gt;, &lt;SPAN&gt;sEntity&lt;/SPAN&gt;, &lt;SPAN&gt;True&lt;/SPAN&gt;, &lt;SPAN&gt;oIcon&lt;/SPAN&gt;)
	&lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;Sub&lt;/SPAN&gt;
	&lt;SPAN&gt;Sub&lt;/SPAN&gt; &lt;SPAN&gt;evSelectEvents_OnUnSelect&lt;/SPAN&gt;(&lt;SPAN&gt;ByVal&lt;/SPAN&gt; &lt;SPAN&gt;UnSelectedEntities&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Inventor&lt;/SPAN&gt;.&lt;SPAN&gt;ObjectsEnumerator&lt;/SPAN&gt;, &lt;SPAN&gt;ByVal&lt;/SPAN&gt; &lt;SPAN&gt;SelectionDevice&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Inventor&lt;/SPAN&gt;.&lt;SPAN&gt;SelectionDeviceEnum&lt;/SPAN&gt;, &lt;SPAN&gt;ByVal&lt;/SPAN&gt; &lt;SPAN&gt;ModelPosition&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Inventor&lt;/SPAN&gt;.&lt;SPAN&gt;Point&lt;/SPAN&gt;, &lt;SPAN&gt;ByVal&lt;/SPAN&gt; &lt;SPAN&gt;ViewPosition&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Inventor&lt;/SPAN&gt;.&lt;SPAN&gt;Point2d&lt;/SPAN&gt;, &lt;SPAN&gt;ByVal&lt;/SPAN&gt; &lt;SPAN&gt;View&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Inventor&lt;/SPAN&gt;.&lt;SPAN&gt;View&lt;/SPAN&gt;) &lt;SPAN&gt;Handles&lt;/SPAN&gt; &lt;SPAN&gt;evSelectEvents&lt;/SPAN&gt;.&lt;SPAN&gt;OnUnSelect&lt;/SPAN&gt;
		&lt;SPAN&gt;evComboBox&lt;/SPAN&gt;.&lt;SPAN&gt;RemoveItem&lt;/SPAN&gt;(&lt;SPAN&gt;UnSelectedEntities&lt;/SPAN&gt;.&lt;SPAN&gt;Item&lt;/SPAN&gt;(1).&lt;SPAN&gt;Name&lt;/SPAN&gt;)
	&lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;Sub&lt;/SPAN&gt;
	&lt;SPAN&gt;Sub&lt;/SPAN&gt; &lt;SPAN&gt;evComboBox_OnItemRemove&lt;/SPAN&gt;(&lt;SPAN&gt;ByVal&lt;/SPAN&gt; &lt;SPAN&gt;oItem&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Inventor&lt;/SPAN&gt;.&lt;SPAN&gt;MiniToolbarListItem&lt;/SPAN&gt;) &lt;SPAN&gt;Handles&lt;/SPAN&gt; &lt;SPAN&gt;evComboBox&lt;/SPAN&gt;.&lt;SPAN&gt;OnItemRemove&lt;/SPAN&gt;
		&lt;SPAN&gt;evSelectEvents&lt;/SPAN&gt;.&lt;SPAN&gt;RemoveFromSelectedEntities&lt;/SPAN&gt;(&lt;SPAN&gt;cOccs&lt;/SPAN&gt;.&lt;SPAN&gt;ItemByName&lt;/SPAN&gt;(&lt;SPAN&gt;oItem&lt;/SPAN&gt;.&lt;SPAN&gt;InternalName&lt;/SPAN&gt;))
	&lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;Sub&lt;/SPAN&gt;
&lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;Class&lt;/SPAN&gt;&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;If this is something that's not possible in iLogic by either adding something in the Class or opening the Header and adding Imports or something else along those lines, then let me know and I'll add this to the Ideas forum.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you for your help.&lt;/P&gt;</description>
      <pubDate>Wed, 23 Mar 2022 13:07:04 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-ilogic/ilogicmini-toolbar-combo-box-list-item-icon-from-browser-node/m-p/11023771#M135820</guid>
      <dc:creator>pmartick</dc:creator>
      <dc:date>2022-03-23T13:07:04Z</dc:date>
    </item>
    <item>
      <title>Betreff: iLogicMini Toolbar Combo Box List Item Icon from Browser Node</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-ilogic/ilogicmini-toolbar-combo-box-list-item-icon-from-browser-node/m-p/11023901#M135823</link>
      <description>&lt;P&gt;Hello&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Add in the header section of your rule just&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="general"&gt;AddReference "stdole"&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 23 Mar 2022 13:48:46 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-ilogic/ilogicmini-toolbar-combo-box-list-item-icon-from-browser-node/m-p/11023901#M135823</guid>
      <dc:creator>Ralf_Krieg</dc:creator>
      <dc:date>2022-03-23T13:48:46Z</dc:date>
    </item>
    <item>
      <title>Re: iLogicMini Toolbar Combo Box List Item Icon from Browser Node</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-ilogic/ilogicmini-toolbar-combo-box-list-item-icon-from-browser-node/m-p/11023903#M135824</link>
      <description>&lt;P&gt;Just put this into the 'Header' of the rule:&lt;/P&gt;
&lt;LI-CODE lang="general"&gt;AddReference "stdole.dll"
Imports stdole&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If this solved your problem, or answered your question, please click &lt;SPAN&gt;&lt;STRONG&gt;ACCEPT SOLUTION&lt;/STRONG&gt;&lt;/SPAN&gt;.&lt;BR /&gt;Or, if this helped you, please click (LIKE or KUDOS) &lt;img class="lia-deferred-image lia-image-emoji" src="https://forums.autodesk.com/html/@7401B55A0A518861312A0F851CD29320/emoticons/1f44d.png" alt=":thumbs_up:" title=":thumbs_up:" /&gt;.&lt;/P&gt;
&lt;P&gt;If you want and have time, I would appreciate your Vote(s) for &lt;A href="https://forums.autodesk.com/t5/forums/recentpostspage/post-type/message/interaction-style/idea/user-id/7812054/" target="_blank"&gt;My IDEAS &lt;/A&gt; :bulb: or you can Explore &lt;A href="https://knowledge.autodesk.com/profile/LTSUSR7HXMSAE/articles" target="_blank"&gt;My CONTRIBUTIONS &lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 23 Mar 2022 13:50:25 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-ilogic/ilogicmini-toolbar-combo-box-list-item-icon-from-browser-node/m-p/11023903#M135824</guid>
      <dc:creator>WCrihfield</dc:creator>
      <dc:date>2022-03-23T13:50:25Z</dc:date>
    </item>
    <item>
      <title>Re: iLogicMini Toolbar Combo Box List Item Icon from Browser Node</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-ilogic/ilogicmini-toolbar-combo-box-list-item-icon-from-browser-node/m-p/11028800#M135931</link>
      <description>&lt;P&gt;Hopefully another easily answered question that's related.&amp;nbsp; How do I use other icons either found in Inventor or saved externally in the proper image format?&lt;/P&gt;</description>
      <pubDate>Fri, 25 Mar 2022 14:15:39 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-ilogic/ilogicmini-toolbar-combo-box-list-item-icon-from-browser-node/m-p/11028800#M135931</guid>
      <dc:creator>pmartick</dc:creator>
      <dc:date>2022-03-25T14:15:39Z</dc:date>
    </item>
    <item>
      <title>Re: iLogicMini Toolbar Combo Box List Item Icon from Browser Node</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-ilogic/ilogicmini-toolbar-combo-box-list-item-icon-from-browser-node/m-p/11028944#M135933</link>
      <description>&lt;P&gt;Hi &lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/10122697"&gt;@pmartick&lt;/a&gt;.&amp;nbsp; I believe that most (if not all) of the internal images within Inventor that we have access to from the Inventor API are in that same IPictureDisp format.&amp;nbsp; The document thumbnail is that format, and the ribbon tool buttons also use that same format for their large and small icons.&amp;nbsp; I used to use a VBA macro to extract the button icons from existing Inventor tool buttons, so that I could slightly alter them then reuse them as button icons for my own custom buttons, which ran some of my VBA macros.&amp;nbsp; I just used to save them out as .bmp files though.&amp;nbsp; It was much easier to do from VBA at the time than it was from iLogic.&amp;nbsp; However, I'm steering away from VBA as much as possible now though, due to the related security issues, which is why Inventor no longer installs the VBA Editor with Inventor.&amp;nbsp; You can also just create your own icon images from scratch though, if you are aware of the size restrictions, naming conventions, and file location requirements.&amp;nbsp; There are several other articles here in the forums, in users blogs, and else where about folks using various other software to generate tool button icon graphics. (&lt;A href="https://modthemachine.typepad.com/my_weblog/2008/11/creating-buttons-for-vba-macros.html" target="_blank" rel="noopener"&gt;Link1&lt;/A&gt;, &lt;A href="https://forums.autodesk.com/t5/inventor-ilogic-and-vb-net-forum/add-icon-for-button-ribbon/td-p/9186899" target="_blank" rel="noopener"&gt;Link2&lt;/A&gt;)&lt;/P&gt;</description>
      <pubDate>Fri, 25 Mar 2022 15:21:30 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-ilogic/ilogicmini-toolbar-combo-box-list-item-icon-from-browser-node/m-p/11028944#M135933</guid>
      <dc:creator>WCrihfield</dc:creator>
      <dc:date>2022-03-25T15:21:30Z</dc:date>
    </item>
    <item>
      <title>Betreff: iLogicMini Toolbar Combo Box List Item Icon from Browser Node</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-ilogic/ilogicmini-toolbar-combo-box-list-item-icon-from-browser-node/m-p/11029159#M135937</link>
      <description>&lt;P&gt;Hello&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The MiniToolbarComboBox.AddItem method needs an IPictureDisp for small (16x16px) and large (32x32px) Icon. If you display only small icons and the user had no possibility to switch to large icons, you do not need to add them.&lt;/P&gt;&lt;P&gt;Most parts of the conversion is "stolen" from the Autodesk Inventor Addin template for Visual Studio. There is for sure a cleaner, better and right way to do this, but I'm not experienced enough for it.&lt;/P&gt;&lt;P&gt;I have hard coded the path to the icon files. You'll need to change the path and add some checks if path exist, if there is an icon file and so on.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="general"&gt;AddReference "System.Drawing"
AddReference "stdole"
AddReference "System.Windows.Forms"

Class ThisRule
	Dim bStop As Boolean = False
	Dim cOccs As Inventor.ComponentOccurrences
	Dim oImageLarge As System.Drawing.Image
	Dim oImageSmall As System.Drawing.Image
	Dim oIconLarge As System.Drawing.Icon
	Dim oIconSmall As System.Drawing.Icon
	Dim oIPicDispLarge As stdole.IPictureDisp
	Dim oIPicDispSmall As stdole.IPictureDisp
	Private WithEvents evMiniToolbar As Inventor.MiniToolbar
	Private WithEvents evInteractionEvents As Inventor.InteractionEvents
	Private WithEvents evSelectEvents As Inventor.SelectEvents
	Private WithEvents evKeyboardEvents As Inventor.KeyboardEvents
	Private WithEvents evComboBox As Inventor.MiniToolbarComboBox
	Sub Main
		oApp = ThisApplication
		oDoc = ThisDoc.Document
		
		oIconLarge = New System.Drawing.Icon("C:\Temp\ico_Large_32x32.ico")
		oIconSmall = New System.Drawing.Icon("C:\Temp\ico_Small_16x16.ico")
		
		oImageLarge = oIconLarge.ToBitmap
		oImageSmall = oIconSmall.ToBitmap

		Dim myPict As New AxHostConverter
		oIPicDispLarge = myPict.GetIPictureDispFromImage(oImageLarge)
		oIPicDispSmall = myPict.GetIPictureDispFromImage(oImageSmall)


		'this call must be created, but is never used
		Dim myCallback As New System.Drawing.Image.GetThumbnailImageAbort(AddressOf ThumbnailCallback)

		If TypeOf oDoc Is AssemblyDocument And Right(oApp.UserInterfaceManager.ActiveEnvironment.DisplayName,  = "Assembly" Then
			cOccs = oDoc.ComponentDefinition.Occurrences
			oCommandManager = oApp.CommandManager
			evMiniToolbar = oCommandManager.CreateMiniToolbar
			evInteractionEvents = oCommandManager.CreateInteractionEvents
			evSelectEvents = evInteractionEvents.SelectEvents
			evSelectEvents.AddSelectionFilter(SelectionFilterEnum.kAssemblyLeafOccurrenceFilter)
			evSelectEvents.WindowSelectEnabled = False
			evSelectEvents.Enabled = True
			evMiniToolbarControls = evMiniToolbar.Controls
			oView = oApp.ActiveView
			evMiniToolbar.Position = oApp.TransientGeometry.CreatePoint2d(oView.Left, oView.Top)
			evMiniToolbar.ShowOK = True
			evMiniToolbar.ShowOptionBox = False
			evMiniToolbarControls.AddLabel("MainLabel", "Select occurrences.", "Occurrences")
			evMiniToolbarControls.AddNewLine
			evMiniToolbarControls.AddLabel("Selection:", "Selection", "Select Occurrences.")
			evComboBox = evMiniToolbarControls.AddComboBox("Selection")
			evComboBox.AutoHide = False
			evMiniToolbar.Visible = True
			evInteractionEvents.Start
			Do
				oApp.UserInterfaceManager.DoEvents
			Loop Until bStop = True
			evInteractionEvents.Stop
			evMiniToolbar.Delete
		Else
			MessageBox.Show("This rule must be run in an Assembly Environment.")
		End If
	End Sub
	Sub evMiniToolbar_OnApply() Handles evMiniToolbar.OnApply
		evSelectEvents.ResetSelections
	End Sub
	Sub evMiniToolbar_OnOK() Handles evMiniToolbar.OnOK
		bStop = True
	End Sub
	Sub evMiniToolbar_OnCancel() Handles evMiniToolbar.OnCancel
		bStop = True
	End Sub
	Sub evKeyboardEvents_OnKeyPress(lKey As Long) Handles evKeyboardEvents.OnKeyPress
		If lKey = 27 Then evMiniToolbar_OnCancel
		If lKey = 10 Then evMiniToolbar_OnApply
	End Sub
	Sub evSelectEvents_OnPreSelect(ByRef PreSelectEntity As Object, ByRef DoHighlight As Boolean, ByRef MorePreSelectEntities As Inventor.ObjectCollection, ByVal SelectionDevice As Inventor.SelectionDeviceEnum, ByVal ModelPosition As Inventor.Point, ByVal ViewPosition As Inventor.Point2d, ByVal View As Inventor.View) Handles evSelectEvents.OnPreSelect
		PreSelectEntity = PreSelectEntity.OccurrencePath.Item(1)
	End Sub
	Sub evSelectEvents_OnSelect(ByVal JustSelectedEntities As Inventor.ObjectsEnumerator, ByVal SelectionDevice As Inventor.SelectionDeviceEnum, ByVal ModelPosition As Inventor.Point, ByVal ViewPosition As Inventor.Point2d, ByVal View As Inventor.View) Handles evSelectEvents.OnSelect
		oEntity = JustSelectedEntities.Item(1)
		sEntity = oEntity.Name
		evSelectEvents.AddToSelectedEntities(oEntity)
		'oIcon = ThisDoc.Document.BrowserPanes.GetNativeBrowserNodeDefinition(oEntity).Icon
		evComboBox.AddItem(sEntity, "Occurrence", sEntity, True, oIPicDispSmall,oIPicDispLarge)
	End Sub
	Sub evSelectEvents_OnUnSelect(ByVal UnSelectedEntities As Inventor.ObjectsEnumerator, ByVal SelectionDevice As Inventor.SelectionDeviceEnum, ByVal ModelPosition As Inventor.Point, ByVal ViewPosition As Inventor.Point2d, ByVal View As Inventor.View) Handles evSelectEvents.OnUnSelect
		evComboBox.RemoveItem(UnSelectedEntities.Item(1).Name)
	End Sub
	Sub evComboBox_OnItemRemove(ByVal oItem As Inventor.MiniToolbarListItem) Handles evComboBox.OnItemRemove
		evSelectEvents.RemoveFromSelectedEntities(cOccs.ItemByName(oItem.InternalName))
	End Sub


	Public Function ThumbnailCallback() As Boolean
		Return False
	End Function

End Class

Class AxHostConverter
Inherits System.Windows.Forms.AxHost

Public Sub New()
	MyBase.New("{63109182-966B-4e3c-A8B2-8BC4A88D221C}")
End Sub

Public Function GetImageFromIPictureDisp(ByVal pictureDisp As stdole.IPictureDisp) As System.Drawing.Image
	Return MyBase.GetPictureFromIPicture(pictureDisp)
End Function

Public Function GetIPictureDispFromImage(ByVal image As System.Drawing.Image) As stdole.IPictureDisp
	Return MyBase.GetIPictureDispFromPicture(image)
End Function
End Class&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 25 Mar 2022 16:38:22 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-ilogic/ilogicmini-toolbar-combo-box-list-item-icon-from-browser-node/m-p/11029159#M135937</guid>
      <dc:creator>Ralf_Krieg</dc:creator>
      <dc:date>2022-03-25T16:38:22Z</dc:date>
    </item>
    <item>
      <title>Betreff: iLogicMini Toolbar Combo Box List Item Icon from Browser Node</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-ilogic/ilogicmini-toolbar-combo-box-list-item-icon-from-browser-node/m-p/11065441#M135968</link>
      <description>That's exactly what I needed. Although it's hard to believe it needs that much stuff to just get an icon.&lt;BR /&gt;However, for this line:&lt;BR /&gt;&lt;BR /&gt;'this call must be created, but is never used&lt;BR /&gt;Dim myCallback As New System.Drawing.Image.GetThumbnailImageAbort(AddressOf ThumbnailCallback)&lt;BR /&gt;&lt;BR /&gt;I don't get any errors when I comment out that line, is it just a sort of fault correction in case the .ico files can't be accessed?</description>
      <pubDate>Mon, 28 Mar 2022 11:39:18 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-ilogic/ilogicmini-toolbar-combo-box-list-item-icon-from-browser-node/m-p/11065441#M135968</guid>
      <dc:creator>pmartick</dc:creator>
      <dc:date>2022-03-28T11:39:18Z</dc:date>
    </item>
    <item>
      <title>Re: iLogicMini Toolbar Combo Box List Item Icon from Browser Node</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-ilogic/ilogicmini-toolbar-combo-box-list-item-icon-from-browser-node/m-p/11065450#M135969</link>
      <description>I tried looking into code to automatically extract the built-in icons, but I figure it's much easier to just use BeCyIconGrabber and just save them as .ico files somewhere safely.</description>
      <pubDate>Mon, 28 Mar 2022 11:41:52 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-ilogic/ilogicmini-toolbar-combo-box-list-item-icon-from-browser-node/m-p/11065450#M135969</guid>
      <dc:creator>pmartick</dc:creator>
      <dc:date>2022-03-28T11:41:52Z</dc:date>
    </item>
  </channel>
</rss>

