UI.MultipleInputForm ++ Update

Hi everyone. It’s been a while since I last posted. I’ve been caught up in other projects that I’m currently developing – can’t wait to share with the comunity! But, recently I’ve focused back on the UI tools of the Data-Shapes package. The community’s reception of Data Shapes UI tools has been overwhelmingly positive, and it has been a true delight to see people getting creative with them and coming up with uses that I never though of.


Due to several great suggestions made by some of the users in the community (I’m looking at you Daniel Hurtubise), and a little of my own inspiration, I have made some additions and adjustments to the tool. This post is their introduction.

A Major update of the Revit element(s) selection input

The Revit element selection has been modified quite heavily (sorry if it messes up workflows :D), now you can apply a category filter to the selection! This means that the user will only be able to select specified categories. This lessens selection errors and ensures that the workflow works as intended. If you don’t feed the CategoryFilter input any information, the selection will have no filter:


If you don’t specify a cutom ButtonText, the button will display categories that can be selected to the user by default :


Here’s what happens when you use the selection filter (Doors and Windows is this example):

filtered seletion

The API only offers an interface to apply filters, which I used to create a category filter class. I think this is a very useful feature that is missing from OOTB nodes. I don’t think anyone has implemented this in a custom node so far, that’s why I also added a “Select Model Element(s) of category” node to the package, independently from the UI tools :


The other addition to the Revit element(s) selection input is the possibility to limit the selection to a single element. I added this because I received a lot of feedback saying that having to press the “Finish” button after selecting a single element was a waste of time and was very often forgotten. So you can now control that by setting the “SelectSingleElement” input to true (default value is false). It will then work like this:



Update of ListView

ListView inputs are still created and used in the exact same way. However, you’ll notice the presence of “Select All” and “Select None” buttons :


Link to Help

There is now an extra optional input to the UI.MultipleInputForm++ node. This was suggested by Andreas Dieckmann and I think it’s a great idea. You can feed it a url, a directory path or a file path. A little help hyperlink will then appear at the bottom of the form and clicking it will take you to the web page/directory or will open the file:

link to help

It can open all types of files. Here’s an example with a pdf.

link to pdf


New inputs types!

  • RadioButton input :

RadioButtons are what you need if you want the user to select one of many choices. It will display the list in a box and only one selection will be permitted. RadiobuttonsThe way to set the input up is similar to DropDown or ListView inputs : you must feed a list of keys and the matching list of values. The user will be shown the keys, and the form will return the associated value .

  • RadioButtonSlide Input : 

Those who have updated the package recently might have noticed the “UI.IntegerSlider Data”. It has been around for a little while, but it wasn’t quite complete yet. From now on the “UI.Slider Data” node can be used to create slider inputs on the form with more customization options. You can set the minimum and maximum values of your slider, the default value, and the step. It can be an integer or a double slider depending on the step you set, which I think is pretty cool 🙂slider


  • Image input :You can now add an image to the form! The input creation is very straightforward. Just feed it a file path and an image title (optional) and add it to the inputlist you give to the form. This input doesn’t return any value to the output list, like with the TextNote input.ImageInputThis input can be useful to give further indication/illustration of what the user is supposed to do. You can use all types of image formats, and even show animated gifs ! ImageInput


Hope you guys enjoy the update! Feel free to comment and share your thoughts, they’re how we improve 🙂

52 thoughts on “UI.MultipleInputForm ++ Update

  1. Great to see the new update. I really like radio buttons.

    What I did to do a select all is making a toggle with the text select all and than using an IF function. With the new function it will be probably much easier. Thanks a lot!

    Liked by 1 person

  2. Hey,
    I want to say thanks for your hard work again, and to ask you about an issue that I had.

    I’ve been experiencing slowness and slow-search in Dynamo after running the UI nodes (previous versions too), and the only way for me to solve this is to reboot Revit and Dynamo. Have you experienced this on your end at all? And do you know what may be causing this?

    Liked by 1 person

    1. Hi Richard,
      thanks for your message!
      I haven’t experienced slowness using the UI forms. Do you get the issue while working in manual mode? and does it get slow at the moment you place UI.MultipleInputForm++ on your graph ?


      1. Hey Mostafa,

        Yes I am running in manual mode, but seems to be getting the same in automatic as well. The problem occurs immediately after I run the UI.MultipleInputForm ++ node. 😦


      2. Just want to post an update that the problem was in fact due to the vdi connection in my office. Your node is working perfectly fine on a local computer!

        Liked by 1 person

  3. (same as last topic 😉 )

    But I think it had to do due the update to your latest version? I create a same form++ with the same inputs etc. … and voilà it works again .

    Does that make sense?

    Liked by 1 person

  4. this is making my graphs so much more user friendly – really great work

    one question/request – would it be possible for the UISelectModelElemements Data node to assume the Finish button has been clicked when selecting multiple elements at the time the Set Values button is pressed – if i’m forgetting to click Finish, I guarantee my teams will as well and having Revit crash when you forget is a bummer

    as a workaround, I’m having Dynamo force a local save before the execution of the UIForm

    again – great work

    Liked by 1 person

    1. Hi Greg,
      thanks !
      This issue has been raised multiple times and I decided to tackle it. During my research, I couldn’t find a way to “abort” the selection through the API. So what I did Is freez the form while the selection is being performed. That way, it will be very hard for the user to forget clicking the finish button! 🙂
      Check out how it looks like on this gif (Data-Shapes versoin 2017.01.210):
      I hope this will prevent crashig Revit! Please let me know how it works for you.


  5. Great work as always! 🙂

    I have one idea for a new node 🙂
    I wanted to use UI to check the warnings in my model. I find a way to isolate in 3D view elements displayed in warnings but what I really like to get is a node witch allow me to switch beetween warning so beetween group of element (like a Next and Previous button).

    I’m not really sure if there is a way to put this kind of loop in dynamo. Because I want to modify elements then switch to other group etc…

    Thanks for the return and have a nice day! 🙂

    Liked by 1 person

    1. Salut Adrien !
      Thanks for your message 🙂
      That’s a very interesting idea. I have been working on something similar but haven’t been able to complete it yet. The asynchronous way dynamo works makes it a little tricky.. But i’m pretty sure something can be done. If I manage to get it to work I’ll share it here 🙂
      Have a good one too !


  6. Hello! Great work here, i didn´t knew this website but it’s fantastic and helped me just now in my work. I’m a portuguese civil engineer student and i´m working on a BIM system that could give advantage information for quality control in situ. I need to export shared parameters information of doors and windows (for now) but it seems that i can only add one category to be analysed… is there any way or node that select all elements of multiple categories? by the way i’m a bit fresh about dynamo but i’m really enjoying discover new things, i’m learning by seeing tutorials and experimenting things that i see on websites or forums. Thank you for your time.

    Best regards,


      1. Hi!
        Not all categories, just 2 or 3, but i saw yesterday in a reply that you gave, the node “List.Join” so that question was solved! very nice, but now i have another question : is there a node that works when i try to export the values of instance and type parameters from a family? i tried Element.GetMultipleParametersbyName node but it seems that only export the instance parameters…

        Liked by 1 person

  7. Hi! Great Work!
    I would like to ask you if there is a way to arrange the forms on multiple columns to see more of them at once.
    I need many forms at once and placing them in a single column makes reading uncomfortable…
    Thank you!

    Liked by 1 person

    1. Hi Raffaele,
      thanks for your comment!
      displaying many forms at the same time is not possible at the moment. But there are ways to open forms in a sequence or to make a form scrollable. You should start a thread on the dynamo forum where you describe your usage case more specifically. It’ll help me provide better help.


  8. This is a great tool set. I’m curious if there is a way to eliminate the need to hit the button. This would be specifically helpful for use of the radio buttons where after one (or one of each group) has been selected, it can automatically complete. Please forgive me if you have already addressed this somewhere.


    1. Hi Alexander ,
      thanks for you comment and sorry for the late reply.
      What you describe could be done but I believe that it would probably be dangerous to not have a validation button. Do you have a specific use case where the validation button is a nuisance?


  9. Hi Mustafa,
    th new UI.Multi++ can not handle ColorInput’s anymore.

    Local variable “importcolorslection” referenced before assignment.


    1. Hi Sebastian,
      thanks for reporting this! I just fixed it in version 2017.06.19 of the package. Please let me know if it solves the issue for you .
      I’d also like to point out the fact that this input only works with revit 2017 or more recent.


  10. Hi there.

    It’s a very good work here. Thanks a lot for the nodes.

    A small bug: when run UISelectModelElemements Data node, click on button to open the selector mode, then we should select and validate the selection. A very good think. But if we don’t select anything, only open the selection mode, and click Cancel the Revit give and error. I’m not sure if only on my configuration receive an error or is a general one. Some time is needed to cancel the selection mode to temporary isolate or hide elements in view to me more easy the selection making. I’m wandering if the cancel (from Revit, not from dialog windows) button have a connection with the script or not.

    If you need the error details, let me know.


  11. I really like what this does for the user experience! Great work….
    Question, can the UI.FilePathData node be used to point to an excel file that Dynamo uses to read data from? I can”t seem to figure out how to make this work

    Liked by 1 person

  12. Hi, great work first of all, I love your Package!
    Just a comment about the UI.SelectModelElementsData node – it would be great if it could keep the order in which the elements were selected, instead of re-arranging it. It could be so useful when wanting to re-number things like rooms, doors, etc.


    1. Hey Monica, thanks for your message! You’re absolutely correct . So far the method used is PickObjects and it does not take the order into account. I’ll definitely think it could be useful to have another input that does. I’ll keep you posted


  13. i’m lost and not sure if this is the correct location for this inquiry. i’m looking for a workflow to export electrical panel schedules from revit 2017 to a xls file. this is a workaround because autodesk has not overcome the limitation or allowing panel load data to transfer between linked electrical models on a campus site.
    currently i’m using dynamo ExportPanelSchedulesToExcel.dyn but getting (3) “Custom node definition is not loaded!” errors.


  14. i’m lost and not sure if this is the correct location for this inquiry. i’m looking for a workflow to export electrical panel schedules from revit 2017 to a xls file. this is a workaround because autodesk has not overcome the limitation or allowing panel load data to transfer between linked electrical models on a campus site.
    currently i’m using dynamo ExportPanelSchedulesToExcel.dyn but getting (3) “Custom node definition is not loaded!” errors.


  15. Hey everyone!
    I installed the latest version of data-shapes package but there is no node called UI.MULTIPLEINPUTFORM ++ . I’m working with Revit 2019.


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.