- ·上一篇:文字右上角小数字怎么打出来
- ·下一篇:wps文字:如何在文档中制作饼图?
C#二次开发BIMFACE系列35 服务端API之获取模型构建对比分类树
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
///
代码中使用的 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被称“中国新闻网”#
#欧洲杯:英格兰、克罗地亚皆取胜#