Transfer Revit Phases from a linked model after binding and is bound.

Use Dynamo to Transfer Phase Data to Bound Revit Models

This workflow was created as a request from @PhilosophyBIM on Twitter

The issue arises when binding a linked model in Revit. If you’ve ever had the task of binding a linked model that contains crucial Phase data,  you’ve run into the issue where the Phase data is lost regardless of whether the phase exists in the destination model or not. I hope this helps eliminate some tedious work for some Revit users out there!

In a nutshell, this process temporarily stores the phase data (e.g., “Existing” and “New Construction”) in Project Parameters. Once those values are stored, a second graph sets the Revit Phase data based on those parameter values.

Note that this was tested on a simple project with only two phases. Please experiment on a detached model when trying out this workflow.

Download the Dyn’s:

Dynamo - Transfer Revit Phases to Bound Model (229 downloads)

The Workflow

1. In your source model (the model to be bound), create three project parameters.

Use Project Parameters to transfer Revit phase data to bound linked Revit models

These parameters are used to temporarily store the data from Revit’s built-in Phase parameters. The third parameter is an added bonus of storing Element ID’s for simplified quality control.

  1. SourcePhaseCreated
  2. SourcePhaseDemolished
  3. SourceElementId (this is used for QC if so desired)

Use your judgement on which categories to apply the parameters to, but for the sake of simplicity, I would recommend to apply these project parameters to all categories.

2. Create a 3D View that hides all annotations.

You’ll want to make sure that all model elements are visible, because the Dynamo graph collects elements to apply the Parameter values based on what is visible in the active view.

3. Run “Store Element Id and Phase Parameters.dyn”.

Set Parameter values for mapping Revit Phases from linked model after binding

This graph does the work of taking the Phase data from Revit’s built-in parameters and storing their names in the parameters that were created in step one.

While doing some testing, I noticed that Dynamo throws an error because there are certain model elements that cannot be assigned a project parameter. As far as I could tell, this didn’t cause an issue with mapping the Phases to the Parameter values, but please let me know if you find otherwise while using these graphs.

Note that if you would like to double check that the parameters were correctly populated, I recommend to build schedules with the Phases and Parameter values and either run a quick scroll to visually check or run some conditional formatting for larger models.

4. Link the source model into your destination model, bind it, and ungroup the bound elements.

After the model is bound,  note that the Project Parameters created in step one and the values populated from step two have been brought into your destination project.

We aren’t done yet, notice that the Project Parameter values do not match the Phase parameter values.

Parameters used to store Phase data from after linked model bind

5. Finally, run “Set Phase from Phase Parameters.dyn”.

Set Revit Phase after binding linked model from Parameter Value

This graph sets your elements to the proper Phases based on the parameter values populated in step three.

Take some time to look at this graph before you run it, especially if you have more complex phasing in your project. I’ve grouped each set of nodes so that in the instance that you have several Phases, it should be easy to figure out how to duplicate the groups and create a group for as many phases as your project contains.

Download the Dyn’s:

Dynamo - Transfer Revit Phases to Bound Model (229 downloads)

Hope this helps!

Please let me know if this graph does or doesn’t work for you. All feedback is appreciated!


  • KingNosmo

    I had high hopes for this graph. Looked like exactly what I needed.
    And it did help a lot.
    HOWEVER: My Rooms didn’t get their original Phases.
    I initially thought that was because I started with a 3D View & Rooms are not visible.
    So I tried from a Floor Plan & still didn’t work.
    Then I discovered you’re Filtering out elements without a Demolished Phase, so I removed that filter.
    Sadly, that didn’t work either.
    Is the “Phase Created” parameter for Rooms not available to the API ?