/*------------------------------------------------------------------------- * 功能描述:MBIDocument * 作者:xulisong * 创建时间: 2019/6/28 10:57:07 * 版本号:v1.0 * -------------------------------------------------------------------------*/ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Autodesk.Revit.DB; using JBIM; using Newtonsoft.Json.Linq; using SAGA.DotNetUtils.Extend; using SAGA.RevitUtils; using SAGA.RevitUtils.Extends; namespace RevitToJBim.MBI { /// /// 项目传输数据结构 /// public class MBIDocument { public string MBIName { get; set; } public string ModelId { get; set; } public string PlanName { get; set; } public double BaseLevel { get; set; } public Dictionary> Elements { get; private set; } /// /// 附加元素Elements信息 /// /// public void AttachElements(BimDocument document) { var bimObjects = document.BimObjects; var group = bimObjects.GroupBy(bim => bim.ElementType); Dictionary> dic = new Dictionary>(); foreach (var collection in group) { dic[collection.Key + "s"] = collection.ToList(); } Elements = dic; } public static MBIDocument CreateDocument(Document document, string param) { MBIDocument dto = new MBIDocument(); JObject jObject = JObject.Parse(param); dto.MBIName = jObject.GetValueEx("MBIName");//待读取 dto.ModelId = jObject.GetValueEx("ModelId"); //dto.MBIName = "Pj1101010015";//待读取 //dto.ModelId = "6d8642d9d92a11e98e2d2108fa0baa21"; dto.PlanName = document.GetUseView()?.Name; dto.BaseLevel = document.GetUseView()?.GenLevel.Elevation.FromApi().Round(2)??0; return dto; } } }