当前位置:首页教育技巧WPS技巧wps文档

C#二次开发BIMFACE系列35 服务端API之获取模型构建对比分类树

2024-07-09 15:56:42


BIMFACE平台提供了服务端“获取模型对比构件分类树”API。目录树返回结果以树状层级关系显示了增删改的构件信息,里面无法区分哪些构建是新增、修改或者删除的,所以在实际项目中使用意义不大。

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

参数:

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

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

HTTP响应示例(200):

{ "code" : "success", "data" : { "items" : [ { "actualName" : "actualName", "data" : "object", "elementCount" : 0, "id" : "24507acf86734fcdafcfcc5b70497cd5", "items" : [ { "actualName" : "actualName", "data" : "object", "elementCount" : 0, "id" : "24507acf86734fcdafcfcc5b70497cd5", "items" : [ "..." ], "name" : "name", "type" : "type" } ], "name" : "name", "type" : "type" } ], "root" : "specialty" }, "message" : "" }

C#实现方法:

///

/// 获取模型对比构件分类树 /// ///

【必填】令牌 ///

【必填】对比ID /// public virtual ModelCompareTreeResponse GetModelCompareTree(string accessToken, long compareId) { // GET https://api.bimface/data/v2/comparisons/{comparisonId}/tree string url = string.Format(BimfaceConstants.API_HOST + "/data/v2/comparisons/{0}/tree", compareId); BimFaceHttpHeaders headers = new BimFaceHttpHeaders(); headers.AddOAuth2Header(accessToken); try { ModelCompareTreeResponse response; HttpManager httpManager = new HttpManager(headers); HttpResult httpResult = httpManager.Get(url); if (httpResult.Status == HttpResult.STATUS_SUCCESS) { response = httpResult.Text.DeserializeJsonToObject(); } else { response = new ModelCompareTreeResponse { Message = httpResult.RefText }; } return response; } catch (Exception ex) { throw new Exception("[获取模型构件对比差异]发生异常!", ex); } }

代码中使用的 HttpManager 类请参考我的博客文章《C# HTTP系列 HttpWebRequest 与 HttpWebResponse》。https://wwwblogs/SavionZhang/p/11422481.html

返回类型 ModelCompareTreeResponse 类如下:

///

/// 获取模型构件对比差异的响应类 /// public class ModelCompareTreeResponse : GeneralResponse { } public class Tree { [JsonProperty("items", NullValueHandling = NullValueHandling.Ignore)] public TreeNode[] Items { get; set; } [JsonProperty("root", NullValueHandling = NullValueHandling.Ignore)] public string Root { get; set; } } public class TreeNode { [JsonProperty("actualName", NullValueHandling = NullValueHandling.Ignore)] public string ActualName { get; set; } [JsonProperty("data", NullValueHandling = NullValueHandling.Ignore)] public object Data { get; set; } [JsonProperty("elementCount", NullValueHandling = NullValueHandling.Ignore)] public int? ElementCount { get; set; } [JsonProperty("id", NullValueHandling = NullValueHandling.Ignore)] public string Id { get; set; } [JsonProperty("items", NullValueHandling = NullValueHandling.Ignore)] public TreeNode[] Items { get; set; } [JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)] public string Name { get; set; } [JsonProperty("type", NullValueHandling = NullValueHandling.Ignore)] public string Type { get; set; } }

测试

测试代码:

///

/// 获取模型对比构件分类树 /// protected void btnGetModelCompareTree_Click(object sender, EventArgs e) { txtResult.Text = string.Empty; long compareId = txtCompareID.Text.ToLong(); IModelCompareApi api = new ModelCompareApi(); ModelCompareTreeResponse response = api.GetModelCompareTree(txtAccessToken.Text, compareId); txtResult.Text = response.SerializeToJson(true); }

测试结果:

完整结果为:

{ "code": "success", "message": null, "data": { "items": [ { "actualName": "墙", "elementCount": 48, "id": "-2000011", "items": [ { "actualName": "基本墙", "elementCount": 48, "items": [], "name": "基本墙", "type": "family" } ], "name": "墙", "type": "category" }, { "actualName": "楼板", "elementCount": 2, "id": "-2000032", "items": [ { "actualName": "楼板", "elementCount": 2, "items": [], "name": "楼板", "type": "family" } ], "name": "楼板", "type": "category" }, { "actualName": "家具", "elementCount": 30, "id": "-2000080", "items": [ { "actualName": "Bar Chair", "elementCount": 6, "items": [], "name": "Bar Chair", "type": "family" }, { "actualName": "Cabinet 1", "elementCount": 1, "items": [], "name": "Cabinet 1", "type": "family" }, { "actualName": "Dining Chair (3)", "elementCount": 8, "items": [], "name": "Dining Chair (3)", "type": "family" }, { "actualName": "M_TV - Flat Screen", "elementCount": 1, "items": [], "name": "M_TV - Flat Screen", "type": "family" }, { "actualName": "Seat - Single with Island", "elementCount": 1, "items": [], "name": "Seat - Single with Island", "type": "family" }, { "actualName": "Seating - Artemis - Lounge chair", "elementCount": 2, "items": [], "name": "Seating - Artemis - Lounge chair", "type": "family" }, { "actualName": "Side Table 2 (2)", "elementCount": 2, "items": [], "name": "Side Table 2 (2)", "type": "family" }, { "actualName": "Sofa - Ottoman", "elementCount": 7, "items": [], "name": "Sofa - Ottoman", "type": "family" }, { "actualName": "Table-Dining 01 (M)", "elementCount": 2, "items": [], "name": "Table-Dining 01 (M)", "type": "family" } ], "name": "家具", "type": "category" }, { "actualName": "楼梯", "elementCount": 3, "id": "-2000120", "items": [ { "actualName": "组合楼梯", "elementCount": 1, "items": [], "name": "组合楼梯", "type": "family" }, { "actualName": "预浇注楼梯", "elementCount": 2, "items": [], "name": "预浇注楼梯", "type": "family" } ], "name": "楼梯", "type": "category" }, { "actualName": "栏杆扶手", "elementCount": 10, "id": "-2000126", "items": [ { "actualName": "栏杆扶手", "elementCount": 10, "items": [], "name": "栏杆扶手", "type": "family" } ], "name": "栏杆扶手", "type": "category" }, { "actualName": "常规模型", "elementCount": 26, "id": "-2000151", "items": [ { "actualName": "Miele Built-under Dishwasher G 4101 U CS", "elementCount": 1, "items": [], "name": "Miele Built-under Dishwasher G 4101 U CS", "type": "family" }, { "actualName": "Miele Induction Cooktop KM 6350 LPT", "elementCount": 1, "items": [], "name": "Miele Induction Cooktop KM 6350 LPT", "type": "family" }, { "actualName": "Miele Washing Machine W 5820 WPS", "elementCount": 1, "items": [], "name": "Miele Washing Machine W 5820 WPS", "type": "family" }, { "actualName": "Walvit_Hung Bowl_604118 W", "elementCount": 4, "items": [], "name": "Walvit_Hung Bowl_604118 W", "type": "family" }, { "actualName": "Water Glass", "elementCount": 8, "items": [], "name": "Water Glass", "type": "family" }, { "actualName": "White Porcelain Plate", "elementCount": 8, "items": [], "name": "White Porcelain Plate", "type": "family" }, { "actualName": "aalto vase - tall", "elementCount": 1, "items": [], "name": "aalto vase - tall", "type": "family" }, { "actualName": "fire place hang", "elementCount": 1, "items": [], "name": "fire place hang", "type": "family" }, { "actualName": "宣传画", "elementCount": 1, "items": [], "name": "宣传画", "type": "family" } ], "name": "常规模型", "type": "category" }, { "actualName": "橱柜", "elementCount": 2, "id": "-2001000", "items": [ { "actualName": "4500_Kitchen Island", "elementCount": 1, "items": [], "name": "4500_Kitchen Island", "type": "family" }, { "actualName": "4500_Kitchen Island_DW", "elementCount": 1, "items": [], "name": "4500_Kitchen Island_DW", "type": "family" } ], "name": "橱柜", "type": "category" }, { "actualName": "电气设备", "elementCount": 12, "id": "-2001040", "items": [ { "actualName": "Photovoltaic-Panel-SolarWorld-SunModule-(235-240)", "elementCount": 12, "items": [], "name": "Photovoltaic-Panel-SolarWorld-SunModule-(235-240)", "type": "family" } ], "name": "电气设备", "type": "category" }, { "actualName": "照明设备", "elementCount": 8, "id": "-2001120", "items": [ { "actualName": "Trck_BswySystms_Cooper_RSA_Profile Series_AR111 Closed Back Integral Xfmr", "elementCount": 8, "items": [], "name": "Trck_BswySystms_Cooper_RSA_Profile Series_AR111 Closed Back Integral Xfmr", "type": "family" } ], "name": "照明设备", "type": "category" }, { "actualName": "卫浴装置", "elementCount": 6, "id": "-2001160", "items": [ { "actualName": "DC_Tankworks_PLM_5000L", "elementCount": 2, "items": [], "name": "DC_Tankworks_PLM_5000L", "type": "family" }, { "actualName": "Lavatory-TOTO-Luminist_Rectangle_Vessel_LLT151", "elementCount": 4, "items": [], "name": "Lavatory-TOTO-Luminist_Rectangle_Vessel_LLT151", "type": "family" } ], "name": "卫浴装置", "type": "category" }, { "actualName": "场地", "elementCount": 3, "id": "-2001260", "items": [ { "actualName": "M_Wind Power Generator", "elementCount": 3, "items": [], "name": "M_Wind Power Generator", "type": "family" } ], "name": "场地", "type": "category" }, { "actualName": "建筑地坪", "elementCount": 1, "id": "-2001263", "items": [ { "actualName": "建筑地坪", "elementCount": 1, "items": [], "name": "建筑地坪", "type": "family" } ], "name": "建筑地坪", "type": "category" }, { "actualName": "结构基础", "elementCount": 22, "id": "-2001300", "items": [ { "actualName": "M_Pile Cap-600 Pile", "elementCount": 11, "items": [], "name": "M_Pile Cap-600 Pile", "type": "family" }, { "actualName": "M_Pile-Steel Pipe", "elementCount": 11, "items": [], "name": "M_Pile-Steel Pipe", "type": "family" } ], "name": "结构基础", "type": "category" }, { "actualName": "结构柱", "elementCount": 1, "id": "-2001330", "items": [ { "actualName": "M_Concrete-Round-Column with Drop Caps", "elementCount": 1, "items": [], "name": "M_Concrete-Round-Column with Drop Caps", "type": "family" } ], "name": "结构柱", "type": "category" }, { "actualName": "专用设备", "elementCount": 7, "id": "-2001350", "items": [ { "actualName": "Miele Built-in Microwave M 8260-2", "elementCount": 1, "items": [], "name": "Miele Built-in Microwave M 8260-2", "type": "family" }, { "actualName": "Miele Built-in Rangehood DA 2210", "elementCount": 1, "items": [], "name": "Miele Built-in Rangehood DA 2210", "type": "family" }, { "actualName": "Miele MasterCool KF 1911 Vi", "elementCount": 1, "items": [], "name": "Miele MasterCool KF 1911 Vi", "type": "family" }, { "actualName": "Miele Oven H 5681 BP", "elementCount": 1, "items": [], "name": "Miele Oven H 5681 BP", "type": "family" }, { "actualName": "Miele Tumble Dryer T 7944 C", "elementCount": 1, "items": [], "name": "Miele Tumble Dryer T 7944 C", "type": "family" }, { "actualName": "Vase (3)-with Flower", "elementCount": 1, "items": [], "name": "Vase (3)-with Flower", "type": "family" }, { "actualName": "Wine Bottles", "elementCount": 1, "items": [], "name": "Wine Bottles", "type": "family" } ], "name": "专用设备", "type": "category" }, { "actualName": "植物", "elementCount": 16, "id": "-2001360", "items": [ { "actualName": "RPC Tree - Deciduous", "elementCount": 16, "items": [], "name": "RPC Tree - Deciduous", "type": "family" } ], "name": "植物", "type": "category" }, { "actualName": "环境", "elementCount": 5, "id": "-2001370", "items": [ { "actualName": "M_RPC Beetle", "elementCount": 1, "items": [], "name": "M_RPC Beetle", "type": "family" }, { "actualName": "RPC Female", "elementCount": 3, "items": [], "name": "RPC Female", "type": "family" }, { "actualName": "RPC Male", "elementCount": 1, "items": [], "name": "RPC Male", "type": "family" } ], "name": "环境", "type": "category" } ], "root": "category" } }


系列文章主要技术:BIM、轻量化引擎、BIMFACE、BIMFACE二次开发、C#、.NET、二次开发、RESTful API、WebAPI


欢迎关注、点赞、评论、转发,每天都能获取优质内容。


回复101,或者私信作者获取《BIMFACE二次开发C#版SDK》。


#欧洲杯:克罗地亚3-1苏格兰晋级#

#白俄罗斯代表65国发言支持中国#

#全球日增确诊超35万#

#中新网评CNN被称“中国新闻网”#

#欧洲杯:英格兰、克罗地亚皆取胜#

相关信息


电脑版

【免责声明】本站信息来自网友投稿及网络整理,内容仅供参考,如果有错误请反馈给我们及时更正,对文中内容的真实性和完整性本站不提供任何保证,不承但任何责任。
版权所有:学窍知识网 Copyright © 2011-2024 www.at317.com All Rights Reserved .