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:

newnodes
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.

from-txt

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

add-shared

 

  • 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.

add-shared
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 :

workflow

 

 

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.

batch-add

 

 

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

59 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 :
      https://drive.google.com/open?id=0B9v9Y2txZ3IeOGJmc09UcG5HN0k

      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 .

      Like

      1. Hello Mostafa.
        I know this post is quite old now, but I want to ask if it’s possible to make a version of this, where instead of adding the parameters to the families in a project, the parameters are added to the opened family-files (.rfa) directly (by feeding « documents » instead of « families »)?
        This would be really helpful, as with your current graph you would have to save the changed families to files manually one by one. With a very large amount of families this would be very time consuming.

        Also it would be very good, if you could use lists of « ParameterGroups » and « Instance or Type – Parameter » (with the same length as the « Parameters(s) ») as inputs instead of only one each. So that different parameters can have different ParameterGroups and can be Instance or Type within one run.

        Thank you.

        Like

  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

    Like

  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

    Liked by 1 person

    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.

      Like

      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.

        Grtz

        Like

      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.

        Like

  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.

      Like

  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!
    Alejandro

    Like

    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?

      Like

  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.

    Like

  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 1.3.1.1736 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:
    https://drive.google.com/file/d/1gEYYkX2nKRSNRjYMWiccxdXojHk41943/view?usp=sharing

    And image of run with warning:
    https://drive.google.com/file/d/14EpwaZ0U2mm-kfrUNDmMhHPB0aEsMFKq/view?usp=sharing

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

    Like

    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.

      Like

  8. Hi,
    i don’t know why i have got this warning from last code block?
    Warning: Get.ValueAtIndex operation failed.
    index was out of range. Must be non-negative and less than the size of collection
    parameter name: index

    Like

  9. Hi Mostafa!

    Really good job, this script is so usefull!

    However, it works on dynamo 1.3.0.875 and not 2.0.1.5065…
    I am using the 1006207 script.

    After loading the .txt file and opening it, neither the shared parameters, nor the categories display.

    Do you know what the problem is?

    Thank you very much for your work!

    Liked by 1 person

    1. Hi Valentin,
      thanks for your comment 🙂
      The Data-Shapes package has been updated several times since this script was uploaded so there is one thing you need to do : Right click on all the inputs of the Data-Shapes nodes and make sure the default value is activated (you only have to do this once). This is described at the beginning of the latest blog post. Please let me know if this solves you issue.

      Like

      1. Just tried and it works very well! 🙂
        Thanks!

        However, another question :
        when you batched for the first time n shared parameters for given categories and, later, you want to add those shared parameters to a new category, the script doesn’t work for it

        Do you know where it comes from?

        Thanks a lot!

        Like

  10. Hi Mostafa,
    This is great! I downloaded the script and it wasn’t working at the beginning. However, I was able to make it work looking at the comments above.
    Thank you very much for sharing!
    Luis

    Like

  11. Hi,

    I have a problema whit the .dyn file when I execute it throgh Dynamo Player:

    1-I execute the dyn file with Dynamo Player and the first window appears. I select the shared parameter txt file and click « Set values »:
    https://drive.google.com/open?id=1P-iUtWujxuM49TdcUcYRB44x7685OLyc

    2-Dynamo Player shows « Run completed » but the other Windows do not appear and, obviously, the parameter are not created:
    https://drive.google.com/open?id=14HrV7ZvIW2d7zjg3s7DMG5gCZH-R32_M

    3-If we look Dynamo, the shared parameter are read by Dynamo, but there are an error later:
    https://drive.google.com/open?id=1lcccrPXBN_eIG9qJDnaijR4TqsHYe8nO

    Can you help me with this issue?

    Thnaks a lot!!!!

    Like

    1. Hi Alonso,
      Thanks for your message.
      You are describing the exact same issue as many people have in the previous comments (default values activation) , the solution to the issue has been given. Please try and let me know how it goes for you.

      Like

  12. Hi Data Shapes,
    First i appreciate your efforts for the created the dynamo script. it saves a lot time for me. i would like to ask you to one thing about creating parameter group names (PG). The parameterGroup list node woring through Revit.db link, i want to create a custom parameter group name is there any way please let me know. If its possible its very useful for me
    Thank you,
    Yugandhar

    Like

  13. Just download latest graph from comment above, (22 Aug 2019) and installed Data-Shapes package (2019.2.30).
    Most nodes are red and say ‘Custom Node not loaded’.
    When I look at Data-Shapes package most nodes are not in the package.
    -UI.FilePath Data
    -UI.MultipleInputForm++
    -UI.Listview Data
    -Categories list
    -SharedParameters from txt file
    -Add Shared Parameter(s) from txt

    Using Dynamo 2.0.3.0

    And what does « Right click on all the inputs of the Data-Shapes nodes and make sure the default value is activated » mean? When right clicking over a node I can’t see anything that resembles such a thing.

    Like

    1. Hi Anthony, thanks for your message. I believe the package didn’t install correctly. Can you make sure it’s downloaded? And that dynamo is pointing at the correct location for the packages? If you still get an issue you should start a thread on the dynamo forum and tag me.

      Like

      1. You were right. I installed your package on another computer and it worked without any tweaking (just bit, had to widen the UI box). Very rare for graphs off the internet.
        I have a lot of shared parameters which I have grouped within the shared parameter file to make it easier to find things. Your routine references builtin Revit parameter groups but not the custom ones in the shared parameter file.
        Is it possible to extract the custom groups along with the parameters or are custom groups designed only for use by the Revit shared parameter dialog?

        Like

  14. Hi Data Shapes team,
    Thanks for the tips but i have problem with your graph.
    I try it with « Revit 2019.2.1.1 » and « Dynamo Revit 2.0.2.6833 » but i have no good results and i don’t know why.
    I can choose the TxT. File but after, the categories are not good, Parameters rubric is empty.
    The ParametersGroup and the Instance parameter are OK.
    Can you help me please?
    Thank you very much

    Like

  15. Hey guys,
    wanted to use this definition and came up with, what i thought was a problem – when you load parameters that require a certain type, project information, or sheet, for instance, which require instance parameters 😉 , the parameter is loaded as type anyway, and is no longer modifiable …
    took me a while to figure out why this was happening !
    thanks for the graph though !

    Like

  16. Hi Data Shapes Team,

    Firstly may i thank you for sharing this method of populating via dynamo, its great work and you guys are a credit to the AEC industry by offering this in the spirit of collaboration.
    I am having a few issues in trying ti implement the graph, i have recreated the graph as the link seems to be no longer active, and the graph seems to function fully and executes through dynamo player. We are an MEP contractor so i would question if the graph works on MEP categories? We have tried to execute via various test projects with/without geometry loaded and using various shared parameter files. We are using Revit 2018.3 and dynamo 2.03.8811 and Data-Shapes package version 2019.2.33. We have tried all of the above suggestions without success, please can you assist.
    The graph seems to fail on the last node ‘Add Shared Parameter(s) from txt’, returning a null value
    Many thanks in advance

    Like

  17. I am very interested in using this dynamo file for one of the projects I am working on, but all of my values return null. The .dyn file attached here is not leading to a downloadable file, it says there is an error. I tried to create the script from the image, and these are the issues I am having. Can you send me the correct .rfa or explain how to fix my script? Thank you in advance!!

    Like

  18. Hello and thank you for this very very useful graph, i have been using it for while and it has saved me lots of time.
    What I am trying to find out is if it is possible to create a graph to do opposite. For example I open a titleblock revit family and by using dynamo, i export all the shared parameters to shared parameter file (text file).
    Is this possible in dynamo!? Thanks again

    Like

  19. Hello, I check the script and works amazing, but I would like to try the graph and used in Dynamo Player, but the link it doesn’t works. Can you help me with it?
    Thanks so much

    Like

  20. Hello and thank you very much for this useful post / dynamo graph and all the hard work you do developing all these nodes. We are very grateful for all your hard work.

    I was wondering if you /anyone is aware of a graph that can do opposite process. For instance you open a title block family, and with dynamo export all the shared parameters to the shared parameter txt file.
    I have seen couple of nodes by “Zhukoven” that reads the shared parameters, but can’t find a way to write them to the txt file and I don’t know python .
    will be thankful if someone could help.

    Like

Leave a reply to dylan peng Cancel reply

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