Shuxia Ning
2025-01-08 687a3dfd095bc8c099b7fa6e65f0dc699fdc8f1d
Service/HStation.Service.Revit.Core/04-service/01-json/RevitJsonHelper.cs
@@ -372,6 +372,10 @@
            {
                reservoir.UpdatePropStatus(nameof(reservoir.Flags), ePropStatus.Error, "缺少[标签信息]");
            }
            if (reservoir.Flags == null)
            {
                reservoir.Flags = new List<string>();
            }
            #endregion
@@ -569,6 +573,11 @@
            else
            {
                tank.UpdatePropStatus(nameof(tank.Flags), ePropStatus.Error, "缺少[标签信息]");
            }
            if (tank.Flags == null)
            {
                tank.Flags = new List<string>();
            }
            #endregion
@@ -844,6 +853,11 @@
                waterbox.UpdatePropStatus(nameof(waterbox.Flags), ePropStatus.Error, "缺少[标签信息]");
            }
            if (waterbox.Flags == null)
            {
                waterbox.Flags = new List<string>();
            }
            #endregion
            #region Description
@@ -1117,6 +1131,11 @@
                junction.UpdatePropStatus(nameof(junction.Flags), ePropStatus.Error, "缺少[标签信息]");
            }
            if (junction.Flags == null)
            {
                junction.Flags = new List<string>();
            }
            #endregion
            #region Description
@@ -1328,6 +1347,11 @@
                blunthead.UpdatePropStatus(nameof(blunthead.Flags), ePropStatus.Error, "缺少[标签信息]");
            }
            if (blunthead.Flags == null)
            {
                blunthead.Flags = new List<string>();
            }
            #endregion
            #region Description
@@ -1443,7 +1467,14 @@
            {
                blunthead.Caliber = caliber;
            }
            else
            if (blunthead.Caliber <= 0)
            {
                if (jobject[RevitJsonProp.DN].MatchNumeric(out caliber))
                {
                    blunthead.Caliber = caliber;
                }
            }
            if (blunthead.Caliber <= 0)
            {
                blunthead.UpdatePropStatus(nameof(blunthead.Caliber), ePropStatus.Abnormal, "[口径信息]缺少或者数据格式错误");
            }
@@ -1570,6 +1601,11 @@
                elbow.UpdatePropStatus(nameof(elbow.Flags), ePropStatus.Error, "缺少[标签信息]");
            }
            if (elbow.Flags == null)
            {
                elbow.Flags = new List<string>();
            }
            #endregion
            #region Description
@@ -1685,7 +1721,14 @@
            {
                elbow.Caliber = caliber;
            }
            else
            if (elbow.Caliber <= 0)
            {
                if (jobject[RevitJsonProp.DN].MatchNumeric(out caliber))
                {
                    elbow.Caliber = caliber;
                }
            }
            if (elbow.Caliber <= 0)
            {
                elbow.UpdatePropStatus(nameof(elbow.Caliber), ePropStatus.Abnormal, "[口径信息]缺少或者数据格式错误");
            }
@@ -1739,7 +1782,7 @@
            if (jobject[RevitJsonProp.BendingAngle].MatchNumeric(out double bendingAngle))
            {
                elbow.BendingAngle = bendingAngle;
                elbow.BendingAngle = (int)bendingAngle;
            }
            else
            {
@@ -1839,6 +1882,11 @@
            else
            {
                threelink.UpdatePropStatus(nameof(threelink.Flags), ePropStatus.Error, "缺少[标签信息]");
            }
            if (threelink.Flags == null)
            {
                threelink.Flags = new List<string>();
            }
            #endregion
@@ -1956,7 +2004,14 @@
            {
                threelink.Caliber = caliber;
            }
            else
            if (threelink.Caliber <= 0)
            {
                if (jobject[RevitJsonProp.DN].MatchNumeric(out caliber))
                {
                    threelink.Caliber = caliber;
                }
            }
            if (threelink.Caliber <= 0)
            {
                threelink.UpdatePropStatus(nameof(threelink.Caliber), ePropStatus.Abnormal, "[口径信息]缺少或者数据格式错误");
            }
@@ -2108,6 +2163,11 @@
                fourlink.UpdatePropStatus(nameof(fourlink.Flags), ePropStatus.Error, "缺少[标签信息]");
            }
            if (fourlink.Flags == null)
            {
                fourlink.Flags = new List<string>();
            }
            #endregion
            #region Description
@@ -2223,7 +2283,14 @@
            {
                fourlink.Caliber = caliber;
            }
            else
            if (fourlink.Caliber <= 0)
            {
                if (jobject[RevitJsonProp.DN].MatchNumeric(out caliber))
                {
                    fourlink.Caliber = caliber;
                }
            }
            if (fourlink.Caliber <= 0)
            {
                fourlink.UpdatePropStatus(nameof(fourlink.Caliber), ePropStatus.Abnormal, "[口径信息]缺少或者数据格式错误");
            }
@@ -2347,6 +2414,11 @@
            else
            {
                nozzle.UpdatePropStatus(nameof(nozzle.Flags), ePropStatus.Error, "缺少[标签信息]");
            }
            if (nozzle.Flags == null)
            {
                nozzle.Flags = new List<string>();
            }
            #endregion
@@ -2620,6 +2692,11 @@
                hydrant.UpdatePropStatus(nameof(hydrant.Flags), ePropStatus.Error, "缺少[标签信息]");
            }
            if (hydrant.Flags == null)
            {
                hydrant.Flags = new List<string>();
            }
            #endregion
            #region Description
@@ -2884,6 +2961,11 @@
            else
            {
                cooling.UpdatePropStatus(nameof(cooling.Flags), ePropStatus.Error, "缺少[标签信息]");
            }
            if (cooling.Flags == null)
            {
                cooling.Flags = new List<string>();
            }
            #endregion
@@ -3169,6 +3251,11 @@
                meter.UpdatePropStatus(nameof(meter.Flags), ePropStatus.Error, "缺少[标签信息]");
            }
            if (meter.Flags == null)
            {
                meter.Flags = new List<string>();
            }
            #endregion
            #region Description
@@ -3378,6 +3465,11 @@
            else
            {
                flowmeter.UpdatePropStatus(nameof(flowmeter.Flags), ePropStatus.Error, "缺少[标签信息]");
            }
            if (flowmeter.Flags == null)
            {
                flowmeter.Flags = new List<string>();
            }
            #endregion
@@ -3604,6 +3696,11 @@
                pressmeter.UpdatePropStatus(nameof(pressmeter.Flags), ePropStatus.Error, "缺少[标签信息]");
            }
            if (pressmeter.Flags == null)
            {
                pressmeter.Flags = new List<string>();
            }
            #endregion
            #region Description
@@ -3784,7 +3881,10 @@
            if (jobject.ParseString(RevitJsonProp.Name, out string name))
            {
                pipe.Name = name;
                pipe.UpdatePropStatus(nameof(pipe.Name), ePropStatus.Lack, "[构件名称]缺省");
                if (string.IsNullOrEmpty(pipe.Name))
                {
                    pipe.UpdatePropStatus(nameof(pipe.Name), ePropStatus.Lack, "[构件名称]缺省");
                }
            }
            else
            {
@@ -3814,7 +3914,7 @@
            if (jobject.ParseString(RevitJsonProp.Flags, out string flags))
            {
                pipe.Flags = Yw.Untity.FlagsHelper.ToList(flags);
                pipe.Flags = RevitFlagsHelper.ToList(flags);
                if (!string.IsNullOrEmpty(flags))
                {
                    if (pipe.Flags == null || pipe.Flags.Count < 1)
@@ -3826,6 +3926,11 @@
            else
            {
                pipe.UpdatePropStatus(nameof(pipe.Flags), ePropStatus.Error, "缺少[标签信息]");
            }
            if (pipe.Flags == null)
            {
                pipe.Flags = new List<string>();
            }
            #endregion
@@ -3949,7 +4054,8 @@
            #region Diameter
            if (jobject[RevitJsonProp.Diameter].MatchNumeric(out double diameter))
            //直径信息
            if (jobject[RevitJsonProp.DiameterInfo].MatchNumeric(out double diameter))
            {
                pipe.Diameter = diameter;
            }
@@ -3958,11 +4064,26 @@
                pipe.UpdatePropStatus(nameof(pipe.Diameter), ePropStatus.Abnormal, "[直径信息]缺少或者格式错误");
            }
            //直径
            if (pipe.Diameter < 1)
            {
                if (jobject[RevitJsonProp.InternalDiameter].MatchNumeric(out double internalDiameter))
                if (jobject[RevitJsonProp.Diameter].MatchNumeric(out diameter))
                {
                    pipe.Diameter = internalDiameter;
                    pipe.Diameter = diameter;
                    pipe.UpdatePropStatus(nameof(pipe.Diameter), ePropStatus.Lack, "[直径信息]通过[直径]进行修复]");
                }
                else
                {
                    pipe.UpdatePropStatus(nameof(pipe.Diameter), ePropStatus.Abnormal, "[直径信息]无法通过[直径]进行修复]");
                }
            }
            //内径
            if (pipe.Diameter < 1)
            {
                if (jobject[RevitJsonProp.InternalDiameter].MatchNumeric(out diameter))
                {
                    pipe.Diameter = diameter;
                    pipe.UpdatePropStatus(nameof(pipe.Diameter), ePropStatus.Lack, "[直径信息]通过[内径]进行修复]");
                }
                else
@@ -3971,6 +4092,7 @@
                }
            }
            //公称直径
            if (pipe.Diameter < 1)
            {
                if (jobject[RevitJsonProp.DN].MatchNumeric(out double dn))
@@ -3986,8 +4108,7 @@
            if (pipe.Diameter < 1)
            {
                pipe.Diameter = 500;
                pipe.UpdatePropStatus(nameof(pipe.Diameter), ePropStatus.Lack, "[直径信息][内径]解析错误,使用默认值(500mm)修正]");
                pipe.UpdatePropStatus(nameof(pipe.Diameter), ePropStatus.Error, "[直径信息]解析错误,无法通过【直径】【内径】【公称直径】修复");
            }
            #endregion
@@ -4123,6 +4244,11 @@
            else
            {
                translation.UpdatePropStatus(nameof(translation.Flags), ePropStatus.Error, "缺少[标签信息]");
            }
            if (translation.Flags == null)
            {
                translation.Flags = new List<string>();
            }
            #endregion
@@ -4289,7 +4415,7 @@
            #region Diameter
            if (jobject[RevitJsonProp.Diameter].MatchNumeric(out double diameter))
            if (jobject[RevitJsonProp.DiameterInfo].MatchNumeric(out double diameter))
            {
                translation.Diameter = diameter;
            }
@@ -4480,6 +4606,11 @@
            else
            {
                pump.UpdatePropStatus(nameof(pump.Flags), ePropStatus.Error, "缺少[标签信息]");
            }
            if (pump.Flags == null)
            {
                pump.Flags = new List<string>();
            }
            #endregion
@@ -4880,6 +5011,11 @@
                valve.UpdatePropStatus(nameof(valve.Flags), ePropStatus.Error, "缺少[标签信息]");
            }
            if (valve.Flags == null)
            {
                valve.Flags = new List<string>();
            }
            #endregion
            #region Description
@@ -5044,7 +5180,7 @@
            #region Diameter
            if (jobject[RevitJsonProp.Diameter].MatchNumeric(out double diameter))
            if (jobject[RevitJsonProp.DiameterInfo].MatchNumeric(out double diameter))
            {
                valve.Diameter = diameter;
            }
@@ -5055,9 +5191,9 @@
            if (valve.Diameter < 1)
            {
                if (jobject[RevitJsonProp.InternalDiameter].MatchNumeric(out double internalDiameter))
                if (jobject[RevitJsonProp.InternalDiameter].MatchNumeric(out diameter))
                {
                    valve.Diameter = internalDiameter;
                    valve.Diameter = diameter;
                    valve.UpdatePropStatus(nameof(valve.Diameter), ePropStatus.Lack, "[直径信息]通过[内径]进行修复]");
                }
                else
@@ -5068,9 +5204,9 @@
            if (valve.Diameter < 1)
            {
                if (jobject[RevitJsonProp.DN].MatchNumeric(out double dn))
                if (jobject[RevitJsonProp.DN].MatchNumeric(out diameter))
                {
                    valve.Diameter = dn;
                    valve.Diameter = diameter;
                    valve.UpdatePropStatus(nameof(valve.Diameter), ePropStatus.Lack, "[直径信息]通过[公称直径]进行修复]");
                }
                else
@@ -5081,8 +5217,33 @@
            if (valve.Diameter < 1)
            {
                valve.Diameter = 500;
                valve.UpdatePropStatus(nameof(valve.Diameter), ePropStatus.Lack, "[直径信息][内径]解析错误,使用默认值(500mm)修正]");
                if (jobject[RevitJsonProp.MaxSize].MatchNumeric(out diameter))
                {
                    valve.Diameter = diameter;
                    valve.UpdatePropStatus(nameof(valve.Diameter), ePropStatus.Lack, "[直径信息]通过[最大尺寸]进行修复]");
                }
                else
                {
                    valve.UpdatePropStatus(nameof(valve.Diameter), ePropStatus.Abnormal, "[直径信息]无法通过[最大尺寸]进行修复]");
                }
            }
            if (valve.Diameter < 1)
            {
                if (jobject[RevitJsonProp.MinSize].MatchNumeric(out diameter))
                {
                    valve.Diameter = diameter;
                    valve.UpdatePropStatus(nameof(valve.Diameter), ePropStatus.Lack, "[直径信息]通过[最小尺寸]进行修复]");
                }
                else
                {
                    valve.UpdatePropStatus(nameof(valve.Diameter), ePropStatus.Abnormal, "[直径信息]无法通过[最小尺寸]进行修复]");
                }
            }
            if (valve.Diameter < 1)
            {
                valve.UpdatePropStatus(nameof(valve.Diameter), ePropStatus.Lack, "[直径信息]解析错误,无法通过[内径][公称直径][最大尺寸][最小尺寸]修复");
            }
            #endregion
@@ -5126,22 +5287,22 @@
                valve.ValveType = valveType;
                if (string.IsNullOrEmpty(valve.ValveType))
                {
                    valve.ValveType = ValveType.TCV;
                    valve.UpdatePropStatus(nameof(valve.ValveType), ePropStatus.Lack, "[阀门类型]缺省,使用默认值(TCV)进行修正");
                    valve.ValveType = ValveType.GPV;
                    valve.UpdatePropStatus(nameof(valve.ValveType), ePropStatus.Lack, "[阀门类型]缺省,使用默认值(GPV)进行修正");
                }
                else
                {
                    if (!ValveType.Contains(valve.ValveType))
                    {
                        valve.ValveType = ValveType.TCV;
                        valve.UpdatePropStatus(nameof(valve.ValveType), ePropStatus.Abnormal, "[阀门类型]设置错误,使用默认值(TCV)进行修正");
                        valve.ValveType = ValveType.GPV;
                        valve.UpdatePropStatus(nameof(valve.ValveType), ePropStatus.Abnormal, "[阀门类型]设置错误,使用默认值(GPV)进行修正");
                    }
                }
            }
            else
            {
                valve.ValveType = ValveType.TCV;
                valve.UpdatePropStatus(nameof(valve.ValveType), ePropStatus.Abnormal, "[阀门类型]缺少或格式错误,使用默认值(TCV)进行修正");
                valve.ValveType = ValveType.GPV;
                valve.UpdatePropStatus(nameof(valve.ValveType), ePropStatus.Abnormal, "[阀门类型]缺少或格式错误,使用默认值(GPV)进行修正");
            }
            #endregion
@@ -5256,6 +5417,11 @@
            else
            {
                exchanger.UpdatePropStatus(nameof(exchanger.Flags), ePropStatus.Error, "缺少[标签信息]");
            }
            if (exchanger.Flags == null)
            {
                exchanger.Flags = new List<string>();
            }
            #endregion
@@ -5422,7 +5588,7 @@
            #region Diameter
            if (jobject[RevitJsonProp.Diameter].MatchNumeric(out double diameter))
            if (jobject[RevitJsonProp.DiameterInfo].MatchNumeric(out double diameter))
            {
                exchanger.Diameter = diameter;
            }
@@ -5574,6 +5740,11 @@
            else
            {
                compressor.UpdatePropStatus(nameof(compressor.Flags), ePropStatus.Error, "缺少[标签信息]");
            }
            if (compressor.Flags == null)
            {
                compressor.Flags = new List<string>();
            }
            #endregion
@@ -5740,7 +5911,7 @@
            #region Diameter
            if (jobject[RevitJsonProp.Diameter].MatchNumeric(out double diameter))
            if (jobject[RevitJsonProp.DiameterInfo].MatchNumeric(out double diameter))
            {
                compressor.Diameter = diameter;
            }