MBIItem.cs 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. 
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. using Newtonsoft.Json;
  8. using Newtonsoft.Json.Linq;
  9. using SAGA.DotNetUtils;
  10. namespace SAGA.Models
  11. {
  12. public class MBIItem
  13. {
  14. #region 基础设置
  15. /// <summary>
  16. /// Id信息
  17. /// </summary>
  18. [JsonProperty("id")]
  19. public string Id { get; set; }
  20. /// <summary>
  21. /// 关联信息relation
  22. /// </summary>
  23. [JsonProperty("relation")]
  24. public JObject Relations { get; set; }
  25. /// <summary>
  26. /// 关联信息点
  27. /// </summary>
  28. [JsonProperty("infos")]
  29. public JObject Infos { get; set; }
  30. /// <summary>
  31. /// 转换成json对象
  32. /// </summary>
  33. /// <returns></returns>
  34. public virtual JObject ToJObject()
  35. {
  36. JObject j = new JObject();
  37. if (!string.IsNullOrEmpty(Id))
  38. {
  39. j.Add("id", this.Id);
  40. }
  41. if (Relations != null)
  42. {
  43. j.Add("relation", Relations);
  44. }
  45. var attach = Infos;
  46. if (attach == null)
  47. {
  48. attach = new JObject();
  49. }
  50. j.Add("infos", attach);
  51. return j;
  52. }
  53. #endregion
  54. #region 属性信息
  55. /// <summary>
  56. /// 建筑id
  57. /// </summary>
  58. public string BuildingId { get; set; }
  59. /// <summary>
  60. /// 楼层id
  61. /// </summary>
  62. public string FloorId { get; set; }
  63. /// <summary>
  64. /// bimid
  65. /// </summary>
  66. public string BimId { get; set; }
  67. /// <summary>
  68. /// 名称
  69. /// </summary>
  70. public string Name { get; set; }
  71. /// <summary>
  72. /// 本地名称
  73. /// </summary>
  74. public string LocalName { get; set; }
  75. #endregion
  76. #region 控制相关
  77. /// <summary>
  78. /// 关联revit模型id
  79. /// </summary>
  80. public int RevitId
  81. {
  82. get
  83. {
  84. int flag = 0;
  85. if (!IsRefRevit)
  86. {
  87. return flag;
  88. }
  89. int index = BimId.IndexOf(":");
  90. if (index > -1)
  91. {
  92. var sub = BimId.Substring(index + 1);
  93. flag = sub.ToInt();
  94. }
  95. return flag;
  96. }
  97. }
  98. /// <summary>
  99. /// 是否关联revit对象
  100. /// </summary>
  101. public bool IsRefRevit
  102. {
  103. get { return !string.IsNullOrEmpty(this.BimId); }
  104. }
  105. #endregion
  106. #region 公开方法
  107. /// <summary>
  108. /// 获取显示标记
  109. /// </summary>
  110. /// <returns></returns>
  111. public virtual string GetDisplay()
  112. {
  113. if (string.IsNullOrEmpty(LocalName))
  114. {
  115. return Name;
  116. }
  117. return LocalName;
  118. }
  119. #endregion
  120. }
  121. }