/*-------------------------------------------------------------------------
* 功能描述: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;
}
}
}