using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using IStation.Bimface;
namespace IStation
{
///
/// 获取
///
public sealed partial class BimfaceClient
{
///
/// 获取构件Id列表(只使用与3D模型)
///
///
///
public List GetAllComponentIds(long fileid)
{
GetAccessToken();
//var data = JsonHelper.Object2Json(new FileElementsGetRequest().GetJsonDict());
var url = string.Format("https://api.bimface.com/data/v2/files/{0}/elementIds", fileid);
using (var httpClient = new HttpClient())
using (var request=new HttpRequestMessage(HttpMethod.Get,url))
{
var autoHeader = new HttpHeaders().GetBasicAuthorHeader(_accesstoken);
request.Headers.Add(autoHeader.Key, autoHeader.Value);
//request.Content= new StringContent(data,Encoding.UTF8, "application/json");
var response=httpClient.SendAsync(request).Result;
response.EnsureSuccessStatusCode();
var responsetext = response.Content.ReadAsStringAsync().Result;
var result = JsonHelper.Json2Object>>(responsetext);
if (result.code != Constants.Success)
{
throw new BimfaceException(result.code);
}
return result.data;
}
}
///
/// 批量获取构件属性
///
///
///
///
public List GetComponentPropertiesByIds(long fileId, List elementIds, bool? includeOverrides = null)
{
GetAccessToken();
var data = JsonHelper.Object2Json(new ElementPropertyFilterRequest() { elementIds = elementIds }.GetJsonDict());
string url = string.Format("https://api.bimface.com/data/v2/files/{0}/elements", fileId);
if (includeOverrides != null)
{
url += "?includeOverrides=" + includeOverrides;
}
using (var httpClient = new HttpClient())
using (var request = new HttpRequestMessage(HttpMethod.Post, url))
{
var autoHeader = new HttpHeaders().GetBasicAuthorHeader(_accesstoken);
request.Headers.Add(autoHeader.Key, autoHeader.Value);
request.Content=new StringContent(data, Encoding.UTF8, "application/json");
var response = httpClient.SendAsync(request).Result;
response.EnsureSuccessStatusCode();
var responsetext=response.Content.ReadAsStringAsync().Result;
var result = JsonHelper.Json2Object>>(responsetext);
if (result.code != Constants.Success)
{
throw new BimfaceException(result.code);
}
return result.data;
}
}
///
/// 通过条件获取构件属性
///
///
///
///
///
public List GetComponentPropertiesByFiter(long fileId, List elementIds, string group, List keys, bool? includeOverrides = null)
{
GetAccessToken();
var requestBody = new ElementPropertyFilterRequest() { elementIds = elementIds };
var groupFilter = new GroupAndKeysPair() { group = group, keys = keys };
requestBody.filter = new List() { groupFilter };
var data = JsonHelper.Object2Json(requestBody.GetJsonDict());
string url = string.Format("https://api.bimface.com/data/v2/files/{0}/elements", fileId);
if (includeOverrides != null)
{
url += "?includeOverrides=" + includeOverrides;
}
using (var httpClient = new HttpClient())
using (var request = new HttpRequestMessage(HttpMethod.Post, url))
{
var autoHeader = new HttpHeaders().GetBasicAuthorHeader(_accesstoken);
request.Headers.Add(autoHeader.Key, autoHeader.Value);
request.Content=new StringContent(data,Encoding.UTF8, "application/json");
var response = httpClient.Send(request);
response.EnsureSuccessStatusCode();
var responsetext=response.Content.ReadAsStringAsync().Result;
var result = JsonHelper.Json2Object>>(responsetext);
if (result.code != Constants.Success)
{
throw new BimfaceException(result.code);
}
return result.data;
}
}
}
}