Comparison
More detail about the Comparison functionality.
What is a Comparison?
A Night Runner project typically includes a Type File and one or more Project Files.
As multi-disciplinary projects progress, it can become increasingly difficult to keep things like Families, Types, Parameter Values consistent between Project Files and the Type File.
Night Runner's Comparison functionality allows you to compare in detail how the Type File and one or more Project Files differ.
What does the Comparison check for?
A Comparison scans the Type File and all Project Files listed in the Revit File List and checks the following:
Appearance Assets (report only, no synchronization)
Families
Fill Patterns
Grids (report only, no synchronization)
Images (monitoring)
Legends
Levels (report only, no synchronization)
Line Patterns
Links (monitoring)
Materials
Object Styles
Phases (report only, no synchronization)
Project Location (monitoring)
Project Parameters (report only, no synchronization)
Shared Parameters (report only, no synchronization)
Types
Units
View Filters
View Templates
Worksets
These 'differences' are then categorized into one of three buckets (or States, as they are referred to in the PowerBI report) :
Non-standard - when a 'thing' (check list above) is found in the Project File but not in the Type File.
Missing - when a 'thing' found in the Type File is not found in the Project File being checked.
Deviating - when the 'thing' is found in both, but are Deviating in some way (as indicated by the Name, ValueProjectFile & ValueTypeFile fields.
A Report file is created and saved in the location Reports directory when setting up your models for Comparison (see how to below).
Deviating Items in the Comparison
While non-standard and missing items are good to know, it is the deviating items and their differences that are the main focus of Night Runner. Element types and loadable families are a big chunk of a typical project's content. Even though types and families are very interlinked in Revit, we do two separate checks during the comparison process and thus see them as two separate classes of deviations. We had to use the word "class" (classification) to differentiate from "type" or "category", which are very common in Revit and to reduce ambiguity.
First the families in the project file are checked and their content and settings are compared to their counterparts in the type file. If any differences are found, then the family is reported and if sync is enabled, it is also pushed from the type file into the project file. In the report, you can tell that a deviating item is a family when its class is "Family" and when the item's family field is blank (a family is not nested under another family). For example:
It is very hard to tell if a change in a family is significant or not. As you know, by adding or removing just a single reference dimension, you can noticeably change the behavior and the quantities of a family. That is why we think it's best to do a push even if only a single family item is deviating.
Types are checked next. Their parameters and other unique properties (eg. wall and floor layers, wall sweeps and profiles, etc.) are compared. In the case that there are differences, it gets reported and if sync is enabled, they would get synced. In the report, their class would be "Type" and they will always have a parent family. Even system types like walls and stairs will have a system family that we can't access but can get the name of. For example:
If a loadable type has differences but its family is not detected as deviating, then only the type will get synced and the family will remain as is.
How to run a Comparison?
There are two main ways to run a Comparison; deciding which one to use depends on your requirements.
Method 1: Click 'Comparison' in the Night Runner ribbon
This is the simplest method. With your Project File open in Revit, assuming your Night Run Settings are correctly set in the Settings, you can simply click Comparison in the Night Runner ribbon.
If you have already set up the Revit Batch Processor (RBP) as detailed here, it's as easy opening up a new RBP window and clicking on Start. It should take around 30-60 seconds to perform a full Comparison, depending on the size of your models.
This is a quick and simple way to compare a Project File to a Type File. However, the limitations with this method are:
can only compare one Project File at a time,
you have to physically be inside a Revit session
cannot be scripted/ automated.
The second method overcomes these limitations.
Method 2: Comparison using the Revit Batch Processor
A detailed guide on how to set-up the Revit Batch Processor for use with Night Runner can be found here.
Using this method, we use the Revit FIle List .txt file to list all the Project Files we want to include within the Comparison. These Project Files must have their Settings set prior to running the Comparison, or you can use a single Settings file for all Project Files in the Comparison - this method is explained in more detail here.
Automating Method 2
Once you have run a Comparison successfully using Revit Batch Processor (RBP), we can export the settings and use the RBP Command Line Interface functionality to call the Comparison from a batch file (which can then be automated via a Windows Task Schedule. This workflow is shown in the gif below:
The .bat file we created is a simple one line script:
The first part points to the location where Revit Batch Processor is normally installed on your machine (you will need to update this if, for some reason, RBP is installed to a different location.
Next, we pass in the --settings_file variable with a string - the name of the BatchRvt Settings json file you exported from RBP. This assumes the settings file is in the same folder as your .bat file.
Scheduling the Comparison
When you have a .bat file, you can then Schedule its execution using the Windows Task Scheduler as shown below:
Next steps
Analytics - Comparison Reports can be viewed in the PowerBI file. If you're interesting in learning more about the Analytics included with Night Runner - read our tutorial here.
Last updated