cloudflight
2023-12-20 ac3e88e5dc69c74c80045a86abe38caae81d0101
Hydro.Revit/RevitNetWork.cs
@@ -13,8 +13,26 @@
    {
        public  void AddJunction(JunctionViewModel junction)
        {
            CheckNodesExist(junction);
            if (!CheckNodesExist(junction))
            Nodes.Add(junction);
        }
        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)
@@ -24,18 +42,27 @@
        public  void AddTank(WaterTankViewModel tank)
        {
            CheckNodesExist(tank);
            if (!CheckNodesExist(tank))
            Nodes.Add(tank);
        }
        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) Nodes[0]).PositionJson
        }
        public  void AddPipe(PipeViewModel pipe)
        {
            CheckLinksExist(pipe);
            if (!CheckLinksExist(pipe))
            Links.Add(pipe);
        }
@@ -45,7 +72,7 @@
        }
        public  void AddPump(WaterPumpViewModel pump)
        {
            CheckLinksExist(pump);
            if (!CheckLinksExist(pump))
            Links.Add(pump);
        }
@@ -55,7 +82,7 @@
        }
        public  void AddValve(ValveViewModel valve)
        {
            CheckLinksExist(valve);
            if (!CheckLinksExist(valve))
            Links.Add(valve);
        }
@@ -66,7 +93,7 @@
        public void AddHydrantBox(HydrantBoxViewModel hydrantBox)
        {
            CheckNodesExist(hydrantBox);
            if (!CheckNodesExist(hydrantBox))
            Nodes.Add(hydrantBox);
        }
@@ -77,7 +104,7 @@
        
        public  void AddNozzle(NozzleViewModel nozzle)
        {
            CheckNodesExist(nozzle);
            if (!CheckNodesExist(nozzle))
            Nodes.Add(nozzle);
        }
        public  void AddNozzles(List<NozzleViewModel> nozzles)
@@ -85,16 +112,16 @@
            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("已存在重复的对象");
        }
    }
}