Originally Posted by
Irwin Jungreis
As far as I know, there is no parametric 3D modeling software that allows you to save from one version to an earlier version that
keeps the model live. That applies to mechanical CAD systems such as Pro/E, not just architectural systems.
Implementing such backward compatibility would be a very challenging technical problem. Remember, you not only need to convert new
objects into old objects , you need to convert new relationships between different elements into old relationships that work
approximately the same way. In every version there are many changes, including bug fixes, to how different elements behave when
other related elements change (e.g., wall joins and family parameters). Figuring out how to downgrade a set of elements with many
relationships between them in such a way that the downgraded elements will work correctly or even just not crash in the old software
(which has the bugs), is challenging. For the parametric systems with which I'm familiar just getting _forward_ compatibility to
work in all cases requires a very significant effort -- you fix a bug in the old software and then old projects that have the bug
built into them stop working.
The QA side of things would also be a nightmare. In order to test backward compatibility you'd need projects built using the new
version of the software. Keep in mind that the new version of the software is changing up until pretty close to the release date.
Also keep in mind that building a sample project of any reasonable complexity takes months. You also need a set of projects that
cover every possible combination of every kind of element with all different configurations and relationship. It isn't enough to
simply upgrade the old projects and then see if they can be downgraded -- to properly test things you'd need to build projects using
the new version.
I'm not saying that backwards compatibility is impossible. But, it would be a significant tax on all new development and bug fixing
in the software (forever, not just one time), and it would add at least months to the QA time needed to get the software out every
release. All this effort and time could instead be used to make other improvements to the software.