cloudflight
2023-12-02 c0f9915265878e56e91ee97f7f8d925db1e12626
Hydro.Revit/RevitNetWork.cs
@@ -1,4 +1,6 @@
using Hydro.Inp;
using Hydro.Core.Model;
using Hydro.Inp;
using Hydro.Revit.Model;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -9,5 +11,97 @@
{
    public class RevitNetWork : NetWork
    {
        public  void AddJunction(JunctionViewModel junction)
        {
            CheckNodesExist(junction);
            Nodes.Add(junction);
        }
        public  void AddJunctions(List<JunctionViewModel> junctions)
        {
            junctions.ForEach(junction => { AddJunction(junction); });
        }
        public  void AddTank(WaterTankViewModel tank)
        {
            CheckNodesExist(tank);
            Nodes.Add(tank);
        }
        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) Nodes[0]).PositionJson
        }
        public  void AddPipe(PipeViewModel pipe)
        {
            CheckLinksExist(pipe);
            Links.Add(pipe);
        }
        public  void AddPipes(List<PipeViewModel> pipes)
        {
            pipes.ForEach(pipe => { AddPipe(pipe); });
        }
        public  void AddPump(WaterPumpViewModel pump)
        {
            CheckLinksExist(pump);
            Links.Add(pump);
        }
        public  void AddPumps(List<WaterPumpViewModel> pumps)
        {
            pumps.ForEach(pump => { AddPump(pump); });
        }
        public  void AddValve(ValveViewModel valve)
        {
            CheckLinksExist(valve);
            Links.Add(valve);
        }
        public void AddValves(List<ValveViewModel> valves)
        {
            valves.ForEach(valve => { AddValve(valve); });
        }
        public void AddHydrantBox(HydrantBoxViewModel hydrantBox)
        {
            CheckNodesExist(hydrantBox);
            Nodes.Add(hydrantBox);
        }
        public  void AddHydrantBoxs(List<HydrantBoxViewModel> hydrantBoxs)
        {
            hydrantBoxs.ForEach(hydrantBox => { AddHydrantBox(hydrantBox); });
        }
        public  void AddNozzle(NozzleViewModel nozzle)
        {
            CheckNodesExist(nozzle);
            Nodes.Add(nozzle);
        }
        public  void AddNozzles(List<NozzleViewModel> 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("已存在重复的对象");
        }
    }
}