模型对比

背景

在实际项目中,由于需求变更经常需要对模型文件进行修改。为了便于用户了解模型在修改前后发生的变化,BIMFACE为您提供了模型在线对比功能,您可以利用在线的模型对比接口,通过简单的四个步骤实现模型在线对比

特别说明

模型对比是在BIMFACE云端进行的,通常需要5~10分钟。当模型对比完成后,BIMFACE能通知对比结果

前置条件

  • 您需要将修改前和修改后的模型上传到云端并转换成功以后才能发起模型对比;
  • 目前仅支持.rvt单文件的模型对比。

基本步骤

  1. 通过服务端API发起模型对比(对比前后模型文件的fileId);
  2. 等待云端对比任务执行;
  3. 对比完成后,在网页端通过调用JavaScript API实现差异模型的显示;
  4. 除了显示差异模型,还需要调用服务端API获取对比结果(包括新增、删除、修改的构件列表)。

对比流程

模型文件经过云端转换后,生成了BIMFACE定义的数据包。因此,要对比两个模型文件,实际上需要对比两个文件的数据包。如下图所示,文件B是文件A修改后的版本,对比完成之后,其结果包括两个部分:

  • 几何差异;
  • 变更构件及属性。

image

几何差异

几何差异,是指:文件A相对于文件B,到底在显示方面有哪些几何图形发生了变化。 为了清晰描述几何差异,我们通过举例来详细说明:

  • 假设文件A中,包含有5个构件,分别是:1、2、3、4、5;
  • 假设文件A经过修改后,保存为文件B,其包含的构件为:2、3、4'、5、6、7。

image

通过对比,我们知道:文件B相对于文件A,删除了构件 1,新增了构件 6、7,修改构件4变成了构件4'。 因此,经过对比计算,几何差异保留了如下信息:

  • 删除的构件1;
  • 修改构件中,修改前的构件4。

image

特别注意:在几何差异中,保留的是文件A相对于文件B的修改内容,因此,新增的构件6、7,和修改构件中修改后的构件4',并没有包含在几何差异内。

变更构件及属性

变更构件指的是文件B相对于文件A新增、删除和修改的构件;变更的属性指的是构件修改前后,其属性值发生的变化。 在对比完成之后,您可以调用2个服务端的API获取变更构件的列表,和修改前后发生变化的构件属性列表。

1. 获取模型对比结果

您可以调用服务端“获取模型对比结果”API,其返回的结果是一个列表,列表中详细列出了新增、删除、修改构件的ID和名称,并按照专业、类型进行了分组;

2. 获取修改构件属性差异

您可以调用服务端“获取修改构件属性差异”API,其返回的结果也是一个列表,仅针对修改的构件(不包含新增、删除的构件),是指对于一个修改过的构件ID,其修改前后分别新增、删除了哪些属性,或是属性值发生了变化。

如何显示模型对比结果的几何图形部分

  • 完整显示文件B;
  • 在此基础上显示几何差异;
  • 隔离未变更的构件(如:半透明未变更的构件);
  • 对新增、删除、修改前后的构件进行着色。 如下图,在界面中呈现的构件,应该表达为如下结果:

image