|
@@ -4,6 +4,7 @@ using System.Linq;
|
|
using System.Windows;
|
|
using System.Windows;
|
|
using CEFSharpWPF;
|
|
using CEFSharpWPF;
|
|
using SAGA.DotNetUtils;
|
|
using SAGA.DotNetUtils;
|
|
|
|
+using SAGA.DotNetUtils.Others;
|
|
using SAGA.GplotRelationComputerManage;
|
|
using SAGA.GplotRelationComputerManage;
|
|
using SAGA.Models;
|
|
using SAGA.Models;
|
|
using SAGA.RevitUtils.Windows;
|
|
using SAGA.RevitUtils.Windows;
|
|
@@ -30,7 +31,6 @@ namespace SAGA.GplotDrawData.View
|
|
/// 展示拓扑类型
|
|
/// 展示拓扑类型
|
|
/// </summary>
|
|
/// </summary>
|
|
public GplotShowType ShowType { get; private set; }
|
|
public GplotShowType ShowType { get; private set; }
|
|
- public Action ComputerAction;
|
|
|
|
public Action LoadData;
|
|
public Action LoadData;
|
|
|
|
|
|
protected override void OnLoaded(object sender, RoutedEventArgs e)
|
|
protected override void OnLoaded(object sender, RoutedEventArgs e)
|
|
@@ -52,15 +52,26 @@ namespace SAGA.GplotDrawData.View
|
|
|
|
|
|
private void RootNode_OnSelectedItemChanged(object sender, RoutedPropertyChangedEventArgs<object> e)
|
|
private void RootNode_OnSelectedItemChanged(object sender, RoutedPropertyChangedEventArgs<object> e)
|
|
{
|
|
{
|
|
- if (!(rootNode.SelectedItem is DataNode dn))
|
|
|
|
- return;
|
|
|
|
- if (ShowType == GplotShowType.VerticalPlan)
|
|
|
|
|
|
+ try
|
|
{
|
|
{
|
|
- Draw(dn.GetData<VerticalDrawData>());
|
|
|
|
|
|
+ if (!(rootNode.SelectedItem is DataNode dn))
|
|
|
|
+ return;
|
|
|
|
+ if (dn.Childrens.Count != 0)
|
|
|
|
+ {
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ if (ShowType == GplotShowType.VerticalPlan)
|
|
|
|
+ {
|
|
|
|
+ Draw(dn.GetData<VerticalDrawData>());
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ Draw(dn.GetData<FloorDrawData>());
|
|
|
|
+ }
|
|
}
|
|
}
|
|
- else
|
|
|
|
- {
|
|
|
|
- Draw(dn.GetData<FloorDrawData>());
|
|
|
|
|
|
+ catch (Exception ex)
|
|
|
|
+ {
|
|
|
|
+ MessageShowBase.Show(ex);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
#region 平面数据处理
|
|
#region 平面数据处理
|
|
@@ -85,32 +96,53 @@ namespace SAGA.GplotDrawData.View
|
|
/// </summary>
|
|
/// </summary>
|
|
private void InitFloorData()
|
|
private void InitFloorData()
|
|
{
|
|
{
|
|
|
|
+ //按关系展示系统
|
|
List<List<FloorDrawRecord>> recordDatas=GetFloorDrawData();
|
|
List<List<FloorDrawRecord>> recordDatas=GetFloorDrawData();
|
|
- List<DataNode> treeDataSource = new List<DataNode>();
|
|
|
|
|
|
+ List<DataNode> buildNodes = new List<DataNode>();
|
|
foreach (var records in recordDatas)
|
|
foreach (var records in recordDatas)
|
|
{
|
|
{
|
|
if (records == null || !records.Any())
|
|
if (records == null || !records.Any())
|
|
continue;
|
|
continue;
|
|
- var groupSystems = records.GroupBy(r => r.SystemName);
|
|
|
|
- foreach (var groupSystem in groupSystems)
|
|
|
|
|
|
+ var buildGroup = records.GroupBy(r => r.BuildingId);
|
|
|
|
+ foreach (var build in buildGroup)
|
|
{
|
|
{
|
|
- var system = new DataNode(groupSystem.Key);
|
|
|
|
- var groupFloors = groupSystem.GroupBy(g => g.FloorName);
|
|
|
|
- foreach (var groupFloor in groupFloors)
|
|
|
|
|
|
+ var buildFloorRecords = build.ToList();
|
|
|
|
+ var firstFloor = buildFloorRecords.FirstOrDefault();
|
|
|
|
+ if (firstFloor == null)
|
|
|
|
+ {
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
+ #region 检测建筑节点
|
|
|
|
+ var buildNode = buildNodes.FirstOrDefault(dn => dn.Sno == build.Key);
|
|
|
|
+ if (buildNode == null)
|
|
{
|
|
{
|
|
- var floor = new DataNode(groupFloor.Key);
|
|
|
|
- system.Childrens.Add(floor);
|
|
|
|
- var currentRecords = groupFloor.ToList();
|
|
|
|
- FloorDrawData floorData = new FloorDrawData() { FloorId = currentRecords.FirstOrDefault()?.FloorId };
|
|
|
|
- floorData.DrawRecords = currentRecords;
|
|
|
|
- floor.SetData(floorData);
|
|
|
|
|
|
+ buildNode = new DataNode() { EName = firstFloor.BuildingName, Sno = firstFloor.BuildingId };
|
|
|
|
+ buildNodes.Add(buildNode);
|
|
}
|
|
}
|
|
|
|
+ #endregion
|
|
|
|
+ var groupSystems = buildFloorRecords.GroupBy(r => r.SystemName);
|
|
|
|
+ foreach (var groupSystem in groupSystems)
|
|
|
|
+ {
|
|
|
|
+ var system = new DataNode(groupSystem.Key);
|
|
|
|
+ var groupFloors = groupSystem.GroupBy(g => g.FloorName);
|
|
|
|
+ foreach (var groupFloor in groupFloors)
|
|
|
|
+ {
|
|
|
|
+ var floor = new DataNode(groupFloor.Key);
|
|
|
|
+ system.Childrens.Add(floor);
|
|
|
|
+ var currentRecords = groupFloor.ToList();
|
|
|
|
+ FloorDrawData floorData = new FloorDrawData() { FloorId = currentRecords.FirstOrDefault()?.FloorId };
|
|
|
|
+ floorData.DrawRecords = currentRecords;
|
|
|
|
+ floor.SetData(floorData);
|
|
|
|
+ }
|
|
|
|
|
|
- treeDataSource.Add(system);
|
|
|
|
|
|
+ buildNode.Childrens.Add(system);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+
|
|
}
|
|
}
|
|
|
|
|
|
- this.rootNode.ItemsSource = treeDataSource;
|
|
|
|
|
|
+ this.rootNode.ItemsSource = buildNodes;
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
@@ -141,31 +173,43 @@ namespace SAGA.GplotDrawData.View
|
|
{
|
|
{
|
|
LoadVerticalDrawData loadData = new LoadVerticalDrawData(relationType);
|
|
LoadVerticalDrawData loadData = new LoadVerticalDrawData(relationType);
|
|
loadData.LoadData();
|
|
loadData.LoadData();
|
|
- datas.Add(loadData.VerticalDrawData);
|
|
|
|
|
|
+ datas.AddRange(loadData.VerticalDrawDatas);
|
|
}
|
|
}
|
|
return datas;
|
|
return datas;
|
|
}
|
|
}
|
|
private void InitVerticalData()
|
|
private void InitVerticalData()
|
|
{
|
|
{
|
|
- List<DataNode> dataNode = new List<DataNode>();
|
|
|
|
- List<VerticalDrawData> drawDatas = GetVerticalDrawData();
|
|
|
|
- foreach (var drawData in drawDatas)
|
|
|
|
|
|
+ List<DataNode> buildNodes = new List<DataNode>();
|
|
|
|
+ var allDatas= GetVerticalDrawData();
|
|
|
|
+ var buildGroup = allDatas.GroupBy(v => v.BuildingId);
|
|
|
|
+ foreach (var buildData in buildGroup)
|
|
{
|
|
{
|
|
- if (drawData == null)
|
|
|
|
- continue;
|
|
|
|
- var groups = (drawData.DrawRecords ?? new List<VerticalDrawRecord>()).GroupBy(c => c.SystemName);
|
|
|
|
- foreach (var group in groups)
|
|
|
|
|
|
+ List<VerticalDrawData> drawDatas = buildData.ToList();
|
|
|
|
+ var tempFirstDraw = drawDatas.FirstOrDefault();
|
|
|
|
+ var buildNode = new DataNode(tempFirstDraw.BuildingName) {Sno = tempFirstDraw.BuildingId};
|
|
|
|
+ buildNodes.Add(buildNode);
|
|
|
|
+ List<DataNode> dataNodes = new List<DataNode>();
|
|
|
|
+ foreach (var drawData in drawDatas)
|
|
{
|
|
{
|
|
- if (string.IsNullOrEmpty(group.Key))
|
|
|
|
|
|
+ if (drawData == null)
|
|
continue;
|
|
continue;
|
|
- var node = new DataNode() { EName = group.Key };
|
|
|
|
- var currentDrawData = new VerticalDrawData() { LevelDatas = drawData.LevelDatas };
|
|
|
|
- currentDrawData.DrawRecords = group.ToList();
|
|
|
|
- node.SetData(currentDrawData);
|
|
|
|
- dataNode.Add(node);
|
|
|
|
|
|
+ var groups = (drawData.DrawRecords ?? new List<VerticalDrawRecord>()).GroupBy(c => c.SystemName);
|
|
|
|
+ foreach (var group in groups)
|
|
|
|
+ {
|
|
|
|
+ if (string.IsNullOrEmpty(group.Key))
|
|
|
|
+ continue;
|
|
|
|
+ var node = new DataNode() { EName = group.Key };
|
|
|
|
+ var currentDrawData = new VerticalDrawData() { LevelDatas = drawData.LevelDatas };
|
|
|
|
+ currentDrawData.DrawRecords = group.ToList();
|
|
|
|
+ node.SetData(currentDrawData);
|
|
|
|
+ dataNodes.Add(node);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
- }
|
|
|
|
- this.rootNode.ItemsSource = dataNode;
|
|
|
|
|
|
+
|
|
|
|
+ buildNode.Childrens.AddRange(dataNodes);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ this.rootNode.ItemsSource = buildNodes;
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// <summary>
|
|
/// 画立管数据
|
|
/// 画立管数据
|
|
@@ -177,8 +221,6 @@ namespace SAGA.GplotDrawData.View
|
|
ConstData.ResponseData = db.CreateJObjectGroup();
|
|
ConstData.ResponseData = db.CreateJObjectGroup();
|
|
ucShowElement.Show(WebGplotSettings.VPipeUrl);
|
|
ucShowElement.Show(WebGplotSettings.VPipeUrl);
|
|
}
|
|
}
|
|
-
|
|
|
|
-
|
|
|
|
#endregion
|
|
#endregion
|
|
}
|
|
}
|
|
}
|
|
}
|