Batch add shared parameters from .txt file with UI.MultipleInputForm ++

Adding shared parameters to a project is often a pain because you can’t batch add them through Revit’s user interface.

There are a couple of workarounds online that do the job just fine, like adding them using the “Transfert project standards” function. There are also great nodes from Archi-Lab to create/add shared parameters.

But, I decided that I’d offer an alternative that allows you to use the “.txt” shared parameters file and gives a simple user interface, where you can pick the parameters you’re interested in and set the categories the parameters are bound to. It’s important to be able to refer to a “.txt” file because it’s the only way to ensure the parameters will have the same GUID, and that they will actually be “shared”.

To add the shared parameters, I had to improve my UI.MultipleInputForm node and create a new set of nodes:

Latest additions to Data-Shapes package

Here’s a presentation of those new nodes:

1. Shared Parameter nodes:

  • Shared Parameters from .txt file returns the Revit parameters contained in a shared parameter .txt file and their names.


  • Add Shared Parameter(s) from txt uses the parameters extracted by “SharedParameters from txt file” node .



  • Categories list gives out the inputs that will later on help create a ListView or DropDown input in a form.

categories list.JPG

2. UI Nodes :

You can find all the information about the new UI nodes on this post.

New form creation nodes in Data-Shapes package

3. Batch add shared parameters from .txt file with Data-Shapes nodes and DynamoPlayer:

Now, let’s put all these new elements together to create a workflow allowing to add several shared parameters from a .txt file with a user friendly interface :




you can download the .dyn here .

This workflow is a good exemple of how you can set the Input list for the new UI.MultiInputForm++ node.




Please comment if you need extra information or if you have ideas for improvements!

36 thoughts on “Batch add shared parameters from .txt file with UI.MultipleInputForm ++

  1. Hi,
    Nice work ! Your nodes are really impressive !

    I have one idea for a future node: I’m currently creating a dynamo program to add filter in different views with override graphic setting, is it possible to get a new input node for color? In fact the best way is to get the exact same menu as the revit override graphic… I try my best to do it but I’m a new python user so it’s difficult 🙂

    There is actually a Archi-lab package node to do it (View.OverrideGraphicsSetting) but I don’t want my users to enter data for color instead of clicking on a color of their choices.

    I would be very happy if I can help you 🙂

    By the way, I’m a french BIM Manager in Nantes 🙂

    Have a nice day 🙂

    Liked by 1 person

    1. Hi Adrien, first of all thanks for the kind words!
      One way to add a color selection input to the form would be to add a button that opens the Revit API ColorSelectionDialog, the same method John Pierson’s UI.ColorPicker uses :

      It could also be integrated in the Form, but that would be a little more work .. 🙂

      But either way, I think it’s a good idea. I will work on it a little more and publish it on the package .


  2. Thank you.
    now i can use it.
    my next question is, the “parametergroup list” is in Revit diferent for Instance and for typ-parameter. did you think about to choose the special groups? after i load the parameter in the project, the groupnames are not filled when i try to edit the parameter later, but they are sort in right groups. – only


  3. Is there a way to only use the nodes for adding Parameters from the Shared Parameter file and adding multiple categories to a parameter?

    For now when I’m using the nodes it is only possible when a Parameter gets only one category


    1. Hi Pascal,
      you can add a parameter to multiple categories by feeding the “Add parameter(s) from txt” node a list of categories :

      don’t hesitate to ask on the forum if you need further help.


      1. Is it possible to do it by an Excel Sheet? Now I’m using an Excelsheet to make the Shared Parameter File.
        Because I’m using an Excel Sheet I have lists in lists.



      2. Yes it is possible. But Excel gives you strings, you need to find a way to get the categories by their name which is possible with Category.ByName node. If you post a screenshot of what you have so far on the forum I’ll be glad to hepl.


  4. I relish, cause I discovered just what I used to be taking a look for. You’ve ended my 4 day lengthy hunt! God Bless you man. Have a great day. Bye dgefeeebaeef

    Liked by 1 person

    1. Hi Emily,
      I’m affraid the latest update of the package messed a little with thi input nodes of the UI.MultipleInputForm++ node. I think replacing the existing UI.MultipleInputForm++ node by a new one (not copy-pasted) will solve your problem.


  5. Hi !

    I have had run the script correctly . But the problem is that the parameter that I loaded doesnt appear in the selected Category . I tried to loaded manually but appears the revit window : The selected parameter has already been added.

    Then I have look into Project Parameters and click modify . I have notice that the parameter is loaded with the right group parameter but not with the Category which I selected to be loaded . The selected category doesnt appear in the Category list .

    Have a good day!


    1. Hi Elaine,
      sorry for the very late reply!
      I have a couple of questions that will help me narrow down the issue:
      -What version of the package are you using?
      -Are your packages located in the default location?


  6. I downloaded the .dyn. Looks to be plug and play. I pointed to my shared parameters file. Selected categories, parameters, and group. Returns 0 parameters added. Help Please.


  7. Hi Mostafa! Your script looked very promising and I hope I can get it running.
    But right now I m trying without any luck )
    I’m using Revit 2017.2.3, Dynamo and Data-Shapes 2017.9.3
    I tryed to use dyn-files that you have uploaded previously, but script was running without any results (without warnings either).
    So I built it from scratch according to the image that was posted by you. All nodes I took from 2017.9.3 package. Then I got the first window where I could choose file with shared parameters, but then the script failed with error: “Warning: One or more of the input types are not matching. Couldn’t find a version of __func_c3a36eb78fe84417b31eccc9fded769b that takes arguments of type (string,__array,__array,string,bool,bool,bool,__array,bool)”
    Here is the script:

    And image of run with warning:

    Could you please help me and tell what I am doing wrong?


    1. Hi Olga,
      thanks for your comment.
      Indeed, the updated of the package that occured after this workflow was posted brought the need to activate default values in some of the UI nodes.
      You did a good job rebuilding the workflow. The only problem you have is the value you feed the “Height_Optional” input of one of the UI.ListView Input nodes. You input “150” as a string. If you get rid of the quotes it’ll become a number and everything should run fine.
      Please let me know if that solves your issue.


  8. Great work as usual! Does this only work in the project environment? I have tried it in the family editor but it doesn’t seem to add the parameters.


Leave a Reply

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

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

Twitter picture

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

Facebook photo

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

Google+ photo

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

Connecting to %s