C#开发BIMFACE系列33 服务端API之模型对比4:获取模型对比结果
模型对比可以对两个文件/模型进行差异性分析,确定两个文件/模型之间构件的几何和属性差异,包括增加的构件、删除的构件和修改的构件。 模型对应可以用于进行文件/模型的版本对比。
- 几何对比
-
几何数据的对比的粒度为构件级,即只要构件的某一部分几何数据或材质发生改变,就认为整个构件发生变化。
几何差异,是指:文件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:获取模型对比结果的更多相关文章
- C#开发BIMFACE系列41 服务端API之模型对比
BIMFACE二次开发系列目录 [已更新最新开发文章,点击查看详细] 在建筑施工图审查系统中,设计单位提交设计完成的模型/图纸,审查专家审查模型/图纸.审查过程中如果发现不符合规范的地方,则流 ...
- C#开发BIMFACE系列42 服务端API之图纸对比
BIMFACE二次开发系列目录 [已更新最新开发文章,点击查看详细] 在我的前一篇博客<C#开发BIMFACE系列42 服务端API之图纸对比>中详细介绍了BIMFACE服务端接口 ...
- C#开发BIMFACE系列40 服务端API之模型集成
BIMFACE二次开发系列目录 [已更新最新开发文章,点击查看详细] 随着建筑信息化模型技术的发展,越来越多的人选择在云端浏览建筑模型.现阶段的云端模型浏览大多是基于文件级别,一次只可以浏览一 ...
- C#开发BIMFACE系列43 服务端API之图纸拆分
BIMFACE二次开发系列目录 [已更新最新开发文章,点击查看详细] 在上一篇博客<C#开发BIMFACE系列42 服务端API之图纸对比>的最后留了一个问题,在常规业务场景下,一 ...
- C#开发BIMFACE系列44 服务端API之计算图纸对比差异项来源自哪个图框
BIMFACE二次开发系列目录 [已更新最新开发文章,点击查看详细] 在前两篇博客<C#开发BIMFACE系列42 服务端API之图纸对比>.<C#开发BIMFACE系列43 ...
- C#开发BIMFACE系列46 服务端API之离线数据包下载及结构详解
BIMFACE二次开发系列目录 [已更新最新开发文章,点击查看详细] 在前一篇博客<C#开发BIMFACE系列45 服务端API之创建离线数据包>中通过调用接口成功的创建一个离线数 ...
- C#开发BIMFACE系列6 服务端API之获取文件信息
在<C#开发BIMFACE系列4 服务端API之源上传文件>.<C#开发BIMFACE系列5 服务端API之文件直传>两篇文章中详细介绍了如何将本地文件上传到BIMFACE服务 ...
- C#开发BIMFACE系列4 服务端API之源上传文件
在注册成为BIMFACE的应用开发者后,要能在浏览器里浏览你的模型或者获取你模型内的BIM数据, 首先需要把你的模型文件上传到BIMFACE.根据不同场景,BIMFACE提供了丰富的文件相关的接口. ...
- C#开发BIMFACE系列3 服务端API之获取应用访问凭证AccessToken
系列目录 [已更新最新开发文章,点击查看详细] BIMFACE 平台为开发者提供了大量的服务器端 API 与 JavaScript API,用于二次开发 BIM 的相关应用. BIMFACE ...
随机推荐
- 图片OCR(Optical Character Recognition)
目录 Photo OCR问题描述 滑动窗口(Sliding Windows) 获得大量数据和人工数据(Getting Logs of Data and Artificial Data) 瓶颈分析:需要 ...
- effective-java学习笔记---使用限定通配符来增加 API 的灵活性31
在你的 API 中使用通配符类型,虽然棘手,但使得 API 更加灵活. 如果编写一个将被广泛使用的类库,正确使用通配符类型应该被认为是强制性的. 记住基本规则: producer-extends, c ...
- Windows下命令行MySQL安装
通过zip压缩包文件直接安装 1.下载链接 https://dev.mysql.com/downloads/mysql/ 下载好后解压移动文件夹 2.配环境变量 path路径追加 3.创建初始化文件 ...
- 本地缓存Ehcache
1,什么是Ehcache Ehcache是纯java的开源缓存框架,具有快速.精干等特点,是Hibernate中默认的CacheProvider.它主要面向通用缓存.Java EE和轻量级容器, ...
- Dome 多人人脸识别 face_recognition
Dome 多人人脸识别 face_recognition 注意 face_recognition 依赖 face_recognition_models 中文字体文件需要自己下载 1.多人人脸识别 # ...
- (25+4/25+4)复健-KMP/EKMP/manache/Trie
(29/29) 3.23已完成 1.KMP int Next[maxn]; void prekmp(char* x,int len){ ,suf=; Next[]=-; while(suf<l ...
- 物体的三维识别与6D位姿估计:PPF系列论文介绍(三)
作者:仲夏夜之星 Date:2020-04-08 来源:物体的三维识别与6D位姿估计:PPF系列论文介绍(三) 文章“A Method for 6D Pose Estimation of Free-F ...
- Aho-Corasick automaton
目录 KMP 算法 BF 算法 KMP 算法 避免重复遍历 算法思想 代码实现 匹配函数 求 next 数组 字典树 多模匹配 构造字典树 字典树的结构体定义 构造算法 伪代码 代码实现 失配指针 功 ...
- Java并发基础04. 线程技术之死锁问题
我们知道,使用 synchronized 关键字可以有效的解决线程同步问题,但是如果不恰当的使用 synchronized 关键字的话也会出问题,即我们所说的死锁.死锁是这样一种情形:多个线程同时被阻 ...
- hello world: 我的博客写作思路
1. 本人计算机专业,研究生刚毕业,即将入职金融科技领域,决定借博客园平台写自己的博客,原因如下: 从小白到大白,离不开各大学习平台和技术博客的指导和分享,是时候回馈了. 借此机会整理自己从本科.研究 ...