论文部分内容阅读
Revit Architecture是目前主流的三维建筑设计软件。本文结合Revit三维建筑模型和WebGL显示技术,研究了通过WebGL在浏览器端重建并显示Revit Architecture三维建筑模型、实现模型关联属性查询和基于Revit“族”对象的LOD显示优化技术。本文的主要工作内容如下:(1)通过Revit API实现了Rvt模型格式到JSON格式中间文件的转换。Rvt文件中包含建筑模型的几何信息和属性信息,私有数据格式不被Web端支持。利用Revit API将几何信息和属性信息分离,将几何信息转换成OBJ格式文件,分别存储在JSON文件的几何区域和属性区域。通过WebGL解析JSON文件实现显示目的。(2)实现了利用WebGL图形库的三维显示技术在浏览器端快速建模的功能。利用objLoader库提取JSON中的模型文件,传递给WebGL在浏览器端重新绘制模型文件,同时通过设置Canvas窗口大小,重新布局显示位置实现了移动设备上快速绘制模型功能,为基于移动设备上的三维建筑数据应用奠定基础。(3)提出了基于统一标识符(UID)关联的Rvt文件几何数据和属性数据关联方法,实现了PC端、移动端浏览器端属性查询和显示功能。Rvt文件中的几何数据和属性数据分别存储在JSON文件的OBJ模型区域和属性区域,通过UID关联模型对象和属性对象。点击浏览器端模型对象获取二维坐标,利用z轴距离视点最近的特定获得三维对象UID,遍历UID实现模型数据和属性数据的关联并显示在浏览器端。通过数据关联,可以实现在浏览器端对建筑模型的形状查看和属性查看,可以满足用户脱离Revit软件,在移动设备上查看模型的要求。(4)结合Revit“族”特点,提出基于“族”实例化对象的最小包围球半径和距离比值的LOD显示优化算法。Revit API以“族”的实例化对象为单元处理Rvt模型,每个实例化对象以子集的形式存储在OBJ文件中,用最小包围球算法计算子集的包围球半径和球心坐标,利用半径和球心到视点距离的比值作为LOD算法的控制条件,减少了场景渲染的Revit“族”实例化对象的渲染数量。