在《C#开发BIMFACE系列31 服务端API之模型对比2:获取模型对比状态》中介绍了根据对比ID,获取一笔记录的对比状态。由于模型对比是在BIMFACE云端进行的,通常需要5~10分钟,在等待对比的过程中还可以发起更多的模型对比,最后通过接口一次性批量获取模型对比状态 。

该功能与BIMFACE控制台中“图模对比”功能相同

请求地址:POST https://api.bimface.com/compares

说明:应用发起对比以后,可以根据筛选条件,通过该接口批量查询对比状态

参数:

其中 ModelCompareQueryRequest 类如下

 /// <summary>
/// 批量获取模型对比状态的请求参数类
/// </summary>
public class ModelCompareQueryRequest
{
/// <summary>
/// 【必填项】应用的 appKey
/// </summary>
[JsonProperty("appKey")]
public string AppKey { get; set; } /// <summary>
/// 【非必填项】对比后返回的ID,用于获取对比状态或者结果等信息
/// </summary>
[JsonProperty("compareId", NullValueHandling = NullValueHandling.Ignore)]
public long? CompareId { get; set; } /// <summary>
/// 【非必填项】模型对比的类型 rvt(或者igms…​)
/// </summary>
[JsonProperty("type", NullValueHandling = NullValueHandling.Ignore)]
public string Type { get; set; } /// <summary>
/// 【非必填项】文件名称
/// </summary>
[JsonProperty("fileName", NullValueHandling = NullValueHandling.Ignore)]
public string FileName { get; set; } /// <summary>
/// 【非必填项】模型对应的sourceId。例如:389c28de59ee62e66a7d87ec12692a76
/// </summary>
[JsonProperty("sourceId", NullValueHandling = NullValueHandling.Ignore)]
public string SourceId { get; set; } /// <summary>
/// 【非必填项】(分页)当前页码
/// </summary>
[JsonProperty("pageNo", NullValueHandling = NullValueHandling.Ignore)]
public int? PageNo { get; set; } /// <summary>
/// 【非必填项】(分页)每页记录数
/// </summary>
[JsonProperty("pageSize", NullValueHandling = NullValueHandling.Ignore)]
public int? PageSize { get; set; } /// <summary>
/// 【非必填项】模型状态码。0(所有) 1(处理中) 99(成功) -1(失败)
/// </summary>
[JsonProperty("status", NullValueHandling = NullValueHandling.Ignore)]
public short? Status { get; set; } /// <summary>
/// 【非必填项】筛选类型。例如:create_time desc
/// </summary>
[JsonProperty("sortType", NullValueHandling = NullValueHandling.Ignore)]
public string SortType { get; set; } /// <summary>
/// 【非必填项】对比开始时间,格式:yyyy-MM-dd hh:mm:ss
/// </summary>
[JsonProperty("startDate", NullValueHandling = NullValueHandling.Ignore)]
public string StartDate { get; set; } /// <summary>
/// 【非必填项】对比结束时间,格式:yyyy-MM-dd hh:mm:ss
/// </summary>
[JsonProperty("endDate", NullValueHandling = NullValueHandling.Ignore)]
public string EndDate { get; set; }
}

请求 path(示例):https://api.bimface.com/compares

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

请求 body(示例):

 {
"appKey" : "appKey",
"compareId" : ,
"endDate" : "string",
"fileName" : "fileName",
"pageNo" : ,
"pageSize" : ,
"sortType" : "sortType",
"sourceId" : "23be51b7e1eb4228bd896ac1a4640c62",
"startDate" : "string",
"status" : ,
"type" : "type"
}

HTTP响应示例(200):

 {
"code" : "success",
"data" : {
"list" : [ {
"compareId" : ,
"cost" : ,
"createTime" : "2017-12-25 16:17:27",
"name" : "compare0001",
"offlineDatabagStatus" : "offlineDatabagStatus",
"priority" : ,
"reason" : "reason",
"sourceId" : "",
"status" : "succcess",
"thumbnail" : [ "https://m.bimface.com/9b711803a43b92d871cde346b63e5019/thumbnail/96.png" ],
"type" : "type",
"workerType" : "workerType"
} ],
"page" : {
"htmlDisplay" : "string",
"nextPage" : ,
"pageNo" : ,
"pageSize" : ,
"prePage" : ,
"startIndex" : ,
"totalCount" : ,
"totalPages" :
}
},
"message" : ""
}

返回体参数说明请参考 ModelCompareBean 类

 public class ModelCompareBean
{
/// <summary>
/// 对比后返回的ID,用于获取对比状态或者结果等信息
/// </summary>
[JsonProperty("compareId", NullValueHandling = NullValueHandling.Ignore)]
public long? CompareId { get; set; } /// <summary>
/// 对比完成的消耗时间,单位是秒
/// </summary>
[JsonProperty("cost", NullValueHandling = NullValueHandling.Ignore)]
public int? Cost { get; set; } /// <summary>
/// 对比开始时间,格式:yyyy-MM-dd hh:mm:ss
/// </summary>
[JsonProperty("createTime", NullValueHandling = NullValueHandling.Ignore)]
public string CreateTime { get; set; } /// <summary>
/// 用户指定对比后的模型的名字
/// </summary>
[JsonProperty("name", NullValueHandling = NullValueHandling.Ignore)]
public string Name { get; set; } /// <summary>
/// 离线数据包生成状态。prepare(未生成); processing(生成中); success(生成成功); failed(生成失败)
/// </summary>
[JsonProperty("offlineDatabagStatus", NullValueHandling = NullValueHandling.Ignore)]
public string OfflineDatabagStatus { get; set; } /// <summary>
/// 对比优先级。取值 1、2、3。数字越大,优先级越低。默认为2
/// </summary>
[JsonProperty("priority", NullValueHandling = NullValueHandling.Ignore)]
public int? Priority { get; set; } /// <summary>
/// 若对比失败,返回失败原因
/// </summary>
[JsonProperty("reason", NullValueHandling = NullValueHandling.Ignore)]
public string Reason { get; set; } /// <summary>
/// 第三方应用自己的ID
/// </summary>
[JsonProperty("sourceId", NullValueHandling = NullValueHandling.Ignore)]
public string SourceId { get; set; } /// <summary>
/// 对比状态:prepare(待对比)、processing(对比中)、success(对比成功)、failed(对比失败)
/// </summary>
[JsonProperty("status", NullValueHandling = NullValueHandling.Ignore)]
public string Status { get; set; } /// <summary>
/// 对比几个缩略图
/// </summary>
[JsonProperty("thumbnail", NullValueHandling = NullValueHandling.Ignore)]
public string[] Thumbnails { get; set; } /// <summary>
/// 模型对比的类型 rvt(或者igms…​)
/// </summary>
[JsonProperty("type", NullValueHandling = NullValueHandling.Ignore)]
public string Type { get; set; } /// <summary>
/// 处理对比任务的worker类型。model-compare(或者drawing-compare…​)
/// </summary>
[JsonProperty("workerType", NullValueHandling = NullValueHandling.Ignore)]
public string WorkerType { get; set; } /// <summary>返回表示当前对象的字符串。</summary>
/// <returns>表示当前对象的字符串。</returns>
public override string ToString()
{
return this.SerializeToJson();
}

C#实现方法:

 /// <summary>
/// 批量获取模型对比状态
/// </summary>
/// <param name="accessToken">【必填】令牌</param>
/// <param name="request">【必填】批量获取模型对比状态的请求参数</param>
/// <returns></returns>
public virtual ModelCompareQueryResponse GetCompareStatusList(string accessToken, ModelCompareQueryRequest request)
{
//POST https://api.bimface.com/compares
string url = BimfaceConstants.API_HOST + "/compares";
string data = request.SerializeToJson();
BimFaceHttpHeaders headers = new BimFaceHttpHeaders();
headers.AddOAuth2Header(accessToken); try
{
ModelCompareQueryResponse response; HttpManager httpManager = new HttpManager(headers);
HttpResult httpResult = httpManager.Post(url, data);
if (httpResult.Status == HttpResult.STATUS_SUCCESS)
{
response = httpResult.Text.DeserializeJsonToObject<ModelCompareQueryResponse>();
}
else
{
response = new ModelCompareQueryResponse
{
Message = httpResult.RefText
};
} return response;
}
catch (Exception ex)
{
throw new Exception("[批量获取模型对比状态]发生异常!", ex);
}
}

C#开发BIMFACE系列32 服务端API之模型对比3:批量获取模型对比状态的更多相关文章

  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. 构建一个简单的 Google Dialogflow 聊天机器人【上】

    概述 本教程将向您展示如何构建一个简单的Dialogflow聊天机器人,引导您完成Dialogflow的最重要功能.您将学习如何: 创建Dialogflow帐户和第一个Dialogflow聊天机器人, ...

  2. Markdown 高阶语法

    记录一些 Markdown 的高阶语法,想起来什么,再更新 分割线 两条分割线 *** *** 插入表格 Column Column Column Row Content Content | Colu ...

  3. Java工程师常用Linux命令

    本文所列的Linux常用命令包含:文件相关(目录操作,内容查看,查找与比较,压缩与解压),进程管理,网络操作,系统管理,性能监测与优化,Java常用工具多个方面概述. 文件目录基本操作 ls 命令用来 ...

  4. 模块 shutil_zipfile_tarfile压缩解压

    shutil_zipfile_tarfile压缩解压 shutil 模块 高级的 文件.文件夹.压缩包 处理模块 shutil.copyfileobj(fsrc, fdst[, length]) #将 ...

  5. HIT软件构造课程3.2总结(Designing Specificaton)

    本节转向“方法/函数/操作”如何定义 上一节是名词 这一节是动词 1.编程语言中的函数和方法 方法 使用者不需要知道方法内部如何实现,这叫做“抽象”. 参数 参数类型是否匹配,在静态检查时完成. 返回 ...

  6. 相见恨晚的 Git 命令动画演示,一看就懂!

    虽然 Git 是一个强大的工具,但是我觉得大部分人都会同意我说的:它也可以是一个--噩梦!我一直觉得,使用 Git 的时候把操作过程在脑海里视觉化会非常有用:当我执行某个命令的时候,分支之间是如何交互 ...

  7. JavaScript-原始值和引用值

    一.原始值和引用值的概念 在 ECMAScript 中,变量可以存在两种类型的值,即原始值和引用值. 1.1 原始值 (1)原始值指的是 原始类型 的值,也叫 基本类型,例如 Number.Stirn ...

  8. 1025 PAT Ranking (25 分)

    Programming Ability Test (PAT) is organized by the College of Computer Science and Technology of Zhe ...

  9. 数据挖掘 决策树 Decision tree

    数据挖掘-决策树 Decision tree 目录 数据挖掘-决策树 Decision tree 1. 决策树概述 1.1 决策树介绍 1.1.1 决策树定义 1.1.2 本质 1.1.3 决策树的组 ...

  10. 【php】COOKIE和SESSION

    一. COOKIE(小甜点,小饼干) a) 生活中的实例: i. 大保健的会员卡(记录你的姓名.性别.ID号码.手机号……) ii. 超市的会员卡(记录你的姓名,性别,会员积分) b) PHP当中的实 ...