What causes Revit® data corruption?
The causes of data corruption are varied, but to understand them we need to clearly understand what corruption is.
Element Level Corruption:
- When elements are modified within a model, the modification can affect other objects which interact with the first modified object. This modification can then impact other elements, as the change is propagated through the model.
- Each element is expected to have certain properties/parameters, and these can be modified in certain pre-defined ways.
- When element gets into a state so that it has properties that it shouldn’t, or it has values that it shouldn’t, the element can be said to be corrupt.
- A corrupt element may be able to exist within the project without leading to errors so long as Revit does not try to modify or refresh/redraw/interact with this element.
- Once Revit tries to modify the object and the unexpected state of the element causes the modification to fail, then Revit will try to recover. If the failure is severe or there are too many corrupt elements then the current operation will fail, and Revit will then try to restore to a prior state (undo the current operation), if this fails then an error is presented to the user.
Project Level Corruption:
Beyond element level corruption, there can also be more wide spread project corruption such as:
- Missing elements: Instead of bad data within elements, one or more elements referenced in the model are missing.
- Data streams with bad or blank information: The RVT format is compressed, and when the model is opened the data streams are decompressed into the %TMP% folder. If Revit can’t decompress the data, or deserialize the stored data into memory, Revit will be unable to open the model.
- Unreadable data streams: If the model is not fully or properly written to the storage media, then Revit may not be able to read one or more of the data streams as it tries to decompress the model.
The symptoms of element and project corruption can be varied, including but not limited to: Read more of this post