From 15d15d24fbccb9b70a305b46b71453b2ab1a720e Mon Sep 17 00:00:00 2001 From: qinjie <qinjie@163.com> Date: 星期二, 19 十二月 2023 15:43:46 +0800 Subject: [PATCH] 提交代码 --- Hydro.Revit/RevitNetWork.cs | 94 ++++++++++++++++++++++++++++------------------ 1 files changed, 57 insertions(+), 37 deletions(-) diff --git a/Hydro.Revit/RevitNetWork.cs b/Hydro.Revit/RevitNetWork.cs index a7c6387..334c72d 100644 --- a/Hydro.Revit/RevitNetWork.cs +++ b/Hydro.Revit/RevitNetWork.cs @@ -11,59 +11,79 @@ { public class RevitNetWork : NetWork { - public void AddJunction(JunctionViewModel junction) + public void AddJunction(JunctionViewModel junction) { - CheckNodesExist(junction); - Nodes.Add(junction); + if (!CheckNodesExist(junction)) + Nodes.Add(junction); } - public void AddJunctions(List<JunctionViewModel> junctions) + public new List<PipeViewModel> Pipes + { + get + { + var js = Links.Where(d => d is PipeViewModel); + return js?.Select(d => d as PipeViewModel).ToList(); + } + } + + public new List<NozzleViewModel> Nozzles + { + get + { + var js = Nodes.Where(d => d is NozzleViewModel); + return js?.Select(d => d as NozzleViewModel).ToList(); + } + } + + public void AddJunctions(List<JunctionViewModel> junctions) { junctions.ForEach(junction => { AddJunction(junction); }); } - public void AddTank(WaterTankViewModel tank) + public void AddTank(WaterTankViewModel tank) { - CheckNodesExist(tank); - Nodes.Add(tank); + if (!CheckNodesExist(tank)) + Nodes.Add(tank); } - public void AddTanks(List<WaterTankViewModel> tanks) + public List<HydrantBoxViewModel> HydrantBoxes => Nodes.Where((NodeCalcModel d) => d is HydrantBoxViewModel)?.Select((NodeCalcModel d) => d as HydrantBoxViewModel).ToList(); + + public void AddTanks(List<WaterTankViewModel> tanks) { tanks.ForEach(tank => { AddTank(tank); }); - WaterTankViewModel kk=null; - Nodes.Select(n => (WaterTankViewModel)n).ToList().Sort(o => o.PositionJson); - WaterTankViewModels + // WaterTankViewModel kk=null; + // Nodes.Select(n => (WaterTankViewModel)n).ToList().Sort(o => o.PositionJson); + // WaterTankViewModels - ((WaterTankViewModel) Nodes[0]).PositionJson + //((WaterTankViewModel) Nodes[0]).PositionJson } - public void AddPipe(PipeViewModel pipe) + public void AddPipe(PipeViewModel pipe) { - CheckLinksExist(pipe); - Links.Add(pipe); + if (!CheckLinksExist(pipe)) + Links.Add(pipe); } - public void AddPipes(List<PipeViewModel> pipes) + public void AddPipes(List<PipeViewModel> pipes) { pipes.ForEach(pipe => { AddPipe(pipe); }); } - public void AddPump(WaterPumpViewModel pump) + public void AddPump(WaterPumpViewModel pump) { - CheckLinksExist(pump); - Links.Add(pump); + if (!CheckLinksExist(pump)) + Links.Add(pump); } - public void AddPumps(List<WaterPumpViewModel> pumps) + public void AddPumps(List<WaterPumpViewModel> pumps) { pumps.ForEach(pump => { AddPump(pump); }); } - public void AddValve(ValveViewModel valve) + public void AddValve(ValveViewModel valve) { - CheckLinksExist(valve); - Links.Add(valve); + if (!CheckLinksExist(valve)) + Links.Add(valve); } public void AddValves(List<ValveViewModel> valves) @@ -73,35 +93,35 @@ public void AddHydrantBox(HydrantBoxViewModel hydrantBox) { - CheckNodesExist(hydrantBox); - Nodes.Add(hydrantBox); + if (!CheckNodesExist(hydrantBox)) + Nodes.Add(hydrantBox); } - public void AddHydrantBoxs(List<HydrantBoxViewModel> hydrantBoxs) + public void AddHydrantBoxs(List<HydrantBoxViewModel> hydrantBoxs) { hydrantBoxs.ForEach(hydrantBox => { AddHydrantBox(hydrantBox); }); } - - public void AddNozzle(NozzleViewModel nozzle) + + public void AddNozzle(NozzleViewModel nozzle) { - CheckNodesExist(nozzle); - Nodes.Add(nozzle); + if (!CheckNodesExist(nozzle)) + Nodes.Add(nozzle); } - public void AddNozzles(List<NozzleViewModel> nozzles) + public void AddNozzles(List<NozzleViewModel> nozzles) { nozzles.ForEach(nozzle => { AddNozzle(nozzle); }); } - private void CheckNodesExist(NodeCalcModel node) + private bool CheckNodesExist(NodeCalcModel node) { - if (Nodes.Any(d => d.ID == node.ID)) - throw new Exception("宸插瓨鍦ㄩ噸澶嶇殑瀵硅薄"); + return Nodes.Any(d => d.ID == node.ID); + // throw new Exception("宸插瓨鍦ㄩ噸澶嶇殑瀵硅薄"); } - private void CheckLinksExist(LinkCalcModel link) + private bool CheckLinksExist(LinkCalcModel link) { - if (Links.Any(d => d.ID == link.ID)) - throw new Exception("宸插瓨鍦ㄩ噸澶嶇殑瀵硅薄"); + return Links.Any(d => d.ID == link.ID); + //throw new Exception("宸插瓨鍦ㄩ噸澶嶇殑瀵硅薄"); } } } -- Gitblit v1.9.3