[摘要] 同是 欧特克 软件,为什幺AutoCAD软件能在新版本中另存为早期版本的格式,但 Revit 却不行。这里我尝试按我的理解为大家做一些解答,
同是 欧特克 软件,为什幺AutoCAD软件能在新版本中另存为早期版本的格式,但 Revit 却不行。这里我尝试按我的理解为大家做一些解答,希望能帮大家更好地了解Revit。大家都知道Revit有两个很重要的特点,一个是调整与几何体相关参数后,元素的几何形体会随之改变(此即参数化);另一个特点就是信息之间的关联性,例如修改一个墙上的门的宽度后,墙上对应门的开口宽度也会随之调整。这两个特性决定了Revit模型数据之间有很强的关联性。同时,在给Revit不断增加新功能或者改正错误的过程中,元素的属性列表会不断进行调整,例如新增、删除、修改等,有时甚至需要将一些元素的属性移到另一些元素上。而这些属性必然对应存储中的一个或多个字段,而对任何元素的的属性(字段)修改都必然需要修改文件结构,从而引起文件版本的升级。我们从官方得到的只是一些综合了很多小文件版本变化的大版本,在两个大文件版本(例如:2012->2013)实际上会包含很多个小文件版本。
对于不同文件版本,如果需要新Revit版本能保存老版本的文件,一个必要条件就是能通过新版本的数据内容还原老版本的数据内容(可能会有部分数据丢失,但假定这个大家都能接受)。当然还有一种可能,就是Revit保留几乎所有数据改动的代码逻辑,当需要保存到老版本时完全使用老版本处理数据的代码逻辑,但这个对Revit这样一个大系统来说无疑是一个巨大的负担(尤其是有部分的数据更改是为了修正老版本的错误,保留老版本逻辑即保留了错误的逻辑),大到欧特克绝不可能采用这样的方式。下面我们来看看是否有可能通过新版本的数据内容还原老版本的数据内容。举个例子:老版本中某个元素包含了两个属性字段A和B,都是整数值,在开发过程中根据用户反馈,这两个字段其实应该是字段C,还是整数值,它的值等于原字段A和B的和,即C=A+B。新文件版本中将没有A、B字段数据,为了保存为老版本,Revit需要能通过C得到A、B两个值,但这个实际上是不可能的。例如:C为5,A、B即使有正整数限制,仍然有1+4; 2+3;3+2;4+1几种不同组合。