在Revit等BIM设计工具中可以给模型的某个部位添加链接信息。即类似于在Office Word、Excel 中给一段文字添加本地文件链接或者网址链接等类似功能。例如下面的一个RVT模型种包含了2个链接。

下面详细介绍如何获取单个模型包含的所有链接信息。

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

说明:获取一个模型种包含的所有链接信息

参数:

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

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

HTTP响应示例(200):

{
"code" : "success",
"data" : [ {
"guid" : "ffb665b7-067f-4cd6-b080-214e96db0f73-00058185",
"id" : ,
"name" : "file_link.rvt : 12 : loc <not shared>",
"transform" : ""
} ],
"message" : ""
}

返回的结果封装成 SingleModelLink 类

/// <summary>
/// 获取单个模型的链接信息返回的结果类
/// </summary>
[Serializable]
public class SingleModelLink : GeneralResponse<List<Link>>
{ }
[Serializable]
public class Link
{
[JsonProperty("guid")]
public string Guid { get; set; } [JsonProperty("id")]
public long? Id { get; set; } /// <summary>
/// 样例 : "file_link.rvt : 12
/// </summary>
[JsonProperty("name")]
public string Name { get; set; } [JsonProperty("transform")]
public string Transform { get; set; } /// <summary>返回表示当前对象的字符串。</summary>
/// <returns>表示当前对象的字符串。</returns>
public override string ToString()
{
return String.Format("[Link guid={0}, id={1}, name={2},transform={3}]",
Guid, Id, Name, Transform);
}
}

C#实现方法:

 /// <summary>
/// 获取单个模型的楼层信息
/// </summary>
/// <param name="accessToken">【必填】令牌</param>
/// <param name="fileId">【必填】代表该单模型的文件ID</param>
/// <returns></returns>
public virtual SingleModelLink GetSingleModelLink(string accessToken, long fileId)
{
// GET https://api.bimface.com/data/v2/files/{fileId}/links
string url = string.Format(BimfaceConstants.API_HOST + "/data/v2/files/{0}/links", fileId); BimFaceHttpHeaders headers = new BimFaceHttpHeaders();
headers.AddOAuth2Header(accessToken); try
{
SingleModelLink response; HttpManager httpManager = new HttpManager(headers);
HttpResult httpResult = httpManager.Get(url);
if (httpResult.Status == HttpResult.STATUS_SUCCESS)
{
response = httpResult.Text.DeserializeJsonToObject<SingleModelLink>();
}
else
{
response = new SingleModelLink
{
Message = httpResult.RefText
};
} return response;
}
catch (Exception ex)
{
throw new Exception("[获取模型链接信息]发生异常!", ex);
}
}

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

测试

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

 

以模型 “A4.rvt” 为例测试上述的方法

查询到了2条链接信息,与文章开始处的源文件中的链接信息对应。

并不是所有的模型中都包含链接信息,如果不包含,则返回 null

测试代码如下:
 // 获取单模型链接信息
protected void btnGetSingleModelLink_Click(object sender, EventArgs e)
{
long fileId = txtFileID.Text.Trim().ToLong();
FileConvertApi api = new FileConvertApi();
SingleModelLink response = api.GetSingleModelLink(txtAccessToken.Text, fileId); StringBuilder sb = new StringBuilder();
if (response.Data != null)
{
List<Link> lstLink = response.Data;
foreach (var link in lstLink)
{
sb.AppendLine(link.ToString());
}
} txtResult.Text = response.Code.ToString2()
+ Environment.NewLine
+ response.Message.ToString2()
+ Environment.NewLine
+ sb;
}
 
 

C#开发BIMFACE系列23 服务端API之获取模型数据8:获取模型链接信息的更多相关文章

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

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

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

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

  3. C#开发BIMFACE系列13 服务端API之获取转换状态

    系列目录     [已更新最新开发文章,点击查看详细] 在<C#开发BIMFACE系列12 服务端API之文件转换>中详细介绍了7种文件转换的方法.发起源文件/模型转换后,转换过程可能成功 ...

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

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

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

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

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

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

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

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

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

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

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

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

随机推荐

  1. Cesium 动态绘制点线面(附源码下载)

    我写的这个点线面绘制融入了增删改的功能.其中可以通过手动点击地图进行动态绘制线面,也支持通过给定坐标数组来进行线面的增加.绘制好的线面,可以点击进行修改:以上介绍了我的大概的要给操作,下面以面的构建来 ...

  2. canvas在vue中的应用

    使用cavas可以绘制各种图表.生成二维码.制作H5小游戏. 生命周期 canvas应该在mounted的生命周期中初始化,在updated中是无效的. export default { mounte ...

  3. SQL Server通过条件搜索获取相关的存储过程等对象

    在SQL Server中,我们经常遇到一些需求,需要去搜索存储过程(Procedure).函数(Function)等对象是否包含某个对象或涉及某个对象,例如,我需要查找那些存储过程.函数是否调用了链接 ...

  4. 梁敬彬老师的《收获,不止SQL优化》,关于如何缩短SQL调优时间,给出了三个步骤,

    梁敬彬老师的<收获,不止SQL优化>,关于如何缩短SQL调优时间,给出了三个步骤, 1. 先获取有助调优的数据库整体信息 2. 快速获取SQL运行台前信息 3. 快速获取SQL关联幕后信息 ...

  5. Kali Linux上外网

    第一部分 攻击者杀链 第一章  走进Kali Linux 镜像准备:32位kali linxu 2019(之前下载好了,按书上的版本太低了要重新配置好多东西就用最新版了) , win XP 前两章照着 ...

  6. 划分为k个相等的子集

    给定一个整数数组  nums 和一个正整数 k,找出是否有可能把这个数组分成 k 个非空子集,其总和都相等. 示例 1: 输入: nums = [4, 3, 2, 3, 5, 2, 1], k = 4 ...

  7. 富文本编辑器 tinymce 的安装与使用

    百度的富文本编辑器大家都熟悉,那么下面给大家介绍一款富文本编辑器tinymce ,个人感觉比百度的界面好看,调用方便,就不知道各位大神怎么看咯! tinymce中文文档 以下是vue中使用示例,献上最 ...

  8. 数组累计-reduce

    reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值. reduce() 可以作为一个高阶函数,用于函数的 compose. array.reduce(f ...

  9. C sharp #005# 对象与对象变量

    饮水思源:金老师的自学网站 索引 自动装箱 “只读”对象 设定启动窗体 ShowDialog与Show 自动装箱 基本类型的变量值可以自动装箱到一个object对象中, 反过来,object对象也可以 ...

  10. 什么是BGP协议

    Border Gateway Protocol,边界网关协议,简称BGP,主要用于互联网AS(自治系统)之间的互联. Linux内核原生支持的.专门用在大规模数据中心维护不同的"自治系统&q ...