Why is it that AutoCAD software allows saving files in formats compatible with earlier versions, while Revit, despite also being an Autodesk product, does not? Here, I will share some insights based on my understanding to help clarify this difference and improve everyone’s comprehension of Revit.
It’s well-known that Revit has two key features. First, when parameters related to geometry are adjusted, the shape of the elements changes accordingly—this is known as parameterization. Second, there is a strong correlation between pieces of information. For instance, if you modify the width of a door on a wall, the corresponding door opening width on that wall updates automatically. These characteristics create a highly interconnected data structure within a Revit model.
As new features are added or bugs fixed in Revit, the attributes of elements are frequently adjusted—attributes may be added, deleted, or modified. Sometimes, attributes even need to be moved from one element to another. These attributes correspond to one or more fields in the file storage. Changing these fields means altering the file structure, which leads to file version upgrades. Officially, only major versions are announced, but in reality, each large version (for example, from 2012 to 2013) contains numerous smaller file version changes within it.
For different file versions, if a new Revit release were to support saving files in old formats, it would need to recreate the old version’s data from the new version’s data. While some data loss might be acceptable, this restoration is a necessary condition. Alternatively, Revit could theoretically keep all the legacy code logic for previous versions and use it when saving to an older format. However, this approach would be an enormous burden for such a complex system, especially since some data changes were made specifically to fix errors in earlier versions. Retaining old logic would mean preserving those errors, which is not feasible for Autodesk.
Let’s consider whether it’s even possible to reconstruct old data from new data. Imagine an older file version where an element had two integer attributes, A and B. Later, based on user feedback, these were replaced by a single attribute C, which equals the sum of A and B (C = A + B). In the new file version, attributes A and B no longer exist. To save back to the old format, Revit would need to derive A and B from C. However, this is impossible because multiple combinations can yield the same sum. For example, if C is 5, A and B could be 1 + 4, 2 + 3, 3 + 2, or 4 + 1, assuming only positive integers. There’s no way to determine the original values uniquely.














Must log in before commenting!
Sign Up