在《C#开发BIMFACE系列25 服务端API之获取模型数据9:获取楼层对应面积分区列表》一文中介绍了如何获取单个模型中单个楼层包含的面积分区列表。有了面积分区列表之后,即可查询单个面积分区的具体信息。

请求地址:GET https://api.bimface.com/data/v2/files/{fileId}/areas

说明:获取单个模型中单个面积分区包含的信息

参数:

请求 path(示例):https://api.bimface.com/data/v2/files/1211223382064960/areas/313467

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

HTTP响应示例(200):

  1. {
  2. "code" : "success",
  3. "data" : {
  4. "area" : 5.168684733047761E7,
  5. "boundary" : "",
  6. "id" : "",
  7. "levelId" : "",
  8. "maxPt" : {
  9. "x" : -4938.068482562385,
  10. "y" : -3201.59397858169,
  11. "z" : 0.0
  12. },
  13. "minPt" : {
  14. "x" : -4938.068482562385,
  15. "y" : -3201.59397858169,
  16. "z" : 0.0
  17. },
  18. "name" : "dining room 4",
  19. "perimeter" : 28802.013920728663,
  20. "properties" : [ {
  21. "group" : "dimension",
  22. "items" : [ {
  23. "code" : "perimeter",
  24. "extension" : "object",
  25. "key" : "perimeter",
  26. "orderNumber" : ,
  27. "unit" : "mm",
  28. "value" : ,
  29. "valueType" :
  30. } ]
  31. } ],
  32. "viewName" : "1 1"
  33. },
  34. "message" : ""
  35. }

封装成对应的C#类如下:

  1. /// <summary>
  2. /// 获取单个面积分区信息返回的结果类
  3. /// </summary>
  4. [Serializable]
  5. public class SingleModelSingleArea : GeneralResponse<Area>
  6. {
  7.  
  8. }

其中 Area 类,请参考《C#开发BIMFACE系列25 服务端API之获取模型数据10:获取楼层对应面积分区列表》。

C#实现方法:

  1. /// <summary>
  2. /// 获取单个模型中单个面积分区信息
  3. /// </summary>
  4. /// <param name="accessToken">【必填】令牌</param>
  5. /// <param name="fileId">【必填】代表该单模型的文件ID</param>
  6. /// <param name="areaId">【必填】面积分区ID</param>
  7. /// <returns></returns>
  8. public virtual SingleModelSingleArea GetSingleModelSingleArea(string accessToken, long fileId, string areaId)
  9. {
  10. // GET https://api.bimface.com/data/v2/files/{fileId}/areas/{areaId}
  11. string url = string.Format(BimfaceConstants.API_HOST + "/data/v2/files/{0}/areas/{1}", fileId, areaId);
  12.  
  13. BimFaceHttpHeaders headers = new BimFaceHttpHeaders();
  14. headers.AddOAuth2Header(accessToken);
  15.  
  16. try
  17. {
  18. SingleModelSingleArea response;
  19.  
  20. HttpManager httpManager = new HttpManager(headers);
  21. HttpResult httpResult = httpManager.Get(url);
  22. if (httpResult.Status == HttpResult.STATUS_SUCCESS)
  23. {
  24. response = httpResult.Text.DeserializeJsonToObject<SingleModelSingleArea>();
  25. }
  26. else
  27. {
  28. response = new SingleModelSingleArea
  29. {
  30. Message = httpResult.RefText
  31. };
  32. }
  33.  
  34. return response;
  35. }
  36. catch (Exception ex)
  37. {
  38. throw new Exception("[获取单个面积分区信息]发生异常!", ex);
  39. }
  40. }

其中调用到的 httpManager.Get() 方法,请参考《C# HTTP系列》

测试

在BIMFACE的控制台中可以看到我们上传的文件列表,模型状态均为转换成功。

使用“bimface_2018_mdv_room.rvt”为例测试上述方法。

在《C#开发BIMFACE系列25 服务端API之获取模型数据10:获取楼层对应面积分区列表》中返回了2个面积分区ID,分别是1092832与1092841。

1092841完整的面积分区信息如下:

  1. success
  2.  
  3. [area=4333552.00744229,
  4. boundary={"version":"2.0",
  5. "loops":[[[{"z":2999.9998798520546,"y":-3201.5938503598827,"x":4505.6454184675295},
  6. {"z":2999.9998798520546,"y":-3201.5938503598904,"x":7001.9312370150637}
  7. ],
  8. [{"z":2999.9998798520546,"y":-3302.5938463149096,"x":7001.9312370150637},
  9. {"z":2999.9998798520546,"y":-1465.5939198856749,"x":7001.9312370150674}
  10. ],
  11. [{"z":2999.9998798520546,"y":-1465.5939198856749,"x":7001.9312370150665},
  12. {"z":2999.9998798520546,"y":-1465.5939198856668,"x":4505.6454184675331}
  13. ],
  14. [{"z":2999.9998798520546,"y":-1465.5939198856677,"x":4505.6454184675331},
  15. {"z":2999.9998798520546,"y":-3302.5938463149018,"x":4505.64541846753}
  16. ]
  17. ]
  18. ]
  19. },
  20. id=,
  21. levelId=,
  22. maxPt=[x=7001.93123701507, y=-1465.59391988567, z=2999.99987985205],
  23. minPt=[x=4505.64541846753, y=-3302.59384631491, z=2999.99987985205],
  24. name=面积 ,
  25. perimeter=8104.57151246125,
  26. properties=[group=其他,
  27. items=[code=, extension=, key=面积类型, orderNumber=,unit=,value=建筑公共面积,valueType=]
  28. ]
  29. [group=尺寸标注,
  30. items=[code=, extension=, key=周长, orderNumber=,unit=mm,value=,valueType=]
  31. [code=, extension=, key=计算高度, orderNumber=,unit=mm,value=,valueType=]
  32. [code=, extension=, key=面积, orderNumber=,unit=m²,value=,valueType=]
  33. ]
  34. [group=标识数据,
  35. items=[code=, extension=, key=名称, orderNumber=,unit=,value=面积,valueType=]
  36. [code=, extension=, key=图像, orderNumber=,unit=,value=,valueType=]
  37. [code=, extension=, key=注释, orderNumber=,unit=,value=,valueType=]
  38. [code=, extension=, key=编号, orderNumber=,unit=,value=,valueType=]
  39. ]
  40. [group=限制条件,
  41. items=[code=, extension=, key=标高, orderNumber=,unit=,value=Level ,valueType=]
  42. ],
  43. viewName=
  44. ]

测试代码如下:

  1. // 获取单个面积分区信息
  2. protected void btnGetSingleModelSingleArea_Click(object sender, EventArgs e)
  3. {
  4. long fileId = txtFileID.Text.Trim().ToLong();
  5. string areaId = txtAreaId.Text.Trim();
  6. FileConvertApi api = new FileConvertApi();
  7. SingleModelSingleArea response = api.GetSingleModelSingleArea(txtAccessToken.Text, fileId, areaId);
  8.  
  9. txtResult.Text = response.Code.ToString2()
  10. + Environment.NewLine
  11. + response.Message.ToString2()
  12. + Environment.NewLine
  13. + response.Data;
  14. }
 

C#开发BIMFACE系列26 服务端API之获取模型数据11:获取单个面积分区信息的更多相关文章

  1. C#开发BIMFACE系列45 服务端API之创建离线数据包

    BIMFACE二次开发系列目录     [已更新最新开发文章,点击查看详细] BIMFACE的常规应用方式有公有云与私有化部署两种方式,并且浏览模型或者图纸需要使用ViewToken,ViewToke ...

  2. C#开发BIMFACE系列46 服务端API之离线数据包下载及结构详解

    BIMFACE二次开发系列目录     [已更新最新开发文章,点击查看详细] 在前一篇博客<C#开发BIMFACE系列45 服务端API之创建离线数据包>中通过调用接口成功的创建一个离线数 ...

  3. C#开发BIMFACE系列40 服务端API之模型集成

    BIMFACE二次开发系列目录     [已更新最新开发文章,点击查看详细] 随着建筑信息化模型技术的发展,越来越多的人选择在云端浏览建筑模型.现阶段的云端模型浏览大多是基于文件级别,一次只可以浏览一 ...

  4. C#开发BIMFACE系列41 服务端API之模型对比

    BIMFACE二次开发系列目录     [已更新最新开发文章,点击查看详细] 在建筑施工图审查系统中,设计单位提交设计完成的模型/图纸,审查专家审查模型/图纸.审查过程中如果发现不符合规范的地方,则流 ...

  5. C#开发BIMFACE系列42 服务端API之图纸对比

    BIMFACE二次开发系列目录     [已更新最新开发文章,点击查看详细] 在我的前一篇博客<C#开发BIMFACE系列42 服务端API之图纸对比>中详细介绍了BIMFACE服务端接口 ...

  6. C#开发BIMFACE系列43 服务端API之图纸拆分

    BIMFACE二次开发系列目录     [已更新最新开发文章,点击查看详细] 在上一篇博客<C#开发BIMFACE系列42 服务端API之图纸对比>的最后留了一个问题,在常规业务场景下,一 ...

  7. C#开发BIMFACE系列44 服务端API之计算图纸对比差异项来源自哪个图框

    BIMFACE二次开发系列目录     [已更新最新开发文章,点击查看详细] 在前两篇博客<C#开发BIMFACE系列42 服务端API之图纸对比>.<C#开发BIMFACE系列43 ...

  8. C#开发BIMFACE系列6 服务端API之获取文件信息

    在<C#开发BIMFACE系列4 服务端API之源上传文件>.<C#开发BIMFACE系列5 服务端API之文件直传>两篇文章中详细介绍了如何将本地文件上传到BIMFACE服务 ...

  9. C#开发BIMFACE系列4 服务端API之源上传文件

    在注册成为BIMFACE的应用开发者后,要能在浏览器里浏览你的模型或者获取你模型内的BIM数据, 首先需要把你的模型文件上传到BIMFACE.根据不同场景,BIMFACE提供了丰富的文件相关的接口. ...

随机推荐

  1. Linux命令详解 三

    Linux用户和组的属性与权限本章结构1.用户账号和组账号概述2.用户账号和组账号管理3.查询账号信息4.查看目录或文件的属性5.设置目录或文件的权限6.设置目录或文件的归属 前言在linux中一切都 ...

  2. linux 磁盘分区和挂载看这一篇就够了

    Linux fdisk 和 mount 命令操作指南,linux磁盘管理.新增磁盘.挂载新硬盘(linux运维入门) 首先列出文件系统的整体磁盘空间使用情况.可以用来查看磁盘已被使用多少空间和还剩余多 ...

  3. 第二篇:C++画圆

    安装GUI开发工具easyX #include <graphics.h>#include <Windows.h> int main(void) { initgraph(640, ...

  4. Think in Java 笔记(chapter1-7)

    Content Chapter 1:对象导论 Chapter 2:一切都是对象 Chapter 3:操作符 Chapter 4:控制执行流程 Chapter 5:初始化与清理 Chapter 6:访问 ...

  5. 2019年跨越速递Java工程师笔试题

    1.下面哪个选项可以用于JSP页面之间传递对象(A C) A application B page C session D error  E response 评语:这道题考察的是对JSP内置对象的了 ...

  6. sublime插件开发教程3

    今天就看下api的使用方法 中文的api文档 https://mux.alimama.com/posts/549.html#sublime.View sublime模块 方法 返回值 描述 set_t ...

  7. 四面快手、终拿Offer,想告诉你的一些事情

    本篇面经来自于群里粉丝朋友的分享,希望对你有所帮助! 快手高开及以上职级面试 是没有笔试或者机试的,所以从第一轮开始就是直接面对面试官. 一轮 主要考察对Java基础的理解和深入程度. Spring ...

  8. distinct关键字对执行计划的影响

    一.前言 最近看到一段话,"count(distinct 列名)若列上有索引,且有非空约束或在where子句中使用is not null,则会选择索引快速全扫描.其余情况则选择全表扫描&qu ...

  9. Gerrit常见命令及最佳实践

    概述 本文记录了笔者在使用Gerrit(一种免费.开放源代码的代码审查软件)过程中的一些微小的经验,在这里做个简单的分享. 克隆工程 git clone ssh://tusi@xx.xx.cn:294 ...

  10. Git - Git基本常用命令

    Git基本常用命令 mkdir:         XX (创建一个空目录 XX指目录名) pwd:          显示当前目录的路径. git init          把当前的目录变成可以管理 ...