模型对比可以对两个文件/模型进行差异性分析,确定两个文件/模型之间构件的几何和属性差异,包括增加的构件、删除的构件和修改的构件。 模型对应可以用于进行文件/模型的版本对比。

几何对比

几何数据的对比的粒度为构件级,即只要构件的某一部分几何数据或材质发生改变,就认为整个构件发生变化。

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

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

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

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

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

属性对比

属性对比的粒度为构件的属性级,即对两个文件中的相同ID的构件挨个属性值进行对比。

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

1. 获取模型对比结果

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

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

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

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

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

下面介绍BIMFACE提供的服务端API来获取模型对比的所有结果。

请求地址:GET https://api.bimface.com/data/v2/comparisons/{comparisonId}/diff

说明:分页获取模型对比结果

参数:

请求 path(示例):https://api.bimface.com/data/v2/comparisons/1136906400211168/diff

请求 header(示例):"Authorization: Bearer dc671840-bacc-4dc5-a134-97c1918d664b"

HTTP响应示例(200):

 {
"code" : "success",
"data" : {
"data" : [ {
"categoryId" : "-2001320",
"categoryName" : "framework",
"diffType" : "CHANGE",
"elementId" : "",
"elementName" : "250 x 600 mm",
"family" : "framework 1",
"followingFileId" : "",
"id" : "",
"previousFileId" : "",
"specialty" : "civil"
} ],
"page" : ,
"total" :
},
"message" : ""
}

特别说明

  该接口是提供分页查询对比结果的。如果把参数 page(当前页面索引)设置为1,把参数 pageSize(每页记录数) 设置为 In32.MaxValue,即可一次性获取所有对比结果。

  该接口默认每页记录数为50。

C#实现方法:

 /// <summary>
/// 获取模型对比的所有结果
/// </summary>
/// <param name="accessToken">【必填】令牌</param>
/// <param name="compareId">【必填】对比ID</param>
/// <param name="elementName">构件名称</param>
/// <param name="family">族名称</param>
/// <returns></returns>
public ModelCompareDiffResponse GetModelCompareDiffAll(string accessToken, long compareId, string elementName = "", string family = "")
{
return GetModelCompareDiff(accessToken, compareId, elementName, family, , Int32.MaxValue);
}

调用了分页查询的方法 GetModelCompareDiff(),实现如下:

 /// <summary>
/// 分页获取模型对比结果
/// </summary>
/// <param name="accessToken">【必填】令牌</param>
/// <param name="compareId">【必填】对比ID</param>
/// <param name="elementName">构件名称</param>
/// <param name="family">族名称</param>
/// <param name="page">页码。默认第1页</param>
/// <param name="pageSize">每页记录数。默认50</param>
/// <returns></returns>
public virtual ModelCompareDiffResponse GetModelCompareDiff(string accessToken, long compareId,
string elementName = "", string family = "",
int page = , int pageSize = )
{
// GET https://api.bimface.com/data/v2/comparisons/{comparisonId}/diff
string url = string.Format(BimfaceConstants.API_HOST + "/data/v2/comparisons/{0}/diff", compareId);
if (page <= )
{
page = ;
} if (page <= )
{
page = ;
} url += "?page=" + page;
url += "&pageSize=" + pageSize; if (elementName.IsNotNullAndWhiteSpace())
{
url += "&elementName=" + elementName;
}
if (family.IsNotNullAndWhiteSpace())
{
url += "&family=" + family;
} BimFaceHttpHeaders headers = new BimFaceHttpHeaders();
headers.AddOAuth2Header(accessToken); try
{
ModelCompareDiffResponse response; HttpManager httpManager = new HttpManager(headers);
HttpResult httpResult = httpManager.Get(url);
if (httpResult.Status == HttpResult.STATUS_SUCCESS)
{
response = httpResult.Text.DeserializeJsonToObject<ModelCompareDiffResponse>();
}
else
{
response = new ModelCompareDiffResponse
{
Message = httpResult.RefText
};
} return response;
}
catch (Exception ex)
{
throw new Exception("[分页获取模型对比结果]发生异常!", ex);
}
}

方法的返回结果类ModelCompareDiffResponse如下:

 /// <summary>
/// 分页获取模型对比结果的响应类
/// </summary>
public class ModelCompareDiffResponse : GeneralResponse<PaginationModelCompareDiff>
{ } public class PaginationModelCompareDiff
{
/// <summary>
/// 模型对比差异类数组
/// </summary>
[JsonProperty("data", NullValueHandling = NullValueHandling.Ignore)]
public ModelCompareDiff[] Data { get; set; } /// <summary>
/// 当前页码
/// </summary>
[JsonProperty("page", NullValueHandling = NullValueHandling.Ignore)]
public int Page { get; set; } /// <summary>
/// 总页数
/// </summary>
[JsonProperty("total", NullValueHandling = NullValueHandling.Ignore)]
public int Total { get; set; }
} /// <summary>
/// 模型对比差异类
/// </summary>
public class ModelCompareDiff
{
/// <summary>
/// 对比差异构件所属类别ID。样例 : "-2001320"
/// </summary>
[JsonProperty("categoryId", NullValueHandling = NullValueHandling.Ignore)]
public string CategoryId { get; set; } /// <summary>
/// 对比差异构件所属类别名称。样例 : "framework"
/// </summary>
[JsonProperty("categoryName", NullValueHandling = NullValueHandling.Ignore)]
public string CategoryName { get; set; } /// <summary>
/// 对比差异构件差异类型。 NEW、DELETE、CHANGE
/// </summary>
[JsonProperty("diffType", NullValueHandling = NullValueHandling.Ignore)]
public string DiffType { get; set; } /// <summary>
/// 对比差异构件ID。样例 : "296524"
/// </summary>
[JsonProperty("elementId", NullValueHandling = NullValueHandling.Ignore)]
public string ElementId { get; set; } /// <summary>
/// 对比差异构件名称
/// </summary>
[JsonProperty("elementName", NullValueHandling = NullValueHandling.Ignore)]
public string ElementName { get; set; } /// <summary>
/// 对比差异构件的族名称。样例 : "framework 1"
/// </summary>
[JsonProperty("family", NullValueHandling = NullValueHandling.Ignore)]
public string Family { get; set; } /// <summary>
/// 对比差异构件来源构件ID。样例 : "0213154515478"
/// </summary>
[JsonProperty("id", NullValueHandling = NullValueHandling.Ignore)]
public string Id { get; set; } /// <summary>
/// 对比差异构件变更文件ID,即(当前)变更后的文件ID。样例 : "1136893002033344"
/// </summary>
[JsonProperty("followingFileId", NullValueHandling = NullValueHandling.Ignore)]
public string FollowingFileId { get; set; } /// <summary>
/// 对比差异构件来源文件ID,即 (历史)变更前的文件ID。样例 : "0213154515478"
/// </summary>
[JsonProperty("previousFileId", NullValueHandling = NullValueHandling.Ignore)]
public string PreviousFileId { get; set; } /// <summary>
/// 对比差异构件所属专业。样例 : "civil"
/// </summary>
[JsonProperty("specialty", NullValueHandling = NullValueHandling.Ignore)]
public string Specialty { get; set; }
}

代码中使用的 HttpManager 类请参考我的博客文章《C# HTTP系列 HttpWebRequest 与 HttpWebResponse》。

测试

测试代码:

 /// <summary>
/// 获取模型对比结果(所有)
/// </summary>
protected void btnGetModelCompareDiffAll_Click(object sender, EventArgs e)
{
txtResult.Text = string.Empty; long compareId = txtCompareID.Text.ToLong();
IModelCompareApi api = new ModelCompareApi();
ModelCompareDiffResponse response = api.GetModelCompareDiffAll(txtAccessToken.Text, compareId); txtResult.Text = response.SerializeToJson(true);
}

测试结果:

该结果列表中详细列出了新增、删除、修改构件的ID和名称,并按照专业、类型进行了分组。完整的对比结果如下:

 {
"code": "success",
"message": null,
"data": {
"data": [
{
"categoryId": "-2001000",
"categoryName": "橱柜",
"diffType": "CHANGE",
"elementId": "",
"elementName": "4500_Kitchen Island",
"family": "4500_Kitchen Island",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2001000",
"categoryName": "橱柜",
"diffType": "CHANGE",
"elementId": "",
"elementName": "4500_Kitchen Island_DW",
"family": "4500_Kitchen Island_DW",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000080",
"categoryName": "家具",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Bar Chair",
"family": "Bar Chair",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000080",
"categoryName": "家具",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Bar Chair",
"family": "Bar Chair",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000080",
"categoryName": "家具",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Bar Chair",
"family": "Bar Chair",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000080",
"categoryName": "家具",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Bar Chair",
"family": "Bar Chair",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000080",
"categoryName": "家具",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Bar Chair",
"family": "Bar Chair",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000080",
"categoryName": "家具",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Bar Chair",
"family": "Bar Chair",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000080",
"categoryName": "家具",
"diffType": "CHANGE",
"elementId": "",
"elementName": "W1500XD400XH530",
"family": "Cabinet 1",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2001160",
"categoryName": "卫浴装置",
"diffType": "CHANGE",
"elementId": "",
"elementName": "5000L 3500x900x1860",
"family": "DC_Tankworks_PLM_5000L",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2001160",
"categoryName": "卫浴装置",
"diffType": "CHANGE",
"elementId": "",
"elementName": "5000L 3500x900x1860",
"family": "DC_Tankworks_PLM_5000L",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000080",
"categoryName": "家具",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Dining Chair (3)",
"family": "Dining Chair (3)",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000080",
"categoryName": "家具",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Dining Chair (3)",
"family": "Dining Chair (3)",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000080",
"categoryName": "家具",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Dining Chair (3)",
"family": "Dining Chair (3)",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000080",
"categoryName": "家具",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Dining Chair (3)",
"family": "Dining Chair (3)",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000080",
"categoryName": "家具",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Dining Chair (3)",
"family": "Dining Chair (3)",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000080",
"categoryName": "家具",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Dining Chair (3)",
"family": "Dining Chair (3)",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000080",
"categoryName": "家具",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Dining Chair (3)",
"family": "Dining Chair (3)",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000080",
"categoryName": "家具",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Dining Chair (3)",
"family": "Dining Chair (3)",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2001160",
"categoryName": "卫浴装置",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Standard",
"family": "Lavatory-TOTO-Luminist_Rectangle_Vessel_LLT151",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2001160",
"categoryName": "卫浴装置",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Standard",
"family": "Lavatory-TOTO-Luminist_Rectangle_Vessel_LLT151",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2001160",
"categoryName": "卫浴装置",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Standard",
"family": "Lavatory-TOTO-Luminist_Rectangle_Vessel_LLT151",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2001160",
"categoryName": "卫浴装置",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Standard",
"family": "Lavatory-TOTO-Luminist_Rectangle_Vessel_LLT151",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2001330",
"categoryName": "结构柱",
"diffType": "CHANGE",
"elementId": "",
"elementName": "M_1000",
"family": "M_Concrete-Round-Column with Drop Caps",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2001300",
"categoryName": "结构基础",
"diffType": "CHANGE",
"elementId": "",
"elementName": "600 x 600 x 900mm",
"family": "M_Pile Cap-600 Pile",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2001300",
"categoryName": "结构基础",
"diffType": "CHANGE",
"elementId": "",
"elementName": "600 x 600 x 900mm",
"family": "M_Pile Cap-600 Pile",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2001300",
"categoryName": "结构基础",
"diffType": "CHANGE",
"elementId": "",
"elementName": "600 x 600 x 900mm",
"family": "M_Pile Cap-600 Pile",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2001300",
"categoryName": "结构基础",
"diffType": "CHANGE",
"elementId": "",
"elementName": "600 x 600 x 900mm",
"family": "M_Pile Cap-600 Pile",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2001300",
"categoryName": "结构基础",
"diffType": "CHANGE",
"elementId": "",
"elementName": "600 x 600 x 900mm",
"family": "M_Pile Cap-600 Pile",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2001300",
"categoryName": "结构基础",
"diffType": "CHANGE",
"elementId": "",
"elementName": "600 x 600 x 900mm",
"family": "M_Pile Cap-600 Pile",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2001300",
"categoryName": "结构基础",
"diffType": "CHANGE",
"elementId": "",
"elementName": "600 x 600 x 900mm",
"family": "M_Pile Cap-600 Pile",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2001300",
"categoryName": "结构基础",
"diffType": "CHANGE",
"elementId": "",
"elementName": "600 x 600 x 900mm",
"family": "M_Pile Cap-600 Pile",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2001300",
"categoryName": "结构基础",
"diffType": "CHANGE",
"elementId": "",
"elementName": "600 x 600 x 900mm",
"family": "M_Pile Cap-600 Pile",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2001300",
"categoryName": "结构基础",
"diffType": "CHANGE",
"elementId": "",
"elementName": "600 x 600 x 900mm",
"family": "M_Pile Cap-600 Pile",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2001300",
"categoryName": "结构基础",
"diffType": "CHANGE",
"elementId": "",
"elementName": "600 x 600 x 900mm",
"family": "M_Pile Cap-600 Pile",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2001300",
"categoryName": "结构基础",
"diffType": "CHANGE",
"elementId": "",
"elementName": "600mm Diameter",
"family": "M_Pile-Steel Pipe",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2001300",
"categoryName": "结构基础",
"diffType": "CHANGE",
"elementId": "",
"elementName": "600mm Diameter",
"family": "M_Pile-Steel Pipe",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2001300",
"categoryName": "结构基础",
"diffType": "CHANGE",
"elementId": "",
"elementName": "600mm Diameter",
"family": "M_Pile-Steel Pipe",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2001300",
"categoryName": "结构基础",
"diffType": "CHANGE",
"elementId": "",
"elementName": "600mm Diameter",
"family": "M_Pile-Steel Pipe",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2001300",
"categoryName": "结构基础",
"diffType": "CHANGE",
"elementId": "",
"elementName": "600mm Diameter",
"family": "M_Pile-Steel Pipe",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2001300",
"categoryName": "结构基础",
"diffType": "CHANGE",
"elementId": "",
"elementName": "600mm Diameter",
"family": "M_Pile-Steel Pipe",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2001300",
"categoryName": "结构基础",
"diffType": "CHANGE",
"elementId": "",
"elementName": "600mm Diameter",
"family": "M_Pile-Steel Pipe",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2001300",
"categoryName": "结构基础",
"diffType": "CHANGE",
"elementId": "",
"elementName": "600mm Diameter",
"family": "M_Pile-Steel Pipe",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2001300",
"categoryName": "结构基础",
"diffType": "CHANGE",
"elementId": "",
"elementName": "600mm Diameter",
"family": "M_Pile-Steel Pipe",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2001300",
"categoryName": "结构基础",
"diffType": "CHANGE",
"elementId": "",
"elementName": "600mm Diameter",
"family": "M_Pile-Steel Pipe",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2001300",
"categoryName": "结构基础",
"diffType": "CHANGE",
"elementId": "",
"elementName": "600mm Diameter",
"family": "M_Pile-Steel Pipe",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2001370",
"categoryName": "环境",
"diffType": "CHANGE",
"elementId": "",
"elementName": "M_RPC Beetle",
"family": "M_RPC Beetle",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000080",
"categoryName": "家具",
"diffType": "CHANGE",
"elementId": "",
"elementName": "0810mm",
"family": "M_TV - Flat Screen",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2001260",
"categoryName": "场地",
"diffType": "CHANGE",
"elementId": "",
"elementName": "9 Meters High",
"family": "M_Wind Power Generator",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2001260",
"categoryName": "场地",
"diffType": "CHANGE",
"elementId": "",
"elementName": "9 Meters High",
"family": "M_Wind Power Generator",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2001260",
"categoryName": "场地",
"diffType": "CHANGE",
"elementId": "",
"elementName": "9 Meters High",
"family": "M_Wind Power Generator",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2001350",
"categoryName": "专用设备",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Miele Microwave M 8260-2",
"family": "Miele Built-in Microwave M 8260-2",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2001350",
"categoryName": "专用设备",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Rangehood DA-2210",
"family": "Miele Built-in Rangehood DA 2210",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000151",
"categoryName": "常规模型",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Miele Built-under Dishwasher G 4101 U CS",
"family": "Miele Built-under Dishwasher G 4101 U CS",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000151",
"categoryName": "常规模型",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Miele Induction Cooktop 6350 LPT",
"family": "Miele Induction Cooktop KM 6350 LPT",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2001350",
"categoryName": "专用设备",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Miele Fridge/Freezer KF 1911 Vi",
"family": "Miele MasterCool KF 1911 Vi",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2001350",
"categoryName": "专用设备",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Miele Oven H 5681 BP",
"family": "Miele Oven H 5681 BP",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2001350",
"categoryName": "专用设备",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Miele Tumble Dryer T 7944 C",
"family": "Miele Tumble Dryer T 7944 C",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000151",
"categoryName": "常规模型",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Miele Washing Machine W 5820 WPS",
"family": "Miele Washing Machine W 5820 WPS",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2001040",
"categoryName": "电气设备",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Solarworld Sunmodule Plus",
"family": "Photovoltaic-Panel-SolarWorld-SunModule-(235-240)",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2001040",
"categoryName": "电气设备",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Solarworld Sunmodule Plus",
"family": "Photovoltaic-Panel-SolarWorld-SunModule-(235-240)",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2001040",
"categoryName": "电气设备",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Solarworld Sunmodule Plus",
"family": "Photovoltaic-Panel-SolarWorld-SunModule-(235-240)",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2001040",
"categoryName": "电气设备",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Solarworld Sunmodule Plus",
"family": "Photovoltaic-Panel-SolarWorld-SunModule-(235-240)",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2001040",
"categoryName": "电气设备",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Solarworld Sunmodule Plus",
"family": "Photovoltaic-Panel-SolarWorld-SunModule-(235-240)",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2001040",
"categoryName": "电气设备",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Solarworld Sunmodule Plus",
"family": "Photovoltaic-Panel-SolarWorld-SunModule-(235-240)",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2001040",
"categoryName": "电气设备",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Solarworld Sunmodule Plus",
"family": "Photovoltaic-Panel-SolarWorld-SunModule-(235-240)",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2001040",
"categoryName": "电气设备",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Solarworld Sunmodule Plus",
"family": "Photovoltaic-Panel-SolarWorld-SunModule-(235-240)",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2001040",
"categoryName": "电气设备",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Solarworld Sunmodule Plus",
"family": "Photovoltaic-Panel-SolarWorld-SunModule-(235-240)",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2001040",
"categoryName": "电气设备",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Solarworld Sunmodule Plus",
"family": "Photovoltaic-Panel-SolarWorld-SunModule-(235-240)",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2001040",
"categoryName": "电气设备",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Solarworld Sunmodule Plus",
"family": "Photovoltaic-Panel-SolarWorld-SunModule-(235-240)",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2001040",
"categoryName": "电气设备",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Solarworld Sunmodule Plus",
"family": "Photovoltaic-Panel-SolarWorld-SunModule-(235-240)",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2001370",
"categoryName": "环境",
"diffType": "CHANGE",
"elementId": "",
"elementName": "YinYin",
"family": "RPC Female",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2001370",
"categoryName": "环境",
"diffType": "CHANGE",
"elementId": "",
"elementName": "YinYin",
"family": "RPC Female",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2001370",
"categoryName": "环境",
"diffType": "CHANGE",
"elementId": "",
"elementName": "YinYin",
"family": "RPC Female",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2001370",
"categoryName": "环境",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Alex",
"family": "RPC Male",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2001360",
"categoryName": "植物",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Hawthorn - 25'",
"family": "RPC Tree - Deciduous",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2001360",
"categoryName": "植物",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Honey Locust - 25'",
"family": "RPC Tree - Deciduous",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2001360",
"categoryName": "植物",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Honey Locust - 25'",
"family": "RPC Tree - Deciduous",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2001360",
"categoryName": "植物",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Honey Locust - 25'",
"family": "RPC Tree - Deciduous",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2001360",
"categoryName": "植物",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Honey Locust - 25'",
"family": "RPC Tree - Deciduous",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2001360",
"categoryName": "植物",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Honey Locust - 25'",
"family": "RPC Tree - Deciduous",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2001360",
"categoryName": "植物",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Honey Locust - 25'",
"family": "RPC Tree - Deciduous",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2001360",
"categoryName": "植物",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Honey Locust - 25'",
"family": "RPC Tree - Deciduous",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2001360",
"categoryName": "植物",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Honey Locust - 25'",
"family": "RPC Tree - Deciduous",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2001360",
"categoryName": "植物",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Largetooth Aspen - 25'",
"family": "RPC Tree - Deciduous",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2001360",
"categoryName": "植物",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Lombardy Poplar - 40'",
"family": "RPC Tree - Deciduous",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2001360",
"categoryName": "植物",
"diffType": "DELETE",
"elementId": "",
"elementName": "Red Ash - 25'",
"family": "RPC Tree - Deciduous",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2001360",
"categoryName": "植物",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Red Maple - 30'",
"family": "RPC Tree - Deciduous",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2001360",
"categoryName": "植物",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Red Maple - 30'",
"family": "RPC Tree - Deciduous",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2001360",
"categoryName": "植物",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Scarlet Oak - 42'",
"family": "RPC Tree - Deciduous",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2001360",
"categoryName": "植物",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Scarlet Oak - 42'",
"family": "RPC Tree - Deciduous",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000080",
"categoryName": "家具",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Model with Island",
"family": "Seat - Single with Island",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000080",
"categoryName": "家具",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Seating - Artemis - Lounge chair",
"family": "Seating - Artemis - Lounge chair",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000080",
"categoryName": "家具",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Seating - Artemis - Lounge chair",
"family": "Seating - Artemis - Lounge chair",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000080",
"categoryName": "家具",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Side Table 2 (2)",
"family": "Side Table 2 (2)",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000080",
"categoryName": "家具",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Side Table 2 (2)",
"family": "Side Table 2 (2)",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000080",
"categoryName": "家具",
"diffType": "CHANGE",
"elementId": "",
"elementName": "W600XD600",
"family": "Sofa - Ottoman",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000080",
"categoryName": "家具",
"diffType": "CHANGE",
"elementId": "",
"elementName": "W600XD600",
"family": "Sofa - Ottoman",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000080",
"categoryName": "家具",
"diffType": "CHANGE",
"elementId": "",
"elementName": "W600XD600",
"family": "Sofa - Ottoman",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000080",
"categoryName": "家具",
"diffType": "CHANGE",
"elementId": "",
"elementName": "W600XD600",
"family": "Sofa - Ottoman",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000080",
"categoryName": "家具",
"diffType": "CHANGE",
"elementId": "",
"elementName": "W600XD600",
"family": "Sofa - Ottoman",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000080",
"categoryName": "家具",
"diffType": "CHANGE",
"elementId": "",
"elementName": "W600XD600 2",
"family": "Sofa - Ottoman",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000080",
"categoryName": "家具",
"diffType": "CHANGE",
"elementId": "",
"elementName": "W600XD600 2",
"family": "Sofa - Ottoman",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000080",
"categoryName": "家具",
"diffType": "CHANGE",
"elementId": "",
"elementName": "1800 x 900 mm",
"family": "Table-Dining 01 (M)",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000080",
"categoryName": "家具",
"diffType": "CHANGE",
"elementId": "",
"elementName": "1800 x 900 mm",
"family": "Table-Dining 01 (M)",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2001120",
"categoryName": "照明设备",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Trck_BswySystms_Cooper_RSA_Profile Series_AR111 Closed Back Integral Xfmr",
"family": "Trck_BswySystms_Cooper_RSA_Profile Series_AR111 Closed Back Integral Xfmr",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2001120",
"categoryName": "照明设备",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Trck_BswySystms_Cooper_RSA_Profile Series_AR111 Closed Back Integral Xfmr",
"family": "Trck_BswySystms_Cooper_RSA_Profile Series_AR111 Closed Back Integral Xfmr",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2001120",
"categoryName": "照明设备",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Trck_BswySystms_Cooper_RSA_Profile Series_AR111 Closed Back Integral Xfmr",
"family": "Trck_BswySystms_Cooper_RSA_Profile Series_AR111 Closed Back Integral Xfmr",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2001120",
"categoryName": "照明设备",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Trck_BswySystms_Cooper_RSA_Profile Series_AR111 Closed Back Integral Xfmr",
"family": "Trck_BswySystms_Cooper_RSA_Profile Series_AR111 Closed Back Integral Xfmr",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2001120",
"categoryName": "照明设备",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Trck_BswySystms_Cooper_RSA_Profile Series_AR111 Closed Back Integral Xfmr",
"family": "Trck_BswySystms_Cooper_RSA_Profile Series_AR111 Closed Back Integral Xfmr",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2001120",
"categoryName": "照明设备",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Trck_BswySystms_Cooper_RSA_Profile Series_AR111 Closed Back Integral Xfmr",
"family": "Trck_BswySystms_Cooper_RSA_Profile Series_AR111 Closed Back Integral Xfmr",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2001120",
"categoryName": "照明设备",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Trck_BswySystms_Cooper_RSA_Profile Series_AR111 Closed Back Integral Xfmr",
"family": "Trck_BswySystms_Cooper_RSA_Profile Series_AR111 Closed Back Integral Xfmr",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2001120",
"categoryName": "照明设备",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Trck_BswySystms_Cooper_RSA_Profile Series_AR111 Closed Back Integral Xfmr",
"family": "Trck_BswySystms_Cooper_RSA_Profile Series_AR111 Closed Back Integral Xfmr",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2001350",
"categoryName": "专用设备",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Vase (3)-with Flower",
"family": "Vase (3)-with Flower",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000151",
"categoryName": "常规模型",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Walvit",
"family": "Walvit_Hung Bowl_604118 W",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000151",
"categoryName": "常规模型",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Walvit",
"family": "Walvit_Hung Bowl_604118 W",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000151",
"categoryName": "常规模型",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Walvit",
"family": "Walvit_Hung Bowl_604118 W",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000151",
"categoryName": "常规模型",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Walvit",
"family": "Walvit_Hung Bowl_604118 W",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000151",
"categoryName": "常规模型",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Water Glass",
"family": "Water Glass",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000151",
"categoryName": "常规模型",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Water Glass",
"family": "Water Glass",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000151",
"categoryName": "常规模型",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Water Glass",
"family": "Water Glass",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000151",
"categoryName": "常规模型",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Water Glass",
"family": "Water Glass",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000151",
"categoryName": "常规模型",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Water Glass",
"family": "Water Glass",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000151",
"categoryName": "常规模型",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Water Glass",
"family": "Water Glass",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000151",
"categoryName": "常规模型",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Water Glass",
"family": "Water Glass",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000151",
"categoryName": "常规模型",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Water Glass",
"family": "Water Glass",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000151",
"categoryName": "常规模型",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Fine China - Plate",
"family": "White Porcelain Plate",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000151",
"categoryName": "常规模型",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Fine China - Plate",
"family": "White Porcelain Plate",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000151",
"categoryName": "常规模型",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Fine China - Plate",
"family": "White Porcelain Plate",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000151",
"categoryName": "常规模型",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Fine China - Plate",
"family": "White Porcelain Plate",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000151",
"categoryName": "常规模型",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Fine China - Plate",
"family": "White Porcelain Plate",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000151",
"categoryName": "常规模型",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Fine China - Plate",
"family": "White Porcelain Plate",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000151",
"categoryName": "常规模型",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Fine China - Plate",
"family": "White Porcelain Plate",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000151",
"categoryName": "常规模型",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Fine China - Plate",
"family": "White Porcelain Plate",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2001350",
"categoryName": "专用设备",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Wine Bottles",
"family": "Wine Bottles",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000151",
"categoryName": "常规模型",
"diffType": "CHANGE",
"elementId": "",
"elementName": "White",
"family": "aalto vase - tall",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000151",
"categoryName": "常规模型",
"diffType": "NEW",
"elementId": "",
"elementName": "fire place hang",
"family": "fire place hang",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000011",
"categoryName": "墙",
"diffType": "CHANGE",
"elementId": "",
"elementName": "CL_W1",
"family": "基本墙",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000011",
"categoryName": "墙",
"diffType": "CHANGE",
"elementId": "",
"elementName": "CL_W1",
"family": "基本墙",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000011",
"categoryName": "墙",
"diffType": "CHANGE",
"elementId": "",
"elementName": "CL_W1",
"family": "基本墙",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000011",
"categoryName": "墙",
"diffType": "CHANGE",
"elementId": "",
"elementName": "CL_W1",
"family": "基本墙",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000011",
"categoryName": "墙",
"diffType": "CHANGE",
"elementId": "",
"elementName": "CL_W1",
"family": "基本墙",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000011",
"categoryName": "墙",
"diffType": "CHANGE",
"elementId": "",
"elementName": "CL_W1",
"family": "基本墙",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000011",
"categoryName": "墙",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Cavity wall_sliders",
"family": "基本墙",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000011",
"categoryName": "墙",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Foundation - 300mm Concrete",
"family": "基本墙",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000011",
"categoryName": "墙",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Interior - 165 Partition (1-hr)",
"family": "基本墙",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000011",
"categoryName": "墙",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Interior - 165 Partition (1-hr)",
"family": "基本墙",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000011",
"categoryName": "墙",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Interior - 165 Partition (1-hr)",
"family": "基本墙",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000011",
"categoryName": "墙",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Interior - Partition",
"family": "基本墙",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000011",
"categoryName": "墙",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Interior - Partition",
"family": "基本墙",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000011",
"categoryName": "墙",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Interior - Partition",
"family": "基本墙",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000011",
"categoryName": "墙",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Interior - Partition",
"family": "基本墙",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000011",
"categoryName": "墙",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Interior - Partition",
"family": "基本墙",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000011",
"categoryName": "墙",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Interior - Partition",
"family": "基本墙",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000011",
"categoryName": "墙",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Interior - Partition",
"family": "基本墙",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000011",
"categoryName": "墙",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Interior - Partition",
"family": "基本墙",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000011",
"categoryName": "墙",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Interior - Partition",
"family": "基本墙",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000011",
"categoryName": "墙",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Interior - Partition",
"family": "基本墙",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000011",
"categoryName": "墙",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Interior - Partition",
"family": "基本墙",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000011",
"categoryName": "墙",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Interior - Partition",
"family": "基本墙",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000011",
"categoryName": "墙",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Interior - Partition",
"family": "基本墙",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000011",
"categoryName": "墙",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Interior - Partition",
"family": "基本墙",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000011",
"categoryName": "墙",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Retaining - 300mm Concrete",
"family": "基本墙",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000011",
"categoryName": "墙",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Retaining - 300mm Concrete",
"family": "基本墙",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000011",
"categoryName": "墙",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Retaining - 300mm Concrete",
"family": "基本墙",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000011",
"categoryName": "墙",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Retaining - 300mm Concrete",
"family": "基本墙",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000011",
"categoryName": "墙",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Retaining - 300mm Concrete",
"family": "基本墙",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000011",
"categoryName": "墙",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Retaining - 300mm Concrete",
"family": "基本墙",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000011",
"categoryName": "墙",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Retaining - 300mm Concrete",
"family": "基本墙",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000011",
"categoryName": "墙",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Retaining - 300mm Concrete",
"family": "基本墙",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000011",
"categoryName": "墙",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Retaining - 300mm Concrete",
"family": "基本墙",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000011",
"categoryName": "墙",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Retaining - 300mm Concrete",
"family": "基本墙",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000011",
"categoryName": "墙",
"diffType": "CHANGE",
"elementId": "",
"elementName": "SIP 202mm Wall - conc clad",
"family": "基本墙",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000011",
"categoryName": "墙",
"diffType": "CHANGE",
"elementId": "",
"elementName": "SIP 202mm Wall - conc clad",
"family": "基本墙",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000011",
"categoryName": "墙",
"diffType": "CHANGE",
"elementId": "",
"elementName": "SIP 202mm Wall - conc clad",
"family": "基本墙",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000011",
"categoryName": "墙",
"diffType": "CHANGE",
"elementId": "",
"elementName": "SIP 202mm Wall - conc clad",
"family": "基本墙",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000011",
"categoryName": "墙",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Wall - Timber Clad",
"family": "基本墙",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000011",
"categoryName": "墙",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Wall - Timber Clad",
"family": "基本墙",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000011",
"categoryName": "墙",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Wall - Timber Clad",
"family": "基本墙",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000011",
"categoryName": "墙",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Wall - Timber Clad",
"family": "基本墙",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000011",
"categoryName": "墙",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Wall - Timber Clad",
"family": "基本墙",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000011",
"categoryName": "墙",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Wall - Timber Clad",
"family": "基本墙",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000011",
"categoryName": "墙",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Wall - Timber Clad",
"family": "基本墙",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000011",
"categoryName": "墙",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Wall - Timber Clad",
"family": "基本墙",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000011",
"categoryName": "墙",
"diffType": "DELETE",
"elementId": "",
"elementName": "Wall - Timber Clad 2",
"family": "基本墙",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000151",
"categoryName": "常规模型",
"diffType": "DELETE",
"elementId": "",
"elementName": "宣传画",
"family": "宣传画",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2001263",
"categoryName": "建筑地坪",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Pad 2",
"family": "建筑地坪",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000126",
"categoryName": "栏杆扶手",
"diffType": "CHANGE",
"elementId": "",
"elementName": "SH_1100mm",
"family": "栏杆扶手",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000126",
"categoryName": "栏杆扶手",
"diffType": "CHANGE",
"elementId": "",
"elementName": "SH_1100mm",
"family": "栏杆扶手",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000126",
"categoryName": "栏杆扶手",
"diffType": "CHANGE",
"elementId": "",
"elementName": "SH_1100mm",
"family": "栏杆扶手",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000126",
"categoryName": "栏杆扶手",
"diffType": "CHANGE",
"elementId": "",
"elementName": "SH_1100mm",
"family": "栏杆扶手",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000126",
"categoryName": "栏杆扶手",
"diffType": "CHANGE",
"elementId": "",
"elementName": "SH_1100mm",
"family": "栏杆扶手",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000126",
"categoryName": "栏杆扶手",
"diffType": "CHANGE",
"elementId": "",
"elementName": "SH_1100mm",
"family": "栏杆扶手",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000126",
"categoryName": "栏杆扶手",
"diffType": "CHANGE",
"elementId": "",
"elementName": "SH_1100mm",
"family": "栏杆扶手",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000126",
"categoryName": "栏杆扶手",
"diffType": "CHANGE",
"elementId": "",
"elementName": "SH_1100mm",
"family": "栏杆扶手",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000126",
"categoryName": "栏杆扶手",
"diffType": "CHANGE",
"elementId": "",
"elementName": "SH_1100mm",
"family": "栏杆扶手",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000126",
"categoryName": "栏杆扶手",
"diffType": "CHANGE",
"elementId": "",
"elementName": "SH_1100mm",
"family": "栏杆扶手",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000032",
"categoryName": "楼板",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Concrete-Domestic 425mm",
"family": "楼板",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000032",
"categoryName": "楼板",
"diffType": "CHANGE",
"elementId": "",
"elementName": "Generic 150mm",
"family": "楼板",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000120",
"categoryName": "楼梯",
"diffType": "CHANGE",
"elementId": "",
"elementName": "楼梯",
"family": "组合楼梯",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000120",
"categoryName": "楼梯",
"diffType": "CHANGE",
"elementId": "",
"elementName": "楼梯",
"family": "预浇注楼梯",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
},
{
"categoryId": "-2000120",
"categoryName": "楼梯",
"diffType": "CHANGE",
"elementId": "",
"elementName": "楼梯",
"family": "预浇注楼梯",
"followingFileId": "",
"previousFileId": "",
"specialty": ""
}
],
"page": ,
"total":
}
}

特别说明:diffType 对比构件差异类型: NEW、DELETE、CHANGE。

NEW:新增

DELETE:删除

CHANGE:变更。

C#开发BIMFACE系列33 服务端API之模型对比4:获取模型对比结果的更多相关文章

  1. C#开发BIMFACE系列41 服务端API之模型对比

    BIMFACE二次开发系列目录     [已更新最新开发文章,点击查看详细] 在建筑施工图审查系统中,设计单位提交设计完成的模型/图纸,审查专家审查模型/图纸.审查过程中如果发现不符合规范的地方,则流 ...

  2. C#开发BIMFACE系列42 服务端API之图纸对比

    BIMFACE二次开发系列目录     [已更新最新开发文章,点击查看详细] 在我的前一篇博客<C#开发BIMFACE系列42 服务端API之图纸对比>中详细介绍了BIMFACE服务端接口 ...

  3. C#开发BIMFACE系列40 服务端API之模型集成

    BIMFACE二次开发系列目录     [已更新最新开发文章,点击查看详细] 随着建筑信息化模型技术的发展,越来越多的人选择在云端浏览建筑模型.现阶段的云端模型浏览大多是基于文件级别,一次只可以浏览一 ...

  4. C#开发BIMFACE系列43 服务端API之图纸拆分

    BIMFACE二次开发系列目录     [已更新最新开发文章,点击查看详细] 在上一篇博客<C#开发BIMFACE系列42 服务端API之图纸对比>的最后留了一个问题,在常规业务场景下,一 ...

  5. C#开发BIMFACE系列44 服务端API之计算图纸对比差异项来源自哪个图框

    BIMFACE二次开发系列目录     [已更新最新开发文章,点击查看详细] 在前两篇博客<C#开发BIMFACE系列42 服务端API之图纸对比>.<C#开发BIMFACE系列43 ...

  6. C#开发BIMFACE系列46 服务端API之离线数据包下载及结构详解

    BIMFACE二次开发系列目录     [已更新最新开发文章,点击查看详细] 在前一篇博客<C#开发BIMFACE系列45 服务端API之创建离线数据包>中通过调用接口成功的创建一个离线数 ...

  7. C#开发BIMFACE系列6 服务端API之获取文件信息

    在<C#开发BIMFACE系列4 服务端API之源上传文件>.<C#开发BIMFACE系列5 服务端API之文件直传>两篇文章中详细介绍了如何将本地文件上传到BIMFACE服务 ...

  8. C#开发BIMFACE系列4 服务端API之源上传文件

    在注册成为BIMFACE的应用开发者后,要能在浏览器里浏览你的模型或者获取你模型内的BIM数据, 首先需要把你的模型文件上传到BIMFACE.根据不同场景,BIMFACE提供了丰富的文件相关的接口. ...

  9. C#开发BIMFACE系列3 服务端API之获取应用访问凭证AccessToken

    系列目录     [已更新最新开发文章,点击查看详细] BIMFACE 平台为开发者提供了大量的服务器端 API 与 JavaScript API,用于二次开发 BIM 的相关应用. BIMFACE ...

随机推荐

  1. Layui-admin-iframe通过页面链接直接在iframe内打开一个新的页面,实现单页面的效果

    前言: 使用Layui-admin做后台管理框架有很长的一段时间了,但是一直没有对框架内iframe菜单栏切换跳转做深入的了解.今天有一个这样的需求就是通过获取超链接中传递过来的跳转地址和对应的tab ...

  2. sql-lib闯关31-40

    第三十一关 此关用WAF防护 和第三十关基本一样,在双引号后面添加括号进行闭合 语句可以有两种,?id=-1")union select 1,2,database() --+    或者   ...

  3. test命令的使用以及判断语法

    test命令 Shell中的 test 命令用于检查某个条件是否成立,它可以进行数值.字符和文件三个方面的测试. 语法:test EXPRESSION 或者 [ EXPRESSION ] 字符串判断( ...

  4. ADO.NET 的使用(二)

    一.本篇主要讲ADO.NET的核心DataSet DataSet里面有个DataTable,DataTable还有个对应的DataView 首先呢,假设数据库的数据 id name mob 100 张 ...

  5. mybatis 源码赏析(一)sql解析篇

    本系列主要分为三部分,前两部分主要分析mybatis的实现原理,最后一部分结合spring,来看看mybtais是如何与spring结合的就是就是mybatis-spring的源码. 相较于sprin ...

  6. 线程间交换数据的Exchanger

    作者:Steven1997 链接:https://www.jianshu.com/p/9b59829fb191 来源:简书 简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处. Exc ...

  7. Let‘s play computer game(最短路 + dfs找出所有确定长度的最短路)

    Let's play computer game Description xxxxxxxxx在疫情期间迷上了一款游戏,这个游戏一共有nnn个地点(编号为1--n1--n1--n),他每次从一个地点移动 ...

  8. codeforces 466c(暴力枚举)

    题目链接 思路如下 *题意: 给定一个序列,问有多少种方案可以将此序列分割成3个序列元素和完全相同的子序列.(子序列不能为空).即问有多少个点对(i,j)满足a[1]+-+a[i-1]=a[i]+a[ ...

  9. STM32F103ZET6时钟

    1.STM32F103ZET6时钟说明 STM32F103ZET6的时钟树图如下所示: STM32F103ZET6有很多个时钟源,分别有: HSE:高速外部时钟信号. HSI:高速内部部时钟信号. L ...

  10. 在vue+elementUI项目中使用分页功能

    HTML: <div class="mRttt">         <!-- 分页 -->          <el-pagination       ...