C#开发BIMFACE系列26 服务端API之获取模型数据11:获取单个面积分区信息
在《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):
- {
- "code" : "success",
- "data" : {
- "area" : 5.168684733047761E7,
- "boundary" : "",
- "id" : "",
- "levelId" : "",
- "maxPt" : {
- "x" : -4938.068482562385,
- "y" : -3201.59397858169,
- "z" : 0.0
- },
- "minPt" : {
- "x" : -4938.068482562385,
- "y" : -3201.59397858169,
- "z" : 0.0
- },
- "name" : "dining room 4",
- "perimeter" : 28802.013920728663,
- "properties" : [ {
- "group" : "dimension",
- "items" : [ {
- "code" : "perimeter",
- "extension" : "object",
- "key" : "perimeter",
- "orderNumber" : ,
- "unit" : "mm",
- "value" : ,
- "valueType" :
- } ]
- } ],
- "viewName" : "1 1"
- },
- "message" : ""
- }
封装成对应的C#类如下:
- /// <summary>
- /// 获取单个面积分区信息返回的结果类
- /// </summary>
- [Serializable]
- public class SingleModelSingleArea : GeneralResponse<Area>
- {
- }
其中 Area 类,请参考《C#开发BIMFACE系列25 服务端API之获取模型数据10:获取楼层对应面积分区列表》。
C#实现方法:
- /// <summary>
- /// 获取单个模型中单个面积分区信息
- /// </summary>
- /// <param name="accessToken">【必填】令牌</param>
- /// <param name="fileId">【必填】代表该单模型的文件ID</param>
- /// <param name="areaId">【必填】面积分区ID</param>
- /// <returns></returns>
- public virtual SingleModelSingleArea GetSingleModelSingleArea(string accessToken, long fileId, string areaId)
- {
- // GET https://api.bimface.com/data/v2/files/{fileId}/areas/{areaId}
- string url = string.Format(BimfaceConstants.API_HOST + "/data/v2/files/{0}/areas/{1}", fileId, areaId);
- BimFaceHttpHeaders headers = new BimFaceHttpHeaders();
- headers.AddOAuth2Header(accessToken);
- try
- {
- SingleModelSingleArea response;
- HttpManager httpManager = new HttpManager(headers);
- HttpResult httpResult = httpManager.Get(url);
- if (httpResult.Status == HttpResult.STATUS_SUCCESS)
- {
- response = httpResult.Text.DeserializeJsonToObject<SingleModelSingleArea>();
- }
- else
- {
- response = new SingleModelSingleArea
- {
- Message = httpResult.RefText
- };
- }
- return response;
- }
- catch (Exception ex)
- {
- throw new Exception("[获取单个面积分区信息]发生异常!", ex);
- }
- }
其中调用到的 httpManager.Get() 方法,请参考《C# HTTP系列》
在BIMFACE的控制台中可以看到我们上传的文件列表,模型状态均为转换成功。
使用“bimface_2018_mdv_room.rvt”为例测试上述方法。
在《C#开发BIMFACE系列25 服务端API之获取模型数据10:获取楼层对应面积分区列表》中返回了2个面积分区ID,分别是1092832与1092841。
1092841完整的面积分区信息如下:
- success
- [area=4333552.00744229,
- boundary={"version":"2.0",
- "loops":[[[{"z":2999.9998798520546,"y":-3201.5938503598827,"x":4505.6454184675295},
- {"z":2999.9998798520546,"y":-3201.5938503598904,"x":7001.9312370150637}
- ],
- [{"z":2999.9998798520546,"y":-3302.5938463149096,"x":7001.9312370150637},
- {"z":2999.9998798520546,"y":-1465.5939198856749,"x":7001.9312370150674}
- ],
- [{"z":2999.9998798520546,"y":-1465.5939198856749,"x":7001.9312370150665},
- {"z":2999.9998798520546,"y":-1465.5939198856668,"x":4505.6454184675331}
- ],
- [{"z":2999.9998798520546,"y":-1465.5939198856677,"x":4505.6454184675331},
- {"z":2999.9998798520546,"y":-3302.5938463149018,"x":4505.64541846753}
- ]
- ]
- ]
- },
- id=,
- levelId=,
- maxPt=[x=7001.93123701507, y=-1465.59391988567, z=2999.99987985205],
- minPt=[x=4505.64541846753, y=-3302.59384631491, z=2999.99987985205],
- name=面积 ,
- perimeter=8104.57151246125,
- properties=[group=其他,
- items=[code=, extension=, key=面积类型, orderNumber=,unit=,value=建筑公共面积,valueType=]
- ]
- [group=尺寸标注,
- items=[code=, extension=, key=周长, orderNumber=,unit=mm,value=,valueType=]
- [code=, extension=, key=计算高度, orderNumber=,unit=mm,value=,valueType=]
- [code=, extension=, key=面积, orderNumber=,unit=m²,value=,valueType=]
- ]
- [group=标识数据,
- items=[code=, extension=, key=名称, orderNumber=,unit=,value=面积,valueType=]
- [code=, extension=, key=图像, orderNumber=,unit=,value=,valueType=]
- [code=, extension=, key=注释, orderNumber=,unit=,value=,valueType=]
- [code=, extension=, key=编号, orderNumber=,unit=,value=,valueType=]
- ]
- [group=限制条件,
- items=[code=, extension=, key=标高, orderNumber=,unit=,value=Level ,valueType=]
- ],
- viewName=
- ]
测试代码如下:
- // 获取单个面积分区信息
- protected void btnGetSingleModelSingleArea_Click(object sender, EventArgs e)
- {
- long fileId = txtFileID.Text.Trim().ToLong();
- string areaId = txtAreaId.Text.Trim();
- FileConvertApi api = new FileConvertApi();
- SingleModelSingleArea response = api.GetSingleModelSingleArea(txtAccessToken.Text, fileId, areaId);
- txtResult.Text = response.Code.ToString2()
- + Environment.NewLine
- + response.Message.ToString2()
- + Environment.NewLine
- + response.Data;
- }
C#开发BIMFACE系列26 服务端API之获取模型数据11:获取单个面积分区信息的更多相关文章
- C#开发BIMFACE系列45 服务端API之创建离线数据包
BIMFACE二次开发系列目录 [已更新最新开发文章,点击查看详细] BIMFACE的常规应用方式有公有云与私有化部署两种方式,并且浏览模型或者图纸需要使用ViewToken,ViewToke ...
- C#开发BIMFACE系列46 服务端API之离线数据包下载及结构详解
BIMFACE二次开发系列目录 [已更新最新开发文章,点击查看详细] 在前一篇博客<C#开发BIMFACE系列45 服务端API之创建离线数据包>中通过调用接口成功的创建一个离线数 ...
- C#开发BIMFACE系列40 服务端API之模型集成
BIMFACE二次开发系列目录 [已更新最新开发文章,点击查看详细] 随着建筑信息化模型技术的发展,越来越多的人选择在云端浏览建筑模型.现阶段的云端模型浏览大多是基于文件级别,一次只可以浏览一 ...
- C#开发BIMFACE系列41 服务端API之模型对比
BIMFACE二次开发系列目录 [已更新最新开发文章,点击查看详细] 在建筑施工图审查系统中,设计单位提交设计完成的模型/图纸,审查专家审查模型/图纸.审查过程中如果发现不符合规范的地方,则流 ...
- C#开发BIMFACE系列42 服务端API之图纸对比
BIMFACE二次开发系列目录 [已更新最新开发文章,点击查看详细] 在我的前一篇博客<C#开发BIMFACE系列42 服务端API之图纸对比>中详细介绍了BIMFACE服务端接口 ...
- C#开发BIMFACE系列43 服务端API之图纸拆分
BIMFACE二次开发系列目录 [已更新最新开发文章,点击查看详细] 在上一篇博客<C#开发BIMFACE系列42 服务端API之图纸对比>的最后留了一个问题,在常规业务场景下,一 ...
- C#开发BIMFACE系列44 服务端API之计算图纸对比差异项来源自哪个图框
BIMFACE二次开发系列目录 [已更新最新开发文章,点击查看详细] 在前两篇博客<C#开发BIMFACE系列42 服务端API之图纸对比>.<C#开发BIMFACE系列43 ...
- C#开发BIMFACE系列6 服务端API之获取文件信息
在<C#开发BIMFACE系列4 服务端API之源上传文件>.<C#开发BIMFACE系列5 服务端API之文件直传>两篇文章中详细介绍了如何将本地文件上传到BIMFACE服务 ...
- C#开发BIMFACE系列4 服务端API之源上传文件
在注册成为BIMFACE的应用开发者后,要能在浏览器里浏览你的模型或者获取你模型内的BIM数据, 首先需要把你的模型文件上传到BIMFACE.根据不同场景,BIMFACE提供了丰富的文件相关的接口. ...
随机推荐
- Linux命令详解 三
Linux用户和组的属性与权限本章结构1.用户账号和组账号概述2.用户账号和组账号管理3.查询账号信息4.查看目录或文件的属性5.设置目录或文件的权限6.设置目录或文件的归属 前言在linux中一切都 ...
- linux 磁盘分区和挂载看这一篇就够了
Linux fdisk 和 mount 命令操作指南,linux磁盘管理.新增磁盘.挂载新硬盘(linux运维入门) 首先列出文件系统的整体磁盘空间使用情况.可以用来查看磁盘已被使用多少空间和还剩余多 ...
- 第二篇:C++画圆
安装GUI开发工具easyX #include <graphics.h>#include <Windows.h> int main(void) { initgraph(640, ...
- Think in Java 笔记(chapter1-7)
Content Chapter 1:对象导论 Chapter 2:一切都是对象 Chapter 3:操作符 Chapter 4:控制执行流程 Chapter 5:初始化与清理 Chapter 6:访问 ...
- 2019年跨越速递Java工程师笔试题
1.下面哪个选项可以用于JSP页面之间传递对象(A C) A application B page C session D error E response 评语:这道题考察的是对JSP内置对象的了 ...
- sublime插件开发教程3
今天就看下api的使用方法 中文的api文档 https://mux.alimama.com/posts/549.html#sublime.View sublime模块 方法 返回值 描述 set_t ...
- 四面快手、终拿Offer,想告诉你的一些事情
本篇面经来自于群里粉丝朋友的分享,希望对你有所帮助! 快手高开及以上职级面试 是没有笔试或者机试的,所以从第一轮开始就是直接面对面试官. 一轮 主要考察对Java基础的理解和深入程度. Spring ...
- distinct关键字对执行计划的影响
一.前言 最近看到一段话,"count(distinct 列名)若列上有索引,且有非空约束或在where子句中使用is not null,则会选择索引快速全扫描.其余情况则选择全表扫描&qu ...
- Gerrit常见命令及最佳实践
概述 本文记录了笔者在使用Gerrit(一种免费.开放源代码的代码审查软件)过程中的一些微小的经验,在这里做个简单的分享. 克隆工程 git clone ssh://tusi@xx.xx.cn:294 ...
- Git - Git基本常用命令
Git基本常用命令 mkdir: XX (创建一个空目录 XX指目录名) pwd: 显示当前目录的路径. git init 把当前的目录变成可以管理 ...