My previous post about Revit performance highlighted the need for precise feedback from user about starting and synchronizing time. This is important when dealing with many users, with potentially different configuration and performance. In this case, these loading times can alert you soon enough of a problem with a model.
Having feedback from every user is also important, since you need to detect quickly if any user is having more difficulty to open a file than the average.
You can also compare file size progression with loading time to establish and check your set of good practices for keeping Revit models powerful.
To be more accurate and systematic with these measures, I create a small piece of code to log every opening, synchronizing and closing of Revit model for multiples users.
On startup, the application subscribe to the events triggered on opening, synchronizing or closing a model.
Subscribing to the starting event and the ending event allow me to track down the time taken by each task.
Afterward, each event handler measure the time taken to perform the task, along with other properties related to the Revit file like its name, its path, if it is workshared, and so on.
For example, to log the opening of a model:
Here, the LogReccord class allow us to store the information retrieved in the event handler. Once these information are stored, it is pretty easy to collect them and write them down to a csv file.
It is now possible to quickly create very precise graph displaying opening time of different model, compare them and show their evolution along time
The next step should be to send these information to a shared SQL database in order to retrive data from every users. We should have this way a company-wide tool for keeping track of Revit performance.