1. Description

This node is the first step of the modification tracking. It takes 3 inputs :

  • DocumentA : Current document by default

  • DocumentB : The document you want to compare DocumentA against

  • Categories : List of categories you want the ModificationTracker to take into account

The code of this node uses the elements’ GUIDs to determine whether they are existing, new or deleted. It will return a report of the modifications and lists of the existing, new and deleted elements. The ExistingElements Data output is the data you’ll need to initiate the geometry and metadata comparisons between DocumentA and DocumentB.

2. Workflow

These nodes were created to serve the following workflows (I make use of UI.MultipleInputForm++ and Dynamo Player in order to make them as user friendly as possible ).

2.1 Visualize geometry changes:

This workflow will prompt the user to select the linked model to compare the current model against, the cotegories to track and the override colors for changed, unchanged, and new elements.

Check Geometry changes between two indices of a same model

To test this workflow, I have created a “Dummy” Revit file with some walls and colums, then I moved some of these columns and walls and saved it as a new version. I have tried the workflow on a “real” model with over 2000 elements and the performance was still pretty good.

2.2 Vizualise parameter value changes:

This workflow works in a very similar way to the previous one except it tracks parameter value modifications instead of geometric modifications.

Check Parameter Value changes between two indices of a same model

As a test, I have two versions of a same model where only some text parameter values have been changed on a wall and two columns.

2.3 Vizualise geometry and parameter value changes:

This workflow allows to track parameter value changes as well as geometric changes. It creates a form that prompts the user to select the linked file to take into account, the categories, and all the override colors.

Check All Changes between two indices of a same model