From 32b2fee0421e7997672fe4a14fe5bf9a6de926c2 Mon Sep 17 00:00:00 2001 From: duheng <2784771470@qq.com> Date: 星期五, 27 九月 2024 15:45:58 +0800 Subject: [PATCH] 冲突 --- Service/HStation.Service.Revit.Core/04-service/01-json/RevitJsonHelper.cs | 166 ++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 150 insertions(+), 16 deletions(-) diff --git a/Service/HStation.Service.Revit.Core/04-service/01-json/RevitJsonHelper.cs b/Service/HStation.Service.Revit.Core/04-service/01-json/RevitJsonHelper.cs index f1b1b73..bf1d296 100644 --- a/Service/HStation.Service.Revit.Core/04-service/01-json/RevitJsonHelper.cs +++ b/Service/HStation.Service.Revit.Core/04-service/01-json/RevitJsonHelper.cs @@ -10,9 +10,12 @@ /// <summary> /// 浠巎son瀛楃涓蹭腑瑙f瀽 /// </summary> - /// <param name="revitJsonString">json瀛楃涓�</param> - /// <returns>鏍煎紡閿欒锛屼細鎶涘嚭寮傚父</returns> - public static HStation.Model.RevitModel FromJsonString(string revitJsonString, out string msg) + public static HStation.Model.RevitModel FromJsonString + ( + string revitJsonString, + string revitOthersJsonString, + out string msg + ) { msg = string.Empty; if (string.IsNullOrEmpty(revitJsonString)) @@ -24,6 +27,7 @@ { var model = new Model.RevitModel(); + //瑙f瀽缁撴瀯json var jarray = JArray.Parse(revitJsonString); for (int i = 0; i < jarray.Count; i++) { @@ -71,6 +75,10 @@ reservoir.Head = head; } reservoir.HeadPattern = jobject[RevitJsonProp.HeadPattern].ToString(); + if (!string.IsNullOrEmpty(reservoir.HeadPattern)) + { + reservoir.HeadPattern = string.Empty; + } model.Reservoirs.Add(reservoir); } break; @@ -129,6 +137,10 @@ tank.MinVol = minVol; } tank.VolCurve = jobject[RevitJsonProp.VolCurve].ToString(); + if (!string.IsNullOrEmpty(tank.VolCurve)) + { + tank.VolCurve = string.Empty; + } model.Tanks.Add(tank); } break; @@ -187,6 +199,10 @@ waterbox.MinVol = minVol; } waterbox.VolCurve = jobject[RevitJsonProp.VolCurve].ToString(); + if (!string.IsNullOrEmpty(waterbox.VolCurve)) + { + waterbox.VolCurve = string.Empty; + } model.Waterboxs.Add(waterbox); } break; @@ -229,6 +245,10 @@ junction.Demand = demand; } junction.DemandPattern = jobject[RevitJsonProp.DemandPattern].ToString(); + if (!string.IsNullOrEmpty(junction.DemandPattern)) + { + junction.DemandPattern = string.Empty; + } model.Junctions.Add(junction); } break; @@ -271,6 +291,10 @@ elbow.Demand = demand; } elbow.DemandPattern = jobject[RevitJsonProp.DemandPattern].ToString(); + if (!string.IsNullOrEmpty(elbow.DemandPattern)) + { + elbow.DemandPattern = string.Empty; + } model.Elbows.Add(elbow); } break; @@ -313,6 +337,10 @@ threelink.Demand = demand; } threelink.DemandPattern = jobject[RevitJsonProp.DemandPattern].ToString(); + if (!string.IsNullOrEmpty(threelink.DemandPattern)) + { + threelink.DemandPattern = string.Empty; + } model.Threelinks.Add(threelink); } break; @@ -355,6 +383,10 @@ fourlink.Demand = demand; } fourlink.DemandPattern = jobject[RevitJsonProp.DemandPattern].ToString(); + if (!string.IsNullOrEmpty(fourlink.DemandPattern)) + { + fourlink.DemandPattern = string.Empty; + } model.Fourlinks.Add(fourlink); } break; @@ -397,6 +429,10 @@ meter.Demand = demand; } meter.DemandPattern = jobject[RevitJsonProp.DemandPattern].ToString(); + if (!string.IsNullOrEmpty(meter.DemandPattern)) + { + meter.DemandPattern = string.Empty; + } model.Meters.Add(meter); } break; @@ -439,6 +475,10 @@ flowmeter.Demand = demand; } flowmeter.DemandPattern = jobject[RevitJsonProp.DemandPattern].ToString(); + if (!string.IsNullOrEmpty(flowmeter.DemandPattern)) + { + flowmeter.DemandPattern = string.Empty; + } model.Flowmeters.Add(flowmeter); } break; @@ -481,6 +521,10 @@ pressmeter.Demand = demand; } pressmeter.DemandPattern = jobject[RevitJsonProp.DemandPattern].ToString(); + if (!string.IsNullOrEmpty(pressmeter.DemandPattern)) + { + pressmeter.DemandPattern = string.Empty; + } model.Pressmeters.Add(pressmeter); } break; @@ -523,6 +567,10 @@ blunthead.Demand = demand; } blunthead.DemandPattern = jobject[RevitJsonProp.DemandPattern].ToString(); + if (!string.IsNullOrEmpty(blunthead.DemandPattern)) + { + blunthead.DemandPattern = string.Empty; + } model.Bluntheads.Add(blunthead); } break; @@ -565,6 +613,10 @@ nozzle.Demand = demand; } nozzle.DemandPattern = jobject[RevitJsonProp.DemandPattern].ToString(); + if (!string.IsNullOrEmpty(nozzle.DemandPattern)) + { + nozzle.DemandPattern = string.Empty; + } if (jobject[RevitJsonProp.CoefficientP].MatchNumeric(out double coeffient)) { nozzle.Coefficient = coeffient; @@ -611,6 +663,10 @@ hydrant.Demand = demand; } hydrant.DemandPattern = jobject[RevitJsonProp.DemandPattern].ToString(); + if (!string.IsNullOrEmpty(hydrant.DemandPattern)) + { + hydrant.DemandPattern = string.Empty; + } if (jobject[RevitJsonProp.CoefficientF].MatchNumeric(out double coeffient)) { hydrant.Coefficient = coeffient; @@ -693,11 +749,11 @@ } if (exchanger.Diameter < 0.1) { - exchanger.Diameter = 0.1; + exchanger.Diameter = 500; } if (exchanger.Roughness < 0.1) { - exchanger.Roughness = 0.1; + exchanger.Roughness = 110; } model.Exchangers.Add(exchanger); } @@ -755,14 +811,26 @@ { pipe.Length = length; } + + + #region 鐩村緞 + if (jobject[RevitJsonProp.Diameter].MatchNumeric(out double diameter)) { pipe.Diameter = diameter; } - else if (jobject[RevitJsonProp.InternalDiameter].MatchNumeric(out double internalDiameter)) + + if (pipe.Diameter < 1) { - pipe.Diameter = internalDiameter; + if (jobject[RevitJsonProp.InternalDiameter].MatchNumeric(out double internalDiameter)) + { + pipe.Diameter = internalDiameter; + } } + + #endregion + + if (jobject[RevitJsonProp.MinorLoss].MatchNumeric(out double minorLoss)) { pipe.MinorLoss = minorLoss; @@ -777,11 +845,11 @@ } if (pipe.Diameter < 0.1) { - pipe.Diameter = 0.1; + pipe.Diameter = 500; } if (pipe.Roughness < 0.1) { - pipe.Roughness = 0.1; + pipe.Roughness = 110; } model.Pipes.Add(pipe); } @@ -861,11 +929,11 @@ } if (translation.Diameter < 0.1) { - translation.Diameter = 0.1; + translation.Diameter = 500; } if (translation.Roughness < 0.1) { - translation.Roughness = 0.1; + translation.Roughness = 110; } model.Translations.Add(translation); } @@ -923,17 +991,30 @@ pump.RatedPower = ratedPower; } pump.CurveQH = jobject[RevitJsonProp.CurveQH].ToString(); + pump.CurveQH = "PumpDefault"; if (jobject[RevitJsonProp.SpeedRatio].MatchNumeric(out double speedRatio)) { pump.SpeedRatio = speedRatio; } pump.SpeedRatioPattern = jobject[RevitJsonProp.SpeedRatioPattern].ToString(); + if (!string.IsNullOrEmpty(pump.SpeedRatioPattern)) + { + pump.SpeedRatioPattern = string.Empty; + } if (jobject[RevitJsonProp.Price].MatchNumeric(out double price)) { pump.Price = price; } pump.PricePattern = jobject[RevitJsonProp.PricePattern].ToString(); + if (!string.IsNullOrEmpty(pump.PricePattern)) + { + pump.PricePattern = string.Empty; + } pump.CurveQE = jobject[RevitJsonProp.CurveQE].ToString(); + if (!string.IsNullOrEmpty(pump.CurveQE)) + { + pump.CurveQE = string.Empty; + } model.Pumps.Add(pump); } break; @@ -994,13 +1075,63 @@ valve.MinorLoss = minorLoss; } + if (valve.Diameter < 0.1) + { + valve.Diameter = 500; + } + valve.ValveType = jobject[RevitJsonProp.ValveType].ToString(); valve.ValveSetting = jobject[RevitJsonProp.ValveSetting].ToString(); model.Valves.Add(valve); } break; - + case RevitJsonCatalog.Other: + { + var decorator = new Model.RevitDecorator(); + decorator.Id = jobject[RevitJsonProp.Id].ToString(); + decorator.Code = jobject[RevitJsonProp.Code].ToString(); + if (string.IsNullOrEmpty(decorator.Code)) + { + decorator.Code = decorator.Id; + } + decorator.Name = string.Empty; + decorator.Category = jobject[RevitJsonProp.ClanAndType][RevitJsonProp.ClanName].ToString(); + decorator.Decoration = string.Empty; + model.Decorators.Add(decorator); + } + break; default: break; + } + } + + //瑙f瀽鍏朵粬json + var jothersArray = JArray.Parse(revitOthersJsonString); + if (jothersArray != null && jothersArray.Count > 0) + { + var allParterList = model.GetAllParters(); + for (int i = 0; i < jothersArray.Count; i++) + { + var jobject = jothersArray[i]; + var id = jobject[RevitOthersJsonProp.Id]?.ToString(); + if (string.IsNullOrEmpty(id)) + { + continue; + } + if (allParterList.Exists(x => x.Id == id)) + { + continue; + } + if (model.Decorators.Exists(x => x.Id == id)) + { + continue; + } + var decorator = new Model.RevitDecorator(); + decorator.Id = id; + decorator.Code = id; + decorator.Name = jobject[RevitOthersJsonProp.Name]?.ToString(); + decorator.Category = jobject[RevitOthersJsonProp.CategoryName]?.ToString(); + decorator.Decoration = jobject[RevitOthersJsonProp.CategoryID]?.ToString(); + model.Decorators.Add(decorator); } } @@ -1017,9 +1148,7 @@ /// <summary> /// 浠巎son鏂囦欢涓В鏋� /// </summary> - /// <param name="revitJsonFile">json鏂囦欢璺緞</param> - /// <returns></returns> - public static Model.RevitModel FromJsonFile(string revitJsonFile, out string msg) + public static Model.RevitModel FromJsonFile(string revitJsonFile, string revitOthersJsonFile, out string msg) { if (!File.Exists(revitJsonFile)) { @@ -1027,7 +1156,12 @@ return default; } var revitJson = File.ReadAllText(revitJsonFile); - var revitModel = FromJsonString(revitJson, out msg); + var revitOthersJson = string.Empty; + if (File.Exists(revitOthersJsonFile)) + { + revitOthersJson = File.ReadAllText(revitOthersJsonFile); + } + var revitModel = FromJsonString(revitJson, revitOthersJson, out msg); if (revitModel == null) { return default; -- Gitblit v1.9.3