Introducing BIM One’s first pack of Dynamo scripts for Parameters

Posted on April 9, 2019 by Jean-Marc Couffin
Category: Technical

Introducing BIM One’s first pack of Dynamo scripts for Parameters

Over the past few years at BIM One, we have developed quite an expertise with Dynamo (if we do say so ourselves!), allowing us to design more efficiently and automate boring tasks in Revit. We created an in-house toolbar awhile back, that our BIM specialists use for more productive delivery of our BIM services.

Dynamo BIM Community ❤️

One of Dynamo’s biggest strengths is its vibrant community. Dynamo’s forum, active Dynamo users like archi-lab, Bad Monkeys , data|shapes, and all the global Dynamo User Groups have been quality sources of inspiration and learning. All these resources are developed by enthusiasts, coders / designers / engineers / crazy architects. All share their experimentation, and most of them free of charge. Today, it's our turn to give back to the community.

Pack 01

Parameters

We’re going to describe some of the problems the pack is looking to solve. Don’t care and just want to see the goods? Skip ahead to the descriptions of the 3 scripts.

With this first script pack, our goal is to resolve several recurring problems related to the use of Revit Parameters:

  • Global parameters - We don’t think anyone encounters zero problems managing and monitoring the correct use of global parameters. This trouble often stems from the fact that parameters are linked to elements by instance or by type in the model. For example, you might have two elements of the same family and of the same type; one may have a global parameter linked, while the other may not be linked.
  • How many times did you get stuck because you could not use a parameter in a filter, or in a schedule? One of the tricks is to transfer data from a "non-accessible" parameter to another parameter that is “accessible”; read on to see how our new script helps with this.
  • Copy the data from an element in a linked model into an element from the current model: The accuracy of the data being integrated into BIM is a major factor as to its final quality. Many of us duplicate (hopefully temporarily 😬) certain elements of a model from one discipline to another. For example, it’s pretty common to model lighting fixtures to coordinate their positions, to make 3D renderings, or to quantify them to study the impact of the choice of lighting fixtures.

Script anatomy

Hierarchy of information

All of BIM One’s Dynamo scripts are structured in a systematic way to make it easier for users to understand:

The different groups correspond to the standard progression of a script: input data, constraints, an interface that interrogates inputs and constraints, actions on data or geometry.
Figure 1.0 The different groups correspond to the standard progression of a script: input data, constraints, an interface that interrogates inputs and constraints, actions on data or geometry and monitoring.

Interface

All scripts have an interface when needed (with thanks to our friends at data|shapes).

Dependencies

We worked hard to develop our scripts with as few dependencies as possible to make deployment and maintenance straightforward. By dependencies, we mean custom nodes that need to be downloaded for the script to be functional.

Languages

Our scripts are bilingual: English / French. BIM One is headquartered in Quebec, where both languages coexist. The first section of each script starts with a Python script that queries the language of the Revit interface and conditions the text of the interface.

Pack #1 - Parameters

Script #1 - BIM1_MapGlobalParameters

With this script you will be able to:

Link a global parameter to all Revit elements in one or more categories.

The complete Map Global Parameters script
Figure 2.0 The complete Map Global Parameters script.

5-step process:

  1. Choose the categories of elements that contain the parameter you want to link,
  2. Select the type of parameter: Type or Instance,
  3. Select the parameter of the categories concerned,
  4. Select the global parameter to link,
  5. A dialog box tells you how many items have been processed (or not).

Warnings:

  • Make sure it is possible to associate the parameter in question.
  • All type or instance parameters are listed, but not all can be associated. Check that both parameters are the same type: text with text, material with material, etc.




Script #2 - BIM1_MapParameters

With this script you will be able to:

  • Copy the data of a parameter applied to several categories, while adding a prefix or a suffix or a specific separation character.
  • Bonus: add a prefix or suffix to the data of an already-filled parameter.
The complete Map Parameters script
Figure 3.0 The complete Map Parameters script

5-step process:

  1. Select affected item categories with source data
  2. Select the source parameter
  3. Select the parameter to which you want to copy the data
  4. If necessary, fill in the prefix, suffix, and separator fields. N.B.: If empty, only the source data will be transferred.
  5. Select the composition mode of the transferred data:
    • Prefix + separator + data + separator + suffix
    • Prefix + data + suffix
    • Prefix + separator + data
    • Prefix + data
    • Data + separator + suffix
    • Data + suffix
    • Data

The script will return the number of items processed.

Warnings:

  • All (types of) parameters are not equivalent or transposable. You have to respect their characteristics, like units. Thus, a text parameter can not be transferred in a number parameter, however the opposite is feasible. A material does not transfer in a yes / no parameter, etc. you understand the principle!
  • You can transfer data from multiple categories, but only if the setting is applied to all families in a category. Otherwise, you will not be able to correctly transfer data from or to this parameter for the families in question.
  • The script is also able to transfer the name of the workset or construction phase to a text parameter




SCRIPT #3 - BIM1_LinkedItemData2CurrentFileItemData

With this script you will be able to:

  • Transfer the data of a single element present in a linked file to an element of the active file.
The full script Linked Item Data 2 Current File Item Data
Figure 4.0 The full script Linked Item Data 2 Current File Item Data

5-step process

  1. Select linked file with TAB + Click
  2. Select the linked file item that interests you
  3. Select the parameter containing the data that interests you
  4. Select the item in which you want to copy data
  5. Select the parameter in which you want to copy the data


Go further

One can imagine, from this same script, to create a routine that would interrogate all the elements of a given category in a linked file, to recover their respective origins, to compare them with the elements of the same category in the current file and to transfer the data in these elements after comparing their positions.

Upcoming scripts

We can not wait to release our next Dynamo Script Pack. The second pack should consist of file cleanup tools.

If you have any questions about these scripts, please do not hesitate to contact us on dynamo@bimone.com. If you'd like to receive the latest news, sign up here to our monthly newsletter.

Warnings

  • These scripts are distributed free of charge by BIM One Inc. They have all been tested and used by our specialists before being released. However, Dynamo, like computing is not an exact science, some scripts may not work as expected on your computers or in your projects. We can not be held responsible for your use of it. Obviously, we will try to correct any problems or answer your questions as much as possible and according to our availability. Our goal is to follow up once a week.
  • Like any Dynamo script, it's essential to understand that manipulations on a file can cause an unwanted result: Always save your file or a copy before proceeding.
  • In order to have a correct result, it is necessary to close and reopen Dynamo every time you use the same script on the same file.


Jean-Marc Couffin
BIM Specialist

By clicking Sign Up, I agree that I have read and accepted the Privacy Policy.