|
@@ -4,8 +4,11 @@ using System.Linq;
|
|
using System.Text;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Threading.Tasks;
|
|
using Newtonsoft.Json;
|
|
using Newtonsoft.Json;
|
|
|
|
+using Newtonsoft.Json.Converters;
|
|
using Newtonsoft.Json.Linq;
|
|
using Newtonsoft.Json.Linq;
|
|
using SAGA.MBI.JsonConvert;
|
|
using SAGA.MBI.JsonConvert;
|
|
|
|
+using SAGA.MBI.RevitExport.Entity;
|
|
|
|
+using SAGA.RevitUtils;
|
|
|
|
|
|
namespace SAGA.MBI.RevitExport
|
|
namespace SAGA.MBI.RevitExport
|
|
{
|
|
{
|
|
@@ -15,12 +18,12 @@ namespace SAGA.MBI.RevitExport
|
|
public class ExportDb
|
|
public class ExportDb
|
|
{
|
|
{
|
|
private readonly Dictionary<string,List<MbiElement>> m_DataSource=new Dictionary<string, List<MbiElement>>();
|
|
private readonly Dictionary<string,List<MbiElement>> m_DataSource=new Dictionary<string, List<MbiElement>>();
|
|
- /// <summary>
|
|
|
|
- /// 清理数据
|
|
|
|
- /// </summary>
|
|
|
|
- public void ClaerData()
|
|
|
|
|
|
+
|
|
|
|
+ protected BimDocument Document { get; private set; }
|
|
|
|
+
|
|
|
|
+ public ExportDb()
|
|
{
|
|
{
|
|
- m_DataSource.Clear();
|
|
|
|
|
|
+ Document = new BimDocument();
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// <summary>
|
|
/// 增加导出关联数据
|
|
/// 增加导出关联数据
|
|
@@ -41,17 +44,18 @@ namespace SAGA.MBI.RevitExport
|
|
dataSource = new List<MbiElement>();
|
|
dataSource = new List<MbiElement>();
|
|
m_DataSource.Add(flag, dataSource);
|
|
m_DataSource.Add(flag, dataSource);
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+ //Generate Object Id
|
|
|
|
+ var id = this.Document.NewObject(element)?.Id;
|
|
dataSource.Add(element);
|
|
dataSource.Add(element);
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// <summary>
|
|
/// 生成json字符串
|
|
/// 生成json字符串
|
|
/// </summary>
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
/// <returns></returns>
|
|
- public string ToJsonString()
|
|
|
|
|
|
+ public string ToJsonString(string sagaName)
|
|
{
|
|
{
|
|
string result = string.Empty;
|
|
string result = string.Empty;
|
|
- JObject jobject= ToJsonObject();
|
|
|
|
|
|
+ JObject jobject= ToJsonObject(sagaName);
|
|
result = jobject.ToString();
|
|
result = jobject.ToString();
|
|
return result;
|
|
return result;
|
|
}
|
|
}
|
|
@@ -59,37 +63,54 @@ namespace SAGA.MBI.RevitExport
|
|
/// 转化成Json对象
|
|
/// 转化成Json对象
|
|
/// </summary>
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
/// <returns></returns>
|
|
- public JObject ToJsonObject()
|
|
|
|
|
|
+ public JObject ToJsonObject(string sagaName="")
|
|
{
|
|
{
|
|
- JsonSerializerSettings jsetting = new JsonSerializerSettings();
|
|
|
|
|
|
+ JsonSerializerSettings jsetting = new JsonSerializerSettings() { NullValueHandling = NullValueHandling.Ignore };
|
|
|
|
+ jsetting.Converters.Add(new BimIdConverter());
|
|
jsetting.Converters.Add(new XYZConvert());
|
|
jsetting.Converters.Add(new XYZConvert());
|
|
|
|
+ jsetting.Converters.Add(new StringEnumConverter());
|
|
var serializer = JsonSerializer.Create(jsetting);
|
|
var serializer = JsonSerializer.Create(jsetting);
|
|
JObject jobject = new JObject();
|
|
JObject jobject = new JObject();
|
|
foreach (var collection in m_DataSource)
|
|
foreach (var collection in m_DataSource)
|
|
{
|
|
{
|
|
jobject.Add(collection.Key, JArray.FromObject(collection.Value, serializer));
|
|
jobject.Add(collection.Key, JArray.FromObject(collection.Value, serializer));
|
|
}
|
|
}
|
|
- return jobject;
|
|
|
|
|
|
+ JObject jelements=new JObject();
|
|
|
|
+ jelements.Add("Elements",jobject);
|
|
|
|
+ jelements.Add("PlanName", sagaName);
|
|
|
|
+ JArray jentityList=new JArray();
|
|
|
|
+ jentityList.Add(jelements);
|
|
|
|
+ var jresult=new JObject();
|
|
|
|
+ jresult.Add("entityList", jentityList);
|
|
|
|
+ return jresult;
|
|
}
|
|
}
|
|
public void AddWall(MbiWall mbiWall)
|
|
public void AddWall(MbiWall mbiWall)
|
|
{
|
|
{
|
|
- AddObject("WallList", mbiWall);
|
|
|
|
|
|
+ AddObject("Walls", mbiWall);
|
|
}
|
|
}
|
|
public void AddVirtualWall(MbiVirtualWall mbiVirtaulWall)
|
|
public void AddVirtualWall(MbiVirtualWall mbiVirtaulWall)
|
|
{
|
|
{
|
|
- AddObject("VirtualWallList", mbiVirtaulWall);
|
|
|
|
|
|
+ AddObject("VirtualWalls", mbiVirtaulWall);
|
|
}
|
|
}
|
|
public void AddColumn(MbiColumn mbiColumn)
|
|
public void AddColumn(MbiColumn mbiColumn)
|
|
{
|
|
{
|
|
- AddObject("ColumnList", mbiColumn);
|
|
|
|
|
|
+ AddObject("Columns", mbiColumn);
|
|
}
|
|
}
|
|
public void AddSpace(MbiSpace mbiSpace)
|
|
public void AddSpace(MbiSpace mbiSpace)
|
|
{
|
|
{
|
|
- AddObject("SpaceList", mbiSpace);
|
|
|
|
|
|
+ AddObject("Spaces", mbiSpace);
|
|
}
|
|
}
|
|
public void AddEquipment(MbiEquipment mbiEquipment)
|
|
public void AddEquipment(MbiEquipment mbiEquipment)
|
|
{
|
|
{
|
|
- AddObject("EquipmentList", mbiEquipment);
|
|
|
|
|
|
+ AddObject("Equipments", mbiEquipment);
|
|
|
|
+ }
|
|
|
|
+ public void AddDoor(MbiDoor mbiDoor)
|
|
|
|
+ {
|
|
|
|
+ AddObject("Doors", mbiDoor);
|
|
|
|
+ }
|
|
|
|
+ public void AddWindow(MbiWindow mbiWindow)
|
|
|
|
+ {
|
|
|
|
+ AddObject("Windows", mbiWindow);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|