using Hydro.Core.Model; using Hydro.Inp; using Hydro.Revit.Model; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Hydro.Revit { public class RevitNetWork : NetWork { public void AddJunction(JunctionViewModel junction) { CheckNodesExist(junction); Nodes.Add(junction); } public void AddJunctions(List junctions) { junctions.ForEach(junction => { AddJunction(junction); }); } public void AddTank(WaterTankViewModel tank) { CheckNodesExist(tank); Nodes.Add(tank); } public void AddTanks(List tanks) { tanks.ForEach(tank => { AddTank(tank); }); WaterTankViewModel kk=null; Nodes.Select(n => (WaterTankViewModel)n).ToList().Sort(o => o.PositionJson); WaterTankViewModels ((WaterTankViewModel) Nodes[0]).PositionJson } public void AddPipe(PipeViewModel pipe) { CheckLinksExist(pipe); Links.Add(pipe); } public void AddPipes(List pipes) { pipes.ForEach(pipe => { AddPipe(pipe); }); } public void AddPump(WaterPumpViewModel pump) { CheckLinksExist(pump); Links.Add(pump); } public void AddPumps(List pumps) { pumps.ForEach(pump => { AddPump(pump); }); } public void AddValve(ValveViewModel valve) { CheckLinksExist(valve); Links.Add(valve); } public void AddValves(List valves) { valves.ForEach(valve => { AddValve(valve); }); } public void AddHydrantBox(HydrantBoxViewModel hydrantBox) { CheckNodesExist(hydrantBox); Nodes.Add(hydrantBox); } public void AddHydrantBoxs(List hydrantBoxs) { hydrantBoxs.ForEach(hydrantBox => { AddHydrantBox(hydrantBox); }); } public void AddNozzle(NozzleViewModel nozzle) { CheckNodesExist(nozzle); Nodes.Add(nozzle); } public void AddNozzles(List nozzles) { nozzles.ForEach(nozzle => { AddNozzle(nozzle); }); } private void CheckNodesExist(NodeCalcModel node) { if (Nodes.Any(d => d.ID == node.ID)) throw new Exception("已存在重复的对象"); } private void CheckLinksExist(LinkCalcModel link) { if (Links.Any(d => d.ID == link.ID)) throw new Exception("已存在重复的对象"); } } }