1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- /*-------------------------------------------------------------------------
- * 功能描述:BimJsonUtil
- * 作者:xulisong
- * 创建时间: 2019/6/18 11:23:16
- * 版本号:v1.0
- * -------------------------------------------------------------------------*/
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using JBIM;
- using Newtonsoft.Json;
- using Newtonsoft.Json.Converters;
- using Newtonsoft.Json.Linq;
- namespace RevitToJBim.JsonConverter
- {
- public static class BimJsonUtil
- {
- public static string Serializer(BimDocument document)
- {
- JsonSerializerSettings jsetting = CreateDefaultSettings();
- var bimObjects = document.BimObjects;
- var group = bimObjects.GroupBy(bim => bim.ElementType);
- Dictionary<string, List<BimObject>> dic = new Dictionary<string, List<BimObject>>();
- foreach (var collection in group)
- {
- dic[collection.Key + "s"] = collection.ToList();
- }
- var documentObject = new {MBIName = "PjXXX_001", PlanName = "F1-saga", Elements = dic};
- //var serializer = JsonSerializer.Create(jsetting);
- //var jobject=JObject.FromObject(dic, serializer);
- //jobject.ToString();
- string dataStr =JsonConvert.SerializeObject(documentObject, jsetting);
- return dataStr;
- }
- private static JsonSerializerSettings CreateDefaultSettings()
- {
- JsonSerializerSettings jsetting = new JsonSerializerSettings() { NullValueHandling = NullValueHandling.Ignore };
- jsetting.Converters.Add(new BimIdConverter());
- //mxg 显示x:,y:,z:格式的
- //jsetting.Converters.Add(new XYZConverter());
- jsetting.Converters.Add(new StringEnumConverter());
- jsetting.Converters.Add(new ParameterConverter());
- return jsetting;
- }
- private static DocumentDto ConverToDto(BimDocument document)
- {
- DocumentDto dto = new DocumentDto();
- var bimObjects = document.BimObjects;
- var group = bimObjects.GroupBy(bim => bim.ElementType);
- Dictionary<string, List<BimObject>> dic = new Dictionary<string, List<BimObject>>();
- foreach (var collection in group)
- {
- dic[collection.Key + "s"] = collection.ToList();
- }
- dto.MBIName = "PjXXX_001";//待读取
- dto.PlanName = "F1-saga";
- dto.Elements = dic;
- return dto;
- }
- }
- /// <summary>
- /// 项目传输数据结构
- /// </summary>
- public class DocumentDto
- {
- public string MBIName { get; set; }
- public string PlanName { get; set; }
- public Dictionary<string, List<BimObject>> Elements { get; set; }
- }
- }
|