The ‘too many missing elements’ error in Revit is one of the vexing errors in Revit where the application does not allow one to open the project file. In this case, the file is practically unrecoverable and the team will have to consider restoring a previous version of the file. However, it is possible to ‘catch’ this error earlier when it appears only when the ‘audit’ option is checked by opening the file. If corrupted, one can prevent the corruption from progressing to the next stage that renders the file unusable.
This article assumes that one is able to open the model and that the error appears when ‘Audit’ is checked when opening the model. If the user is unable to open the model, then there is not much one can do other than restoring a backup or opening a support case with Autodesk and attempting to recover the file.
The following are two images of the error message from the original Autodesk Article.
There are two published solutions to this Revit Error thus far:
- Locate the missing elements and copy / paste them from a previous (un-corrupted) version of the model as described in this help document: http://help.autodesk.com/view/RVT/2017/ENU/?guid=GUID-9AFAAE6B-4107-4478-8B80-53467FE118DB.
- The second option (that seems to work) is to restore an archive.
Why Don’t Existing Solutions Always Work?
The first solution usually may not always work for two reasons:
The journal file does not provide a complete listing of all the element IDs involved in the error.
Secondly, Element Ids are not constant between Revit sessions. This means that the element ID for an element missing today will not be the ID for the same element from an archive saved yesterday. This effectively makes the copy/paste solution practically impossible to implement.
The second solution is to simply find an archive of the project that will open without the error (when Audit is Checked) and restore the same. This may result in loss of work and is not anybody’s favorite option.
This solution was originally suggested by Autodesk Support. The premise is that this error is caused by one or more corrupt family components. So the solution was to extract all families from an un-corrupted archive of the model (un-corrupted here means that one is able to open the model with ‘Audit’ check) and load those families into the corrupted version of the model. This overwrites all family definitions including corrupted versions and thus rids the project of the error. Family extraction from a project can be automated by going to Save As > Library > Family.
The challenge with this approach is that large projects contain hundreds of families and loading them manually becomes tedious unless the process is automated either by using a macro or a dynamo script.
This solution attempts to identify and delete the corrupt family or families by editing (Right-click > Edit in the Project Browser) each family in the corrupt project individually until Revit crashes when attempting to edit the corrupt family. Once again the challenge with this process is the tediousness of the task given the number of families in the project. However, a free tool like the Family Size Reporter does the exact same action automatically.
When the crash does eventually occur, the user can note the last family that was being processed by the Addin to identify the corrupt family (boxed in red in the image below). The tool does require a bit of babysitting in order to clear any errors that may pop up during processing.
Once the corrupt family has been identified, one can re-open the model and locate the family in the Project Browser and delete the family (via right-click) or replace the family with an un-corrupted version from the library or archive. The project should open without error after this (when ‘Audit’ is checked). If there is more than one corrupt family, this process will have to repeat as many times as needed since each run of the Family Size Reporter will crash when processing first available corrupt family.
The advantage of this solution is that there is no need for an archive and the recovery process is relatively quicker with minimal loss of work.