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