|
今天的焦点就是浅析Inventor中Revit族文件输出方式的变化。Inventor从2014版本开始,具备了输出Revit族文件(.rfa)的功能,无论是最早期依靠igs,step等中间格式,还是之后以Autodesk独有的adsk格式实现Inventor和Revit的数据交换,现如今直接导出Revit自身的族文件,无疑使得两个软件之间的协作得到了进一步的提升。在收集了几个版本用户对于该功能的反馈后,我们在2018版本中做了颠覆性修改。
先从最直观的界面上看,2018以前的版本,Revit族文件的参数设定和文件类型选择在一个对话框,通过“导出建筑零部件”这一个命令打开。
2018版本中,原本对话框的内容被分割成了两部分,参数设定和文件类型选择各自有了独立的对话框。这样做的好处是,“编写建筑零部件”对话框中上一次填写的参数会被保留,若是连续导出相同参数的文件,就不需重新选择或填写。
为了和Revit 2018 的OmniClass编号和标题保持一致,Inventor2018扩充了这部分内容,如下左右两图分别是2016和2018版本的“零部件类型“对话框,展开“类别/类型”列表,可以发现多出了不少新类别。这些新类别同样被添加在Inventor2017.3 中。
新老版本最大的区别是输出Revit族文件的方法上。老版本的方法是调用RevitAPI将Inventor文件重建一遍。比如说Inventor里有一个特征是距离为20毫米的拉伸,那么实际上做得事情就是用RevitAPI在相同位置建一个相同参数的拉伸特征。所以既然是重建的模型,那么就会有特征和参数了。
下图是Inventor的一个模型,由扫掠和拉伸特征构成。
用Revit打开Inventor2017导出的.rfa文件,选择一个特征后可以看到菜单栏上“编辑拉伸”按钮亮起,通过修改参数表里的参数,或者拖拽图形上高亮的箭头,可以编辑该拉伸特征。
但并非是所有的Inventor模型都能如此顺利,完全不出错地转成.rfa文件,原因在于Inventor拥有更多的特征命令,这些特征是Revit无法复制出来的。现状是只有拉伸、旋转、扫掠三个特征可以导出,其他特征在转成.rfa文件的时候会全部丢失。而对于这三个特征,还要具体看特征的选项和草图的构成。拿拉伸特征举例,Inventor里的拉伸范围有多种,距离、到表面或平面、介于两面之间等,但是Revit只有距离这一种,所以像“到表面或平面”这种方式的拉伸就会导出失败了。拉伸的“求交集”也会导致失败。“锥度”被自动删除了所以不会导致转换失败,只是在Revit里打开后没有斜面。对于草图,只能是由直线和圆弧构成,且不能相交或重叠。总之,规则就是Revit本身就不能造出来的特征,在转换时就会失败。具体的失败原因,可以从转换报告里看到。
正因为有如此多的限制条件,所以完美的转换其实并不容易。即便使用了“识别Revit特征”功能去做特征转换的活儿,类似把“到表面或平面”换算成“距离”,可能依旧会有无法识别的特征存在。考虑到这个问题,再结合了用户的反馈,Inventor2018做出了改变,在保留建模特征和保留几何特征两者之间选择了后者,舍弃了原先用RevitAPI复制模型的方法,而是分别向Revit核心(即安装Inventor后可以在程序列表里发现的Autodesk Revit Interoperability of Inventor)传递出整个模型的几何特征和BIM信息,从而得到一个既是外形一致,又带有BIM信息的.rfa文件,损失就是Revit打开后无法编辑特征,选中后能看到是整体的一个块。
对于简单的Inventor零件,若是依然需要导出带特征的.rfa文件,则可以通过VBA来实现,在打开零件之后,在VBA里运行以下代码,就能在C:\temp得到一个.rfa文件了。
Sub export_native_rfa()
Dim oDoc As PartDocument
Set oDoc =ThisApplication.ActiveDocument
Dim oBIM As BIMComponent
Set oBIM = oDoc.ComponentDefinition.BIMComponent
Dim options AsNameValueMap
Set options =ThisApplication.TransientObjects.NameValueMap()
Calloptions.Add("ExportMethod", "NativeRevitFeatures")
CalloBIM.ExportBuildingComponentWithOptions("C:\temp\export withfeatures.rfa", options)
End Sub
资源地址: blog.silucg.com/revit/7226.html
|
|