From ba4fd2f2456a3cee97cc90204c9e21505a42b2aa Mon Sep 17 00:00:00 2001 From: lixiaojun <1287241240@qq.com> Date: 星期五, 25 十月 2024 14:40:09 +0800 Subject: [PATCH] 优化Revit解析 --- Service/HStation.Service.Revit.Core/04-service/01-json/RevitJsonHelper.cs | 587 ++++++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 543 insertions(+), 44 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 b7801fa..17fc912 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 @@ -1,4 +1,6 @@ -锘縩amespace HStation.Service +锘縰sing System.Transactions; + +namespace HStation.Service { /// <summary> /// Revit Json杈呭姪绫� @@ -177,6 +179,15 @@ } } break; + case RevitJsonCatalog.Compressor: + { + var compressor = ParseCompressor(jobject); + if (compressor != null) + { + model.Compressors.Add(compressor); + } + } + break; case RevitJsonCatalog.Pump: { var pump = ParsePump(jobject); @@ -292,6 +303,7 @@ } var junction = new Model.RevitJunction(); + junction.Catalog = RevitJsonCatalog.Junction; #region Id @@ -524,6 +536,7 @@ } var nozzle = new Model.RevitNozzle(); + nozzle.Catalog = RevitJsonCatalog.Nozzle; #region Id @@ -786,6 +799,7 @@ } var hydrant = new Model.RevitHydrant(); + hydrant.Catalog = RevitJsonCatalog.Hydrant; #region Id @@ -1046,6 +1060,7 @@ } var blunthead = new Model.RevitBlunthead(); + blunthead.Catalog = RevitJsonCatalog.Blunthead; #region Id @@ -1321,6 +1336,7 @@ } var elbow = new Model.RevitElbow(); + elbow.Catalog = RevitJsonCatalog.Elbow; #region Id @@ -1596,6 +1612,7 @@ } var threelink = new Model.RevitThreelink(); + threelink.Catalog = RevitJsonCatalog.Threelink; #region Id @@ -1871,6 +1888,7 @@ } var fourlink = new Model.RevitFourlink(); + fourlink.Catalog = RevitJsonCatalog.Fourlink; #region Id @@ -2146,6 +2164,7 @@ } var meter = new Model.RevitMeter(); + meter.Catalog = RevitJsonCatalog.Meter; #region Id @@ -2378,6 +2397,7 @@ } var flowmeter = new Model.RevitFlowmeter(); + flowmeter.Catalog = RevitJsonCatalog.Flowmeter; #region Id @@ -2598,6 +2618,19 @@ #endregion + #region Flow + + if (jobject[RevitJsonProp.Flow].MatchNumeric(out double flow)) + { + flowmeter.CurrentFlow = flow; + } + else + { + flowmeter.AppendOrUpdatePropStatus(nameof(flowmeter.CurrentFlow), ePropStatus.Abnormal, "[娴侀噺]缂哄皯鎴栬�呮暟鎹牸寮忛敊璇�"); + } + + #endregion + return flowmeter; } @@ -2610,6 +2643,7 @@ } var pressmeter = new Model.RevitPressmeter(); + pressmeter.Catalog = RevitJsonCatalog.Pressmeter; #region Id @@ -2830,6 +2864,19 @@ #endregion + #region Press + + if (jobject[RevitJsonProp.Press].MatchNumeric(out double press)) + { + pressmeter.CurrentPress = Yw.Pump.CalculationHelper.Mpa2M(press); + } + else + { + pressmeter.AppendOrUpdatePropStatus(nameof(pressmeter.CurrentPress), ePropStatus.Abnormal, "[鍘嬪姏]缂哄皯鎴栬�呮暟鎹牸寮忛敊璇�"); + } + + #endregion + return pressmeter; } @@ -2842,6 +2889,7 @@ } var reservoir = new Model.RevitReservoir(); + reservoir.Catalog = RevitJsonCatalog.Reservoir; #region Id @@ -3074,6 +3122,7 @@ } var tank = new Model.RevitTank(); + tank.Catalog = RevitJsonCatalog.Tank; #region Id @@ -3363,6 +3412,7 @@ } var waterbox = new Model.RevitWaterbox(); + waterbox.Catalog = RevitJsonCatalog.Waterbox; #region Id @@ -3652,6 +3702,7 @@ } var pipe = new Model.RevitPipe(); + pipe.Catalog = RevitJsonCatalog.Pipe; #region Id @@ -4054,6 +4105,7 @@ } var translation = new Model.RevitTranslation(); + translation.Catalog = RevitJsonCatalog.Translation; #region Id @@ -4456,6 +4508,7 @@ } var exchanger = new Model.RevitExchanger(); + exchanger.Catalog = RevitJsonCatalog.Exchanger; #region Id @@ -4465,7 +4518,7 @@ } else { - exchanger.AppendOrUpdatePropStatus(nameof(exchanger.Id), ePropStatus.Error, "缂哄皯[鏋勪欢缂栫爜]"); + exchanger.AppendOrUpdatePropStatus(nameof(exchanger.Id), ePropStatus.Error, "[鎹㈢儹鍣╙缂哄皯[鏋勪欢缂栫爜]"); } #endregion @@ -4478,12 +4531,12 @@ if (string.IsNullOrEmpty(exchanger.Code)) { exchanger.Code = exchanger.Id; - exchanger.AppendOrUpdatePropStatus(nameof(exchanger.Code), ePropStatus.Lack, "浣跨敤[鏋勪欢缂栫爜]璧嬪��"); + exchanger.AppendOrUpdatePropStatus(nameof(exchanger.Code), ePropStatus.Lack, "[鎹㈢儹鍣╙[缂栫爜]缂虹渷锛屼娇鐢╗鏋勪欢缂栫爜]璧嬪��"); } } else { - exchanger.AppendOrUpdatePropStatus(nameof(exchanger.Code), ePropStatus.Error, "缂哄皯[缂栫爜]"); + exchanger.AppendOrUpdatePropStatus(nameof(exchanger.Code), ePropStatus.Error, "[鎹㈢儹鍣╙缂哄皯[缂栫爜]"); } #endregion @@ -4493,11 +4546,11 @@ if (jobject.ParseString(RevitJsonProp.Name, out string name)) { exchanger.Name = name; - exchanger.AppendOrUpdatePropStatus(nameof(exchanger.Name), ePropStatus.Lack, "[鍚嶇О]缂虹渷"); + exchanger.AppendOrUpdatePropStatus(nameof(exchanger.Name), ePropStatus.Lack, "[鎹㈢儹鍣╙[鍚嶇О]缂虹渷"); } else { - exchanger.AppendOrUpdatePropStatus(nameof(exchanger.Name), ePropStatus.Error, "缂哄皯[鍚嶇О]"); + exchanger.AppendOrUpdatePropStatus(nameof(exchanger.Name), ePropStatus.Error, "[鎹㈢儹鍣╙缂哄皯[鍚嶇О]"); } #endregion @@ -4509,12 +4562,12 @@ exchanger.ModelType = modelType; if (string.IsNullOrEmpty(exchanger.ModelType)) { - exchanger.AppendOrUpdatePropStatus(nameof(exchanger.ModelType), ePropStatus.Lack, "[鍨嬪彿淇℃伅]缂虹渷"); + exchanger.AppendOrUpdatePropStatus(nameof(exchanger.ModelType), ePropStatus.Lack, "[鎹㈢儹鍣╙[鍨嬪彿淇℃伅]缂虹渷"); } } else { - exchanger.AppendOrUpdatePropStatus(nameof(exchanger.ModelType), ePropStatus.Error, "缂哄皯[鍨嬪彿淇℃伅]"); + exchanger.AppendOrUpdatePropStatus(nameof(exchanger.ModelType), ePropStatus.Error, "[鎹㈢儹鍣╙缂哄皯[鍨嬪彿淇℃伅]"); } #endregion @@ -4528,13 +4581,13 @@ { if (exchanger.Flags == null || exchanger.Flags.Count < 1) { - exchanger.AppendOrUpdatePropStatus(nameof(exchanger.Flags), ePropStatus.Abnormal, "[鏍囩]鏍煎紡閿欒"); + exchanger.AppendOrUpdatePropStatus(nameof(exchanger.Flags), ePropStatus.Abnormal, "[鎹㈢儹鍣╙[鏍囩]鏍煎紡閿欒"); } } } else { - exchanger.AppendOrUpdatePropStatus(nameof(exchanger.Flags), ePropStatus.Error, "缂哄皯[鏍囩]"); + exchanger.AppendOrUpdatePropStatus(nameof(exchanger.Flags), ePropStatus.Error, "[鎹㈢儹鍣╙缂哄皯[鏍囩]"); } #endregion @@ -4547,7 +4600,7 @@ } else { - exchanger.AppendOrUpdatePropStatus(nameof(exchanger.Description), ePropStatus.Error, "缂哄皯[璇存槑淇℃伅]"); + exchanger.AppendOrUpdatePropStatus(nameof(exchanger.Description), ePropStatus.Error, "[鎹㈢儹鍣╙缂哄皯[璇存槑淇℃伅]"); } #endregion @@ -4570,12 +4623,12 @@ }).ToList(); if (exchanger.ConnectList == null || exchanger.ConnectList.Count < 1) { - exchanger.AppendOrUpdatePropStatus(nameof(exchanger.ConnectList), ePropStatus.Error, "[杩炴帴鍒楄〃]瑙f瀽澶辫触"); + exchanger.AppendOrUpdatePropStatus(nameof(exchanger.ConnectList), ePropStatus.Error, "[鎹㈢儹鍣╙[杩炴帴鍒楄〃]瑙f瀽澶辫触"); } } else { - exchanger.AppendOrUpdatePropStatus(nameof(exchanger.ConnectList), ePropStatus.Error, "缂哄皯[杩炴帴鍒楄〃]"); + exchanger.AppendOrUpdatePropStatus(nameof(exchanger.ConnectList), ePropStatus.Error, "[鎹㈢儹鍣╙缂哄皯[杩炴帴鍒楄〃]"); } #endregion @@ -4586,12 +4639,12 @@ exchanger.StartCode = startConnect?.Id; if (string.IsNullOrEmpty(exchanger.StartCode)) { - exchanger.AppendOrUpdatePropStatus(nameof(exchanger.StartCode), ePropStatus.Error, "[涓婃父鏋勪欢]鍙梉杩炴帴鍒楄〃]褰卞搷瑙f瀽閿欒"); + exchanger.AppendOrUpdatePropStatus(nameof(exchanger.StartCode), ePropStatus.Error, "[鎹㈢儹鍣╙[涓婃父鏋勪欢]鍙梉杩炴帴鍒楄〃]褰卞搷瑙f瀽閿欒"); } exchanger.StartPosition = startConnect?.Position; if (exchanger.StartPosition == null) { - exchanger.AppendOrUpdatePropStatus(nameof(exchanger.StartPosition), ePropStatus.Error, "[涓婃父鏋勪欢浣嶇疆]鍙梉杩炴帴鍒楄〃]褰卞搷瑙f瀽閿欒"); + exchanger.AppendOrUpdatePropStatus(nameof(exchanger.StartPosition), ePropStatus.Error, "[鎹㈢儹鍣╙[涓婃父鏋勪欢浣嶇疆]鍙梉杩炴帴鍒楄〃]褰卞搷瑙f瀽閿欒"); } #endregion @@ -4602,12 +4655,12 @@ exchanger.EndCode = endConnect?.Id; if (string.IsNullOrEmpty(exchanger.EndCode)) { - exchanger.AppendOrUpdatePropStatus(nameof(exchanger.EndCode), ePropStatus.Error, "[涓嬫父鏋勪欢]鍙梉杩炴帴鍒楄〃]褰卞搷瑙f瀽閿欒"); + exchanger.AppendOrUpdatePropStatus(nameof(exchanger.EndCode), ePropStatus.Error, "[鎹㈢儹鍣╙[涓嬫父鏋勪欢]鍙梉杩炴帴鍒楄〃]褰卞搷瑙f瀽閿欒"); } exchanger.EndPosition = endConnect?.Position; if (exchanger.EndPosition == null) { - exchanger.AppendOrUpdatePropStatus(nameof(exchanger.EndPosition), ePropStatus.Error, "[涓嬫父鏋勪欢浣嶇疆]鍙梉杩炴帴鍒楄〃]褰卞搷瑙f瀽閿欒"); + exchanger.AppendOrUpdatePropStatus(nameof(exchanger.EndPosition), ePropStatus.Error, "[鎹㈢儹鍣╙[涓嬫父鏋勪欢浣嶇疆]鍙梉杩炴帴鍒楄〃]褰卞搷瑙f瀽閿欒"); } #endregion @@ -4620,21 +4673,21 @@ if (string.IsNullOrEmpty(exchanger.LinkStatus)) { exchanger.LinkStatus = PipeStatus.Open; - exchanger.AppendOrUpdatePropStatus(nameof(exchanger.LinkStatus), ePropStatus.Lack, "[绠¢亾鐘舵�乚缂虹渷"); + exchanger.AppendOrUpdatePropStatus(nameof(exchanger.LinkStatus), ePropStatus.Lack, "[鎹㈢儹鍣╙[绠¢亾鐘舵�乚缂虹渷"); } else { if (!PipeStatus.Contains(exchanger.LinkStatus)) { exchanger.LinkStatus = PipeStatus.Open; - exchanger.AppendOrUpdatePropStatus(nameof(exchanger.LinkStatus), ePropStatus.Abnormal, "[绠¢亾鐘舵�乚璁剧疆閿欒"); + exchanger.AppendOrUpdatePropStatus(nameof(exchanger.LinkStatus), ePropStatus.Abnormal, "[鎹㈢儹鍣╙[绠¢亾鐘舵�乚璁剧疆閿欒"); } } } else { exchanger.LinkStatus = PipeStatus.Open; - exchanger.AppendOrUpdatePropStatus(nameof(exchanger.LinkStatus), ePropStatus.Abnormal, "[绠¢亾鐘舵�乚缂哄皯鎴栨牸寮忛敊璇�"); + exchanger.AppendOrUpdatePropStatus(nameof(exchanger.LinkStatus), ePropStatus.Abnormal, "[鎹㈢儹鍣╙[绠¢亾鐘舵�乚缂哄皯鎴栨牸寮忛敊璇�"); } #endregion @@ -4647,7 +4700,7 @@ } else { - exchanger.AppendOrUpdatePropStatus(nameof(exchanger.StartElev), ePropStatus.Abnormal, "[涓婃父鏍囬珮]缂哄皯鎴栨牸寮忛敊璇�"); + exchanger.AppendOrUpdatePropStatus(nameof(exchanger.StartElev), ePropStatus.Abnormal, "[鎹㈢儹鍣╙[涓婃父鏍囬珮]缂哄皯鎴栨牸寮忛敊璇�"); } if (exchanger.StartElev <= 0) @@ -4655,12 +4708,12 @@ //閫氳繃z杞磋嚜鍔ㄨ绠� if (exchanger.StartPosition == null) { - exchanger.AppendOrUpdatePropStatus(nameof(exchanger.StartElev), ePropStatus.Lack, "[涓婃父鏍囬珮]缂虹渷锛屽彈[涓婃父鏋勪欢浣嶇疆]褰卞搷锛屾棤娉曢�氳繃Z杞磋嚜鍔ㄨ绠�"); + exchanger.AppendOrUpdatePropStatus(nameof(exchanger.StartElev), ePropStatus.Lack, "[鎹㈢儹鍣╙[涓婃父鏍囬珮]缂虹渷锛屽彈[涓婃父鏋勪欢浣嶇疆]褰卞搷锛屾棤娉曢�氳繃Z杞磋嚜鍔ㄨ绠�"); } else { exchanger.StartElev = exchanger.StartPosition.Z; - exchanger.AppendOrUpdatePropStatus(nameof(exchanger.StartElev), ePropStatus.Lack, "[涓婃父鏍囬珮]缂虹渷锛岄�氳繃Z杞磋嚜鍔ㄨ绠�"); + exchanger.AppendOrUpdatePropStatus(nameof(exchanger.StartElev), ePropStatus.Lack, "[鎹㈢儹鍣╙[涓婃父鏍囬珮]缂虹渷锛岄�氳繃Z杞磋嚜鍔ㄨ绠�"); } } @@ -4674,7 +4727,7 @@ } else { - exchanger.AppendOrUpdatePropStatus(nameof(exchanger.EndElev), ePropStatus.Abnormal, "[涓嬫父鏍囬珮]缂哄皯鎴栨牸寮忛敊璇�"); + exchanger.AppendOrUpdatePropStatus(nameof(exchanger.EndElev), ePropStatus.Abnormal, "[鎹㈢儹鍣╙[涓嬫父鏍囬珮]缂哄皯鎴栨牸寮忛敊璇�"); } if (exchanger.EndElev <= 0) @@ -4682,12 +4735,12 @@ //閫氳繃z杞磋嚜鍔ㄨ绠� if (exchanger.EndPosition == null) { - exchanger.AppendOrUpdatePropStatus(nameof(exchanger.EndElev), ePropStatus.Lack, "[涓嬫父鏍囬珮]缂虹渷锛屽彈[涓嬫父鏋勪欢浣嶇疆]褰卞搷锛屾棤娉曢�氳繃Z杞磋嚜鍔ㄨ绠�"); + exchanger.AppendOrUpdatePropStatus(nameof(exchanger.EndElev), ePropStatus.Lack, "[鎹㈢儹鍣╙[涓嬫父鏍囬珮]缂虹渷锛屽彈[涓嬫父鏋勪欢浣嶇疆]褰卞搷锛屾棤娉曢�氳繃Z杞磋嚜鍔ㄨ绠�"); } else { exchanger.EndElev = exchanger.EndPosition.Z; - exchanger.AppendOrUpdatePropStatus(nameof(exchanger.EndElev), ePropStatus.Lack, "[涓嬫父鏍囬珮]缂虹渷锛岄�氳繃Z杞磋嚜鍔ㄨ绠�"); + exchanger.AppendOrUpdatePropStatus(nameof(exchanger.EndElev), ePropStatus.Lack, "[鎹㈢儹鍣╙[涓嬫父鏍囬珮]缂虹渷锛岄�氳繃Z杞磋嚜鍔ㄨ绠�"); } } @@ -4700,12 +4753,12 @@ exchanger.StartQuality = startQuality; if (exchanger.StartQuality <= 0) { - exchanger.AppendOrUpdatePropStatus(nameof(exchanger.StartQuality), ePropStatus.Lack, "[涓婃父鍒濆姘磋川]缂虹渷"); + exchanger.AppendOrUpdatePropStatus(nameof(exchanger.StartQuality), ePropStatus.Lack, "[鎹㈢儹鍣╙[涓婃父鍒濆姘磋川]缂虹渷"); } } else { - exchanger.AppendOrUpdatePropStatus(nameof(exchanger.StartQuality), ePropStatus.Abnormal, "[涓婃父鍒濆姘磋川]缂哄皯鎴栬�呮牸寮忛敊璇�"); + exchanger.AppendOrUpdatePropStatus(nameof(exchanger.StartQuality), ePropStatus.Abnormal, "[鎹㈢儹鍣╙[涓婃父鍒濆姘磋川]缂哄皯鎴栬�呮牸寮忛敊璇�"); } #endregion @@ -4717,12 +4770,12 @@ exchanger.EndQuality = endQuality; if (exchanger.EndQuality <= 0) { - exchanger.AppendOrUpdatePropStatus(nameof(exchanger.EndQuality), ePropStatus.Lack, "[涓嬫父鍒濆姘磋川]缂虹渷"); + exchanger.AppendOrUpdatePropStatus(nameof(exchanger.EndQuality), ePropStatus.Lack, "[鎹㈢儹鍣╙[涓嬫父鍒濆姘磋川]缂虹渷"); } } else { - exchanger.AppendOrUpdatePropStatus(nameof(exchanger.EndQuality), ePropStatus.Abnormal, "[涓嬫父鍒濆姘磋川]缂哄皯鎴栬�呮牸寮忛敊璇�"); + exchanger.AppendOrUpdatePropStatus(nameof(exchanger.EndQuality), ePropStatus.Abnormal, "[鎹㈢儹鍣╙[涓嬫父鍒濆姘磋川]缂哄皯鎴栬�呮牸寮忛敊璇�"); } #endregion @@ -4734,12 +4787,12 @@ exchanger.Material = material; if (string.IsNullOrEmpty(exchanger.Material)) { - exchanger.AppendOrUpdatePropStatus(nameof(exchanger.Material), ePropStatus.Lack, "[鏉愯川]缂虹渷"); + exchanger.AppendOrUpdatePropStatus(nameof(exchanger.Material), ePropStatus.Lack, "[鎹㈢儹鍣╙[鏉愯川]缂虹渷"); } } else { - exchanger.AppendOrUpdatePropStatus(nameof(exchanger.Material), ePropStatus.Abnormal, "缂哄皯[鏉愯川]"); + exchanger.AppendOrUpdatePropStatus(nameof(exchanger.Material), ePropStatus.Abnormal, "[鎹㈢儹鍣╙缂哄皯[鏉愯川]"); } #endregion @@ -4752,7 +4805,7 @@ } else { - exchanger.AppendOrUpdatePropStatus(nameof(exchanger.Diameter), ePropStatus.Abnormal, "[鐩村緞]缂哄皯鎴栬�呮牸寮忛敊璇�"); + exchanger.AppendOrUpdatePropStatus(nameof(exchanger.Diameter), ePropStatus.Abnormal, "[鎹㈢儹鍣╙[鐩村緞]缂哄皯鎴栬�呮牸寮忛敊璇�"); } if (exchanger.Diameter < 1) @@ -4760,11 +4813,11 @@ if (jobject[RevitJsonProp.InternalDiameter].MatchNumeric(out double internalDiameter)) { exchanger.Diameter = internalDiameter; - exchanger.AppendOrUpdatePropStatus(nameof(exchanger.Diameter), ePropStatus.Lack, "[鐩村緞]閫氳繃[鍐呭緞]杩涜淇]"); + exchanger.AppendOrUpdatePropStatus(nameof(exchanger.Diameter), ePropStatus.Lack, "[鎹㈢儹鍣╙[鐩村緞]閫氳繃[鍐呭緞]杩涜淇]"); } else { - exchanger.AppendOrUpdatePropStatus(nameof(exchanger.Diameter), ePropStatus.Abnormal, "[鐩村緞]鏃犳硶閫氳繃[鍐呭緞]杩涜淇]"); + exchanger.AppendOrUpdatePropStatus(nameof(exchanger.Diameter), ePropStatus.Abnormal, "[鎹㈢儹鍣╙[鐩村緞]鏃犳硶閫氳繃[鍐呭緞]杩涜淇]"); } } @@ -4773,18 +4826,18 @@ if (jobject[RevitJsonProp.DN].MatchNumeric(out double dn)) { exchanger.Diameter = dn; - exchanger.AppendOrUpdatePropStatus(nameof(exchanger.Diameter), ePropStatus.Lack, "[鐩村緞]閫氳繃[鍏О鐩村緞]杩涜淇]"); + exchanger.AppendOrUpdatePropStatus(nameof(exchanger.Diameter), ePropStatus.Lack, "[鎹㈢儹鍣╙[鐩村緞]閫氳繃[鍏О鐩村緞]杩涜淇]"); } else { - exchanger.AppendOrUpdatePropStatus(nameof(exchanger.Diameter), ePropStatus.Abnormal, "[鐩村緞]鏃犳硶閫氳繃[鍏О鐩村緞]杩涜淇]"); + exchanger.AppendOrUpdatePropStatus(nameof(exchanger.Diameter), ePropStatus.Abnormal, "[鎹㈢儹鍣╙[鐩村緞]鏃犳硶閫氳繃[鍏О鐩村緞]杩涜淇]"); } } if (exchanger.Diameter < 1) { exchanger.Diameter = 1000; - exchanger.AppendOrUpdatePropStatus(nameof(exchanger.Diameter), ePropStatus.Lack, "[鐩村緞][鍐呭緞]瑙f瀽閿欒锛屼娇鐢ㄩ粯璁ゅ��(1000mm)淇]"); + exchanger.AppendOrUpdatePropStatus(nameof(exchanger.Diameter), ePropStatus.Lack, "[鎹㈢儹鍣╙[鐩村緞][鍐呭緞]瑙f瀽閿欒锛屼娇鐢ㄩ粯璁ゅ��(1000mm)淇]"); } #endregion @@ -4797,18 +4850,18 @@ } else { - exchanger.AppendOrUpdatePropStatus(nameof(exchanger.Length), ePropStatus.Abnormal, "[闀垮害]缂哄皯鎴栬�呮牸寮忛敊璇�"); + exchanger.AppendOrUpdatePropStatus(nameof(exchanger.Length), ePropStatus.Abnormal, "[鎹㈢儹鍣╙[闀垮害]缂哄皯鎴栬�呮牸寮忛敊璇�"); } if (exchanger.Length <= 0) { if (exchanger.StartPosition != null && exchanger.EndPosition != null) { exchanger.Length = exchanger.StartPosition.Distance(exchanger.EndPosition); - exchanger.AppendOrUpdatePropStatus(nameof(exchanger.Length), ePropStatus.Lack, "[闀垮害]缂虹渷锛岄�氳繃浣嶇疆鑷姩璁$畻"); + exchanger.AppendOrUpdatePropStatus(nameof(exchanger.Length), ePropStatus.Lack, "[鎹㈢儹鍣╙[闀垮害]缂虹渷锛岄�氳繃浣嶇疆鑷姩璁$畻"); } else { - exchanger.AppendOrUpdatePropStatus(nameof(exchanger.Length), ePropStatus.Abnormal, "[闀垮害]鍙梉杩炴帴鍒楄〃]褰卞搷鏃犳硶鑷姩璁$畻"); + exchanger.AppendOrUpdatePropStatus(nameof(exchanger.Length), ePropStatus.Abnormal, "[鎹㈢儹鍣╙[闀垮害]鍙梉杩炴帴鍒楄〃]褰卞搷鏃犳硶鑷姩璁$畻"); } } @@ -4822,13 +4875,13 @@ } else { - exchanger.AppendOrUpdatePropStatus(nameof(exchanger.Roughness), ePropStatus.Abnormal, "[绮楃硻绯绘暟]缂哄皯鎴栬�呮暟鎹牸寮忛敊璇�"); + exchanger.AppendOrUpdatePropStatus(nameof(exchanger.Roughness), ePropStatus.Abnormal, "[鎹㈢儹鍣╙[绮楃硻绯绘暟]缂哄皯鎴栬�呮暟鎹牸寮忛敊璇�"); } if (exchanger.Roughness < 0.1) { exchanger.Roughness = 110; - exchanger.AppendOrUpdatePropStatus(nameof(exchanger.Roughness), ePropStatus.Lack, "[绮楃硻绯绘暟]瑙f瀽閿欒锛岄�氳繃榛樿鍊�(110)杩涜淇"); + exchanger.AppendOrUpdatePropStatus(nameof(exchanger.Roughness), ePropStatus.Lack, "[鎹㈢儹鍣╙[绮楃硻绯绘暟]瑙f瀽閿欒锛岄�氳繃榛樿鍊�(110)杩涜淇"); } #endregion @@ -4841,12 +4894,441 @@ } else { - exchanger.AppendOrUpdatePropStatus(nameof(exchanger.MinorLoss), ePropStatus.Abnormal, "[灞�閮ㄩ樆鍔涚郴鏁癩缂哄皯鎴栬�呮暟鎹牸寮忛敊璇�"); + exchanger.AppendOrUpdatePropStatus(nameof(exchanger.MinorLoss), ePropStatus.Abnormal, "[鎹㈢儹鍣╙[灞�閮ㄩ樆鍔涚郴鏁癩缂哄皯鎴栬�呮暟鎹牸寮忛敊璇�"); + } + + #endregion + + #region MinorLossK + + if (jobject[RevitJsonProp.MinorLossK].MatchNumeric(out double minorLossK)) + { + exchanger.MinorLossK = minorLossK; + } + else + { + exchanger.AppendOrUpdatePropStatus(nameof(exchanger.MinorLossK), ePropStatus.Abnormal, "[鎹㈢儹鍣╙[鎹熷けK绯绘暟]缂哄皯鎴栬�呮暟鎹牸寮忛敊璇�"); } #endregion return exchanger; + } + + //瑙f瀽绌哄帇鏈� + private static HStation.Model.RevitCompressor ParseCompressor(JToken jobject) + { + if (jobject == null) + { + return default; + } + + var compressor = new Model.RevitCompressor(); + compressor.Catalog = RevitJsonCatalog.Compressor; + + #region Id + + if (jobject.ParseString(RevitJsonProp.Id, out string id)) + { + compressor.Id = id; + } + else + { + compressor.AppendOrUpdatePropStatus(nameof(compressor.Id), ePropStatus.Error, "[绌哄帇鏈篯缂哄皯[鏋勪欢缂栫爜]"); + } + + #endregion + + #region Code + + if (jobject.ParseString(RevitJsonProp.Code, out string code)) + { + compressor.Code = code; + if (string.IsNullOrEmpty(compressor.Code)) + { + compressor.Code = compressor.Id; + compressor.AppendOrUpdatePropStatus(nameof(compressor.Code), ePropStatus.Lack, "[绌哄帇鏈篯[缂栫爜]缂虹渷锛屼娇鐢╗鏋勪欢缂栫爜]璧嬪��"); + } + } + else + { + compressor.AppendOrUpdatePropStatus(nameof(compressor.Code), ePropStatus.Error, "[绌哄帇鏈篯缂哄皯[缂栫爜]"); + } + + #endregion + + #region Name + + if (jobject.ParseString(RevitJsonProp.Name, out string name)) + { + compressor.Name = name; + compressor.AppendOrUpdatePropStatus(nameof(compressor.Name), ePropStatus.Lack, "[绌哄帇鏈篯[鍚嶇О]缂虹渷"); + } + else + { + compressor.AppendOrUpdatePropStatus(nameof(compressor.Name), ePropStatus.Error, "[绌哄帇鏈篯缂哄皯[鍚嶇О]"); + } + + #endregion + + #region ModelType + + if (jobject.ParseString(RevitJsonProp.ModelType, out string modelType)) + { + compressor.ModelType = modelType; + if (string.IsNullOrEmpty(compressor.ModelType)) + { + compressor.AppendOrUpdatePropStatus(nameof(compressor.ModelType), ePropStatus.Lack, "[绌哄帇鏈篯[鍨嬪彿淇℃伅]缂虹渷"); + } + } + else + { + compressor.AppendOrUpdatePropStatus(nameof(compressor.ModelType), ePropStatus.Error, "[绌哄帇鏈篯缂哄皯[鍨嬪彿淇℃伅]"); + } + + #endregion + + #region Flags + + if (jobject.ParseString(RevitJsonProp.Flags, out string flags)) + { + compressor.Flags = Yw.Untity.FlagsHelper.ToList(flags); + if (!string.IsNullOrEmpty(flags)) + { + if (compressor.Flags == null || compressor.Flags.Count < 1) + { + compressor.AppendOrUpdatePropStatus(nameof(compressor.Flags), ePropStatus.Abnormal, "[绌哄帇鏈篯[鏍囩]鏍煎紡閿欒"); + } + } + } + else + { + compressor.AppendOrUpdatePropStatus(nameof(compressor.Flags), ePropStatus.Error, "[绌哄帇鏈篯缂哄皯[鏍囩]"); + } + + #endregion + + #region Description + + if (jobject.ParseString(RevitJsonProp.Description, out string description)) + { + compressor.Description = description; + } + else + { + compressor.AppendOrUpdatePropStatus(nameof(compressor.Description), ePropStatus.Error, "[绌哄帇鏈篯缂哄皯[璇存槑淇℃伅]"); + } + + #endregion + + #region ConnectList + + if (jobject.ParseString(RevitJsonProp.Connects, out string connectString)) + { + var connectList = JsonHelper.Json2Object<List<RevitJsonConnectModel>>(connectString); + compressor.ConnectList = connectList?.Select(x => new Model.RevitConnect() + { + Id = x.ConnectId, + Direction = x.Dirction, + Position = new Model.RevitPosition() + { + X = x.Point.X / 1000f, + Y = x.Point.Y / 1000f, + Z = x.Point.Z / 1000f + } + }).ToList(); + if (compressor.ConnectList == null || compressor.ConnectList.Count < 1) + { + compressor.AppendOrUpdatePropStatus(nameof(compressor.ConnectList), ePropStatus.Error, "[绌哄帇鏈篯[杩炴帴鍒楄〃]瑙f瀽澶辫触"); + } + } + else + { + compressor.AppendOrUpdatePropStatus(nameof(compressor.ConnectList), ePropStatus.Error, "[绌哄帇鏈篯缂哄皯[杩炴帴鍒楄〃]"); + } + + #endregion + + #region StartCode/StartPosition + + var startConnect = compressor.ConnectList?.GetStartConnect(); + compressor.StartCode = startConnect?.Id; + if (string.IsNullOrEmpty(compressor.StartCode)) + { + compressor.AppendOrUpdatePropStatus(nameof(compressor.StartCode), ePropStatus.Error, "[绌哄帇鏈篯[涓婃父鏋勪欢]鍙梉杩炴帴鍒楄〃]褰卞搷瑙f瀽閿欒"); + } + compressor.StartPosition = startConnect?.Position; + if (compressor.StartPosition == null) + { + compressor.AppendOrUpdatePropStatus(nameof(compressor.StartPosition), ePropStatus.Error, "[绌哄帇鏈篯[涓婃父鏋勪欢浣嶇疆]鍙梉杩炴帴鍒楄〃]褰卞搷瑙f瀽閿欒"); + } + + #endregion + + #region EndCode/EndPosition + + var endConnect = compressor.ConnectList?.GetEndConnect(); + compressor.EndCode = endConnect?.Id; + if (string.IsNullOrEmpty(compressor.EndCode)) + { + compressor.AppendOrUpdatePropStatus(nameof(compressor.EndCode), ePropStatus.Error, "[绌哄帇鏈篯[涓嬫父鏋勪欢]鍙梉杩炴帴鍒楄〃]褰卞搷瑙f瀽閿欒"); + } + compressor.EndPosition = endConnect?.Position; + if (compressor.EndPosition == null) + { + compressor.AppendOrUpdatePropStatus(nameof(compressor.EndPosition), ePropStatus.Error, "[绌哄帇鏈篯[涓嬫父鏋勪欢浣嶇疆]鍙梉杩炴帴鍒楄〃]褰卞搷瑙f瀽閿欒"); + } + + #endregion + + #region LinkStatus + + if (jobject.ParseString(RevitJsonProp.LinkStatusPipe, out string linkStatus)) + { + compressor.LinkStatus = linkStatus; + if (string.IsNullOrEmpty(compressor.LinkStatus)) + { + compressor.LinkStatus = PipeStatus.Open; + compressor.AppendOrUpdatePropStatus(nameof(compressor.LinkStatus), ePropStatus.Lack, "[绌哄帇鏈篯[绠¢亾鐘舵�乚缂虹渷"); + } + else + { + if (!PipeStatus.Contains(compressor.LinkStatus)) + { + compressor.LinkStatus = PipeStatus.Open; + compressor.AppendOrUpdatePropStatus(nameof(compressor.LinkStatus), ePropStatus.Abnormal, "[绌哄帇鏈篯[绠¢亾鐘舵�乚璁剧疆閿欒"); + } + } + } + else + { + compressor.LinkStatus = PipeStatus.Open; + compressor.AppendOrUpdatePropStatus(nameof(compressor.LinkStatus), ePropStatus.Abnormal, "[绌哄帇鏈篯[绠¢亾鐘舵�乚缂哄皯鎴栨牸寮忛敊璇�"); + } + + #endregion + + #region StartElev + + if (jobject[RevitJsonProp.StartElev].MatchNumeric(out double startElev)) + { + compressor.StartElev = startElev / 1000f; + } + else + { + compressor.AppendOrUpdatePropStatus(nameof(compressor.StartElev), ePropStatus.Abnormal, "[绌哄帇鏈篯[涓婃父鏍囬珮]缂哄皯鎴栨牸寮忛敊璇�"); + } + + if (compressor.StartElev <= 0) + { + //閫氳繃z杞磋嚜鍔ㄨ绠� + if (compressor.StartPosition == null) + { + compressor.AppendOrUpdatePropStatus(nameof(compressor.StartElev), ePropStatus.Lack, "[绌哄帇鏈篯[涓婃父鏍囬珮]缂虹渷锛屽彈[涓婃父鏋勪欢浣嶇疆]褰卞搷锛屾棤娉曢�氳繃Z杞磋嚜鍔ㄨ绠�"); + } + else + { + compressor.StartElev = compressor.StartPosition.Z; + compressor.AppendOrUpdatePropStatus(nameof(compressor.StartElev), ePropStatus.Lack, "[绌哄帇鏈篯[涓婃父鏍囬珮]缂虹渷锛岄�氳繃Z杞磋嚜鍔ㄨ绠�"); + } + } + + #endregion + + #region EndElev + + if (jobject[RevitJsonProp.EndElev].MatchNumeric(out double endElev)) + { + compressor.EndElev = endElev / 1000f; + } + else + { + compressor.AppendOrUpdatePropStatus(nameof(compressor.EndElev), ePropStatus.Abnormal, "[绌哄帇鏈篯[涓嬫父鏍囬珮]缂哄皯鎴栨牸寮忛敊璇�"); + } + + if (compressor.EndElev <= 0) + { + //閫氳繃z杞磋嚜鍔ㄨ绠� + if (compressor.EndPosition == null) + { + compressor.AppendOrUpdatePropStatus(nameof(compressor.EndElev), ePropStatus.Lack, "[绌哄帇鏈篯[涓嬫父鏍囬珮]缂虹渷锛屽彈[涓嬫父鏋勪欢浣嶇疆]褰卞搷锛屾棤娉曢�氳繃Z杞磋嚜鍔ㄨ绠�"); + } + else + { + compressor.EndElev = compressor.EndPosition.Z; + compressor.AppendOrUpdatePropStatus(nameof(compressor.EndElev), ePropStatus.Lack, "[绌哄帇鏈篯[涓嬫父鏍囬珮]缂虹渷锛岄�氳繃Z杞磋嚜鍔ㄨ绠�"); + } + } + + #endregion + + #region StartQuality + + if (jobject[RevitJsonProp.StartQuality].MatchNumeric(out double startQuality)) + { + compressor.StartQuality = startQuality; + if (compressor.StartQuality <= 0) + { + compressor.AppendOrUpdatePropStatus(nameof(compressor.StartQuality), ePropStatus.Lack, "[绌哄帇鏈篯[涓婃父鍒濆姘磋川]缂虹渷"); + } + } + else + { + compressor.AppendOrUpdatePropStatus(nameof(compressor.StartQuality), ePropStatus.Abnormal, "[绌哄帇鏈篯[涓婃父鍒濆姘磋川]缂哄皯鎴栬�呮牸寮忛敊璇�"); + } + + #endregion + + #region EndQuality + + if (jobject[RevitJsonProp.EndQuality].MatchNumeric(out double endQuality)) + { + compressor.EndQuality = endQuality; + if (compressor.EndQuality <= 0) + { + compressor.AppendOrUpdatePropStatus(nameof(compressor.EndQuality), ePropStatus.Lack, "[绌哄帇鏈篯[涓嬫父鍒濆姘磋川]缂虹渷"); + } + } + else + { + compressor.AppendOrUpdatePropStatus(nameof(compressor.EndQuality), ePropStatus.Abnormal, "[绌哄帇鏈篯[涓嬫父鍒濆姘磋川]缂哄皯鎴栬�呮牸寮忛敊璇�"); + } + + #endregion + + #region Material + + if (jobject.ParseString(RevitJsonProp.Material, out string material)) + { + compressor.Material = material; + if (string.IsNullOrEmpty(compressor.Material)) + { + compressor.AppendOrUpdatePropStatus(nameof(compressor.Material), ePropStatus.Lack, "[绌哄帇鏈篯[鏉愯川]缂虹渷"); + } + } + else + { + compressor.AppendOrUpdatePropStatus(nameof(compressor.Material), ePropStatus.Abnormal, "[绌哄帇鏈篯缂哄皯[鏉愯川]"); + } + + #endregion + + #region Diameter + + if (jobject[RevitJsonProp.Diameter].MatchNumeric(out double diameter)) + { + compressor.Diameter = diameter; + } + else + { + compressor.AppendOrUpdatePropStatus(nameof(compressor.Diameter), ePropStatus.Abnormal, "[绌哄帇鏈篯[鐩村緞]缂哄皯鎴栬�呮牸寮忛敊璇�"); + } + + if (compressor.Diameter < 1) + { + if (jobject[RevitJsonProp.InternalDiameter].MatchNumeric(out double internalDiameter)) + { + compressor.Diameter = internalDiameter; + compressor.AppendOrUpdatePropStatus(nameof(compressor.Diameter), ePropStatus.Lack, "[绌哄帇鏈篯[鐩村緞]閫氳繃[鍐呭緞]杩涜淇]"); + } + else + { + compressor.AppendOrUpdatePropStatus(nameof(compressor.Diameter), ePropStatus.Abnormal, "[绌哄帇鏈篯[鐩村緞]鏃犳硶閫氳繃[鍐呭緞]杩涜淇]"); + } + } + + if (compressor.Diameter < 1) + { + if (jobject[RevitJsonProp.DN].MatchNumeric(out double dn)) + { + compressor.Diameter = dn; + compressor.AppendOrUpdatePropStatus(nameof(compressor.Diameter), ePropStatus.Lack, "[绌哄帇鏈篯[鐩村緞]閫氳繃[鍏О鐩村緞]杩涜淇]"); + } + else + { + compressor.AppendOrUpdatePropStatus(nameof(compressor.Diameter), ePropStatus.Abnormal, "[绌哄帇鏈篯[鐩村緞]鏃犳硶閫氳繃[鍏О鐩村緞]杩涜淇]"); + } + } + + if (compressor.Diameter < 1) + { + compressor.Diameter = 1000; + compressor.AppendOrUpdatePropStatus(nameof(compressor.Diameter), ePropStatus.Lack, "[绌哄帇鏈篯[鐩村緞][鍐呭緞]瑙f瀽閿欒锛屼娇鐢ㄩ粯璁ゅ��(1000mm)淇]"); + } + + #endregion + + #region Length + + if (jobject[RevitJsonProp.Length].MatchNumeric(out double length)) + { + compressor.Length = length / 1000f; + } + else + { + compressor.AppendOrUpdatePropStatus(nameof(compressor.Length), ePropStatus.Abnormal, "[绌哄帇鏈篯[闀垮害]缂哄皯鎴栬�呮牸寮忛敊璇�"); + } + if (compressor.Length <= 0) + { + if (compressor.StartPosition != null && compressor.EndPosition != null) + { + compressor.Length = compressor.StartPosition.Distance(compressor.EndPosition); + compressor.AppendOrUpdatePropStatus(nameof(compressor.Length), ePropStatus.Lack, "[绌哄帇鏈篯[闀垮害]缂虹渷锛岄�氳繃浣嶇疆鑷姩璁$畻"); + } + else + { + compressor.AppendOrUpdatePropStatus(nameof(compressor.Length), ePropStatus.Abnormal, "[绌哄帇鏈篯[闀垮害]鍙梉杩炴帴鍒楄〃]褰卞搷鏃犳硶鑷姩璁$畻"); + } + } + + #endregion + + #region Roughness + + if (jobject[RevitJsonProp.Roughness].MatchNumeric(out double roughness)) + { + compressor.Roughness = roughness; + } + else + { + compressor.AppendOrUpdatePropStatus(nameof(compressor.Roughness), ePropStatus.Abnormal, "[绌哄帇鏈篯[绮楃硻绯绘暟]缂哄皯鎴栬�呮暟鎹牸寮忛敊璇�"); + } + + if (compressor.Roughness < 0.1) + { + compressor.Roughness = 110; + compressor.AppendOrUpdatePropStatus(nameof(compressor.Roughness), ePropStatus.Lack, "[绌哄帇鏈篯[绮楃硻绯绘暟]瑙f瀽閿欒锛岄�氳繃榛樿鍊�(110)杩涜淇"); + } + + #endregion + + #region MinorLoss + + if (jobject[RevitJsonProp.MinorLoss].MatchNumeric(out double minorLoss)) + { + compressor.MinorLoss = minorLoss; + } + else + { + compressor.AppendOrUpdatePropStatus(nameof(compressor.MinorLoss), ePropStatus.Abnormal, "[绌哄帇鏈篯[灞�閮ㄩ樆鍔涚郴鏁癩缂哄皯鎴栬�呮暟鎹牸寮忛敊璇�"); + } + + #endregion + + #region MinorLossK + + if (jobject[RevitJsonProp.MinorLossK].MatchNumeric(out double minorLossK)) + { + compressor.MinorLossK = minorLossK; + } + else + { + compressor.AppendOrUpdatePropStatus(nameof(compressor.MinorLossK), ePropStatus.Abnormal, "[绌哄帇鏈篯[鎹熷けK绯绘暟]缂哄皯鎴栬�呮暟鎹牸寮忛敊璇�"); + } + + #endregion + + return compressor; } //瑙f瀽姘存车 @@ -4857,6 +5339,7 @@ return default; } var pump = new Model.RevitPump(); + pump.Catalog = RevitJsonCatalog.Pump; #region Id @@ -5213,6 +5696,7 @@ if (pump.RatedHz < 1) { + pump.RatedHz = 50; pump.AppendOrUpdatePropStatus(nameof(pump.RatedHz), ePropStatus.Lack, "[棰濆畾棰戠巼]缂虹渷锛屼娇鐢ㄩ粯璁ゅ��(50Hz)杩涜淇"); } @@ -5346,6 +5830,7 @@ return default; } var valve = new Model.RevitValve(); + valve.Catalog = RevitJsonCatalog.Valve; #region Id @@ -5702,6 +6187,20 @@ #endregion + #region OpeningDegree + + if (jobject[RevitJsonProp.ValveOpeningDegree].MatchNumeric(out double openingDegree)) + { + valve.OpeningDegree = openingDegree; + } + else + { + valve.OpeningDegree = 100; + valve.AppendOrUpdatePropStatus(nameof(valve.MinorLoss), ePropStatus.Abnormal, "[闃�闂ㄥ紑搴缂哄皯鎴栬�呮暟鎹牸寮忛敊璇紝浣跨敤榛樿鍊�(100)杩涜淇"); + } + + #endregion + #region ValveSetting if (jobject.ParseString(RevitJsonProp.ValveSetting, out string valveSetting)) -- Gitblit v1.9.3