Just as the title indicates, there is a way to 'sort of' change the functionality of an InputListBox, so that you can select multiple items at once.  No more having to use a regular InputListBox within a loop, and only being able to select a single item each time until you escape the loop.

How I discovered this:

When you type in "InputListBox" into an iLogic rule, you see that it originates from something called "RunDialogs".  If you type "RunDialogs" directly into an iLogic rule, you see that it represents a Module (Link, Link) within "Autodesk.iLogic.RunTime".  When you type "Autodesk.iLogic.RunTime" directly into an iLogic rule, you can see that it represents a Namespace (Link, Link).  With that in mind, I started from that directly typed in "Autodesk.iLogic.RunTime" (unquoted), I could see many other things under it.  By the way, you may also notice "GenericRadioButtonBox" listed in there too, which as you might have guessed, is the similar way to get more control over an iLogic InputRadioBox.  Those are usually created from the ""Autodesk.iLogic.RunTime.RunDialogs" Module, but you can initiate your own, using the similar path mentioned above.  The obvious advantage here is that you can access the actual System.Windows.Forms.Form Type object that these utilize, and therefore you can further manipulate them, as you wish.  Of course you could just create your own Windows Form directly within the iLogic rule, but that may require a lot more code (and knowledge about that extra code).

Anyways, here is an example of the code used to create a custom Function I have used directly within iLogic rules, that presents an InputListBox, but allows you to select multiple items.  You will notice however, the 'Return' Type being an IEnumerable(Of Object), since the InputListBox returned a single Object.  I also did not include the last two options Height & Width, because I have never used them, and have never seen anyone else use them, but feel free to copy this and create your own variations that to include them.  Or maybe don't even use it as a custom Function, and just use the Function's interior code directly if you want, but the input parameters are in a different order, not that it matters.

Sub Main
	Dim oList As New List(Of String) From {"Option 1", "Option 2", "Option 3" }
	Dim Selected As IEnumerable(Of Object) = MultiSelectListBox("Select Some", oList, Nothing, "Multi-Select InputListBox", "My List")
	If Selected.Count = 0 Then
		MessageBox.Show("Nothing was selected from the list.", "None Selected",MessageBoxButtons.OK, MessageBoxIcon.Asterisk)
		For Each Item In Selected
			MessageBox.Show("You selected:  " & Item.ToString, "Selected", MessageBoxButtons.OK, MessageBoxIcon.Asterisk)
	End If
End Sub

Function MultiSelectListBox(Optional Instructions As String = vbNullString, Optional Items As IEnumerable = Nothing,
Optional DefaultValue As Object = Nothing, Optional Title As String = vbNullString, Optional ListName As String = vbNullString) As IEnumerable(Of Object)
	Using oILBD As New Autodesk.iLogic.Runtime.InputListBoxDialog(Title, ListName, Instructions, Items, DefaultValue)
		Dim oLB As System.Windows.Forms.ListBox = oILBD.Controls.Item(0).Controls.Item(2)
		oLB.SelectionMode = System.Windows.Forms.SelectionMode.MultiSimple
		Dim oDlgResult As System.Windows.Forms.DialogResult = oILBD.ShowDialog()
		Dim oSelected As IEnumerable(Of Object) = oLB.SelectedItems.Cast(Of Object)
		Return oSelected
	End Using
End Function

This is why you could never find an InputListBox or InputRadioBox anywhere else within the general vb.net stuff...because they are unique to the iLogic ApplicationAddIn, and its associated resources.

(Original text was posted on the Inventor "iLogic and VB.net Forum")

About the Author:

Wesley Crihfield is a design Engineer, design Automation and CNC Programmer. He has been working in engineering since the early 2000's. He primarily uses Autodesk Inventor Professional but has used Autodesk software since AutoCAD R12, back in the mid 90's. He's also very active on the Autodesk forums and even won prices for the number of solutions he contributed to others. More about can be found on his profile page


By the way, just to give credit where credit is due...

Although I had explored into similar aspects & resources before, I was inspired to dig further into these uniquely iLogic forms by a post here on this forum a while back by @Curtis_Waguespack at this thread that I participated in. https://forums.autodesk.com/t5/inventor-ilogic-and-vb-net-forum/delete-forms-with-rule/m-p/11187072/... Kudos to Curtis for being an inspiration to me and many others over the years.


Autodesk Inventor, Vault, Git, C#, vb, .net, php HTML, css, js


University computer science.
HBO Mechanical engineer.
MBO Fine mechanics.


Programmer and Mechanical engineer at Kelvion
(2016 - 20..)

Mechanical engineer at Strukton
(2009 - 2016)

Mechanical engineer at RDG-engineering
(2007 - 2009)

CNC Programmer at VMC
(2005 - 2007)

volunteer at Taizé


Objectgeoriënteerd analyseren en ontwerpen, Objectgeoriënteerd programmeren in Java, Webapplicaties: de clientkant, Databases, Security Aware Programmer, Web Security Specialist