using Hydro.Core.Model; using Hydro.Inp; using Hydro.Revit; using Hydro.Revit.Model; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Test { internal class Program { const string inpPath = "d:\\t1.inp"; const string revitInpPath = "d:\\t2.inp"; static void Main(string[] args) { Test1(); } static void Test1() { var nw = new NetWork(); nw.AddPipe(new PipeModel() { ID = "p_1", Name = "Pipe1", Length = 10, Node1 = "j_1", Node2 = "n_1", Diameter = 100 }); nw.AddValve(new ValveModel() { ID = "v_1", Name = "Value1", Node1 = "j_2", Node2 = "j_3", Length = 10, Diameter = 100, }); nw.AddJunction(new JunctionModel() { ID = "j_1", Name = "Junction1", Elev = 10, X = 10, Y = 10 }); nw.AddJunction(new JunctionModel() { ID = "j_2", Name = "Junction2", Elev = 15, X = 15, Y = 15 }); nw.AddJunction(new JunctionModel() { ID = "j_3", Name = "Junction3", Elev = 13, X = 13, Y = 13 }); nw.AddReservos(new ReservoisModel() { ID = "r_1", Name = "Reservos1", }); nw.AddPump(new PumpModel() { ID = "pump_1", Name = "Pump1", Node1 = "j_3", Node2 = "j_1" }); nw.AddNozzle(new NozzleModel() { ID = "n_1", Name = "Nozzle1", X = 5, Y = 5, Elev = 20, FlowCoefficient = 160 }); nw.BuildToInp(inpPath); } static void Test2() { var nw = new NetWork(); nw.BuildFromInp(inpPath); var pipes = new List(); var junctions = new List(); var nozzles = new List(); var reservois = new List(); var valves = new List(); var pumps = new List(); nw.Links.ForEach(d => { if (d is PipeModel) { pipes.Add((PipeModel)d); } if (d is ValveModel) { valves.Add((ValveModel)d); } if (d is PumpModel) { pumps.Add((PumpModel)d); } }); nw.Nodes.ForEach(d => { if (d is JunctionModel) { junctions.Add((JunctionModel)d); } if (d is NozzleModel) { nozzles.Add((NozzleModel)d); } }); var json = JsonConvert.SerializeObject(nw); Console.WriteLine(json); } static void Test3() { var nw = new NetWorkMapModel(); var result = nw.Calc(); Console.WriteLine(result); Console.ReadLine(); } static void Test4() { var nw = new NetWork(); var result = nw.Calc(inpPath); Console.WriteLine(JsonConvert.SerializeObject(result)); Console.ReadLine(); } static void TestRevit1() { var nw = new RevitNetWork(); var systemType = "test"; var postionJson = "[]"; nw.AddPipe(new PipeViewModel() { ID = "p_1", Name = "Pipe1", Length = 10, Node1 = "j_1", Node2 = "n_1", Diameter = 100, PositionJson = postionJson, SystemType = systemType }); nw.AddValve(new ValveViewModel() { ID = "v_1", Name = "Value1", Node1 = "j_2", Node2 = "j_3", Length = 10, Diameter = 100, PositionJson = postionJson, SystemType = systemType, }); nw.AddJunction(new JunctionViewModel() { ID = "j_1", Name = "Junction1", Elev = 10, X = 10, PositionJson = postionJson, SystemType = systemType, Y = 10 }); nw.AddJunction(new JunctionViewModel() { ID = "j_2", Name = "Junction2", Elev = 15, X = 15, PositionJson = postionJson, SystemType = systemType, Y = 15 }); nw.AddJunction(new JunctionViewModel() { ID = "j_3", Name = "Junction3", Elev = 13, X = 13, PositionJson = postionJson, SystemType = systemType, Y = 13 }); nw.AddReservos(new PumpAdapterViewModel() { ID = "r_1", Name = "PumpAdapter1", PositionJson = postionJson, SystemType = systemType }); nw.AddPump(new WaterPumpViewModel() { ID = "pump_1", Name = "Pump1", Node1 = "j_3", Node2 = "j_1", PositionJson = postionJson, SystemType = systemType }); nw.AddNozzle(new NozzleViewModel() { ID = "n_1", Name = "Nozzle1", X = 5, Y = 5, Elev = 20, FlowCoefficient = 160, PositionJson = postionJson, SystemType = systemType }); nw.BuildToInp(revitInpPath); var json = JsonConvert.SerializeObject(nw); Console.WriteLine(json); Console.WriteLine("生成成功"); } } }