duheng
2025-01-17 4c32366350018806978182f05352ef75698f995f
Service/HStation.Service.Revit.Core/04-service/01-json/RevitJsonHelper.cs
@@ -21,8 +21,8 @@
                msg = "Revit json 字符串为空";
                return default;
            }
            try
            {
            //try
            //{
                var model = new Model.RevitModel();
                //解析结构json
@@ -260,12 +260,12 @@
                }
                return model;
            }
            catch (Exception ex)
            {
                msg = ex.Message;
                return default;
            }
            //}
            //catch (Exception ex)
            //{
            //    msg = ex.Message;
            //    return default;
            //}
        }
@@ -372,6 +372,10 @@
            {
                reservoir.UpdatePropStatus(nameof(reservoir.Flags), ePropStatus.Error, "缺少[标签信息]");
            }
            if (reservoir.Flags == null)
            {
                reservoir.Flags = new List<string>();
            }
            #endregion
@@ -442,6 +446,17 @@
                if (jobject[RevitJsonProp.ElevOfElevation].MatchNumeric(out double elevOfElevation))
                {
                    reservoir.PoolElev = elevOfElevation / 1000f;
                    var jre = jobject[RevitJsonProp.Elev];
                    if (jre != null)
                    {
                        if (jre.HasValues)
                        {
                            if (jre[RevitJsonProp.ElevFacade].MatchNumeric(out double facade))
                            {
                                reservoir.PoolElev += facade / 1000f;
                            }
                        }
                    }
                }
                else
                {
@@ -571,6 +586,11 @@
                tank.UpdatePropStatus(nameof(tank.Flags), ePropStatus.Error, "缺少[标签信息]");
            }
            if (tank.Flags == null)
            {
                tank.Flags = new List<string>();
            }
            #endregion
            #region Description
@@ -640,6 +660,17 @@
                if (jobject[RevitJsonProp.ElevOfElevation].MatchNumeric(out double elevOfElevation))
                {
                    tank.PoolElev = elevOfElevation / 1000f;
                    var jre = jobject[RevitJsonProp.Elev];
                    if (jre != null)
                    {
                        if (jre.HasValues)
                        {
                            if (jre[RevitJsonProp.ElevFacade].MatchNumeric(out double facade))
                            {
                                tank.PoolElev += facade / 1000f;
                            }
                        }
                    }
                }
                else
                {
@@ -844,6 +875,11 @@
                waterbox.UpdatePropStatus(nameof(waterbox.Flags), ePropStatus.Error, "缺少[标签信息]");
            }
            if (waterbox.Flags == null)
            {
                waterbox.Flags = new List<string>();
            }
            #endregion
            #region Description
@@ -913,6 +949,17 @@
                if (jobject[RevitJsonProp.ElevOfElevation].MatchNumeric(out double elevOfElevation))
                {
                    waterbox.PoolElev = elevOfElevation / 1000f;
                    var jre = jobject[RevitJsonProp.Elev];
                    if (jre != null)
                    {
                        if (jre.HasValues)
                        {
                            if (jre[RevitJsonProp.ElevFacade].MatchNumeric(out double facade))
                            {
                                waterbox.PoolElev += facade / 1000f;
                            }
                        }
                    }
                }
                else
                {
@@ -1117,6 +1164,11 @@
                junction.UpdatePropStatus(nameof(junction.Flags), ePropStatus.Error, "缺少[标签信息]");
            }
            if (junction.Flags == null)
            {
                junction.Flags = new List<string>();
            }
            #endregion
            #region Description
@@ -1172,7 +1224,7 @@
            #region Elev
            if (jobject[RevitJsonProp.Elev].MatchNumeric(out double elev))
            if (jobject[RevitJsonProp.ElevInfo].MatchNumeric(out double elev))
            {
                junction.Elev = elev;
            }
@@ -1186,11 +1238,23 @@
                if (jobject[RevitJsonProp.ElevOfElevation].MatchNumeric(out double elevOfElevation))
                {
                    junction.Elev = elevOfElevation / 1000f;
                    var jre = jobject[RevitJsonProp.Elev];
                    if (jre != null)
                    {
                        if (jre.HasValues)
                        {
                            if (jre[RevitJsonProp.ElevFacade].MatchNumeric(out double facade))
                            {
                                junction.Elev += facade / 1000f;
                            }
                        }
                    }
                }
                else
                {
                    junction.UpdatePropStatus(nameof(junction.Elev), ePropStatus.Abnormal, "[标高中的高程]缺少或者格式错误");
                }
            }
            if (junction.Elev <= 0)
@@ -1328,6 +1392,11 @@
                blunthead.UpdatePropStatus(nameof(blunthead.Flags), ePropStatus.Error, "缺少[标签信息]");
            }
            if (blunthead.Flags == null)
            {
                blunthead.Flags = new List<string>();
            }
            #endregion
            #region Description
@@ -1383,7 +1452,7 @@
            #region Elev
            if (jobject[RevitJsonProp.Elev].MatchNumeric(out double elev))
            if (jobject[RevitJsonProp.ElevInfo].MatchNumeric(out double elev))
            {
                blunthead.Elev = elev;
            }
@@ -1397,6 +1466,17 @@
                if (jobject[RevitJsonProp.ElevOfElevation].MatchNumeric(out double elevOfElevation))
                {
                    blunthead.Elev = elevOfElevation / 1000f;
                    var jre = jobject[RevitJsonProp.Elev];
                    if (jre != null)
                    {
                        if (jre.HasValues)
                        {
                            if (jre[RevitJsonProp.ElevFacade].MatchNumeric(out double facade))
                            {
                                blunthead.Elev += facade / 1000f;
                            }
                        }
                    }
                }
                else
                {
@@ -1443,7 +1523,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 +1657,11 @@
                elbow.UpdatePropStatus(nameof(elbow.Flags), ePropStatus.Error, "缺少[标签信息]");
            }
            if (elbow.Flags == null)
            {
                elbow.Flags = new List<string>();
            }
            #endregion
            #region Description
@@ -1625,7 +1717,7 @@
            #region Elev
            if (jobject[RevitJsonProp.Elev].MatchNumeric(out double elev))
            if (jobject[RevitJsonProp.ElevInfo].MatchNumeric(out double elev))
            {
                elbow.Elev = elev;
            }
@@ -1639,6 +1731,17 @@
                if (jobject[RevitJsonProp.ElevOfElevation].MatchNumeric(out double elevOfElevation))
                {
                    elbow.Elev = elevOfElevation / 1000f;
                    var jre = jobject[RevitJsonProp.Elev];
                    if (jre != null)
                    {
                        if (jre.HasValues)
                        {
                            if (jre[RevitJsonProp.ElevFacade].MatchNumeric(out double facade))
                            {
                                elbow.Elev += facade / 1000f;
                            }
                        }
                    }
                }
                else
                {
@@ -1685,7 +1788,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 +1849,7 @@
            if (jobject[RevitJsonProp.BendingAngle].MatchNumeric(out double bendingAngle))
            {
                elbow.BendingAngle = bendingAngle;
                elbow.BendingAngle = (int)bendingAngle;
            }
            else
            {
@@ -1841,6 +1951,11 @@
                threelink.UpdatePropStatus(nameof(threelink.Flags), ePropStatus.Error, "缺少[标签信息]");
            }
            if (threelink.Flags == null)
            {
                threelink.Flags = new List<string>();
            }
            #endregion
            #region Description
@@ -1896,7 +2011,7 @@
            #region Elev
            if (jobject[RevitJsonProp.Elev].MatchNumeric(out double elev))
            if (jobject[RevitJsonProp.ElevInfo].MatchNumeric(out double elev))
            {
                threelink.Elev = elev;
            }
@@ -1910,6 +2025,17 @@
                if (jobject[RevitJsonProp.ElevOfElevation].MatchNumeric(out double elevOfElevation))
                {
                    threelink.Elev = elevOfElevation / 1000f;
                    var jre = jobject[RevitJsonProp.Elev];
                    if (jre != null)
                    {
                        if (jre.HasValues)
                        {
                            if (jre[RevitJsonProp.ElevFacade].MatchNumeric(out double facade))
                            {
                                threelink.Elev += facade / 1000f;
                            }
                        }
                    }
                }
                else
                {
@@ -1956,7 +2082,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 +2241,11 @@
                fourlink.UpdatePropStatus(nameof(fourlink.Flags), ePropStatus.Error, "缺少[标签信息]");
            }
            if (fourlink.Flags == null)
            {
                fourlink.Flags = new List<string>();
            }
            #endregion
            #region Description
@@ -2163,7 +2301,7 @@
            #region Elev
            if (jobject[RevitJsonProp.Elev].MatchNumeric(out double elev))
            if (jobject[RevitJsonProp.ElevInfo].MatchNumeric(out double elev))
            {
                fourlink.Elev = elev;
            }
@@ -2177,6 +2315,17 @@
                if (jobject[RevitJsonProp.ElevOfElevation].MatchNumeric(out double elevOfElevation))
                {
                    fourlink.Elev = elevOfElevation / 1000f;
                    var jre = jobject[RevitJsonProp.Elev];
                    if (jre != null)
                    {
                        if (jre.HasValues)
                        {
                            if (jre[RevitJsonProp.ElevFacade].MatchNumeric(out double facade))
                            {
                                fourlink.Elev += facade / 1000f;
                            }
                        }
                    }
                }
                else
                {
@@ -2223,7 +2372,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, "[口径信息]缺少或者数据格式错误");
            }
@@ -2349,6 +2505,11 @@
                nozzle.UpdatePropStatus(nameof(nozzle.Flags), ePropStatus.Error, "缺少[标签信息]");
            }
            if (nozzle.Flags == null)
            {
                nozzle.Flags = new List<string>();
            }
            #endregion
            #region Description
@@ -2404,7 +2565,7 @@
            #region Elev
            if (jobject[RevitJsonProp.Elev].MatchNumeric(out double elev))
            if (jobject[RevitJsonProp.ElevInfo].MatchNumeric(out double elev))
            {
                nozzle.Elev = elev;
            }
@@ -2418,6 +2579,17 @@
                if (jobject[RevitJsonProp.ElevOfElevation].MatchNumeric(out double elevOfElevation))
                {
                    nozzle.Elev = elevOfElevation / 1000f;
                    var jre = jobject[RevitJsonProp.Elev];
                    if (jre != null)
                    {
                        if (jre.HasValues)
                        {
                            if (jre[RevitJsonProp.ElevFacade].MatchNumeric(out double facade))
                            {
                                nozzle.Elev += facade / 1000f;
                            }
                        }
                    }
                }
                else
                {
@@ -2620,6 +2792,11 @@
                hydrant.UpdatePropStatus(nameof(hydrant.Flags), ePropStatus.Error, "缺少[标签信息]");
            }
            if (hydrant.Flags == null)
            {
                hydrant.Flags = new List<string>();
            }
            #endregion
            #region Description
@@ -2675,7 +2852,7 @@
            #region Elev
            if (jobject[RevitJsonProp.Elev].MatchNumeric(out double elev))
            if (jobject[RevitJsonProp.ElevInfo].MatchNumeric(out double elev))
            {
                hydrant.Elev = elev;
            }
@@ -2689,6 +2866,17 @@
                if (jobject[RevitJsonProp.ElevOfElevation].MatchNumeric(out double elevOfElevation))
                {
                    hydrant.Elev = elevOfElevation / 1000f;
                    var jre = jobject[RevitJsonProp.Elev];
                    if (jre != null)
                    {
                        if (jre.HasValues)
                        {
                            if (jre[RevitJsonProp.ElevFacade].MatchNumeric(out double facade))
                            {
                                hydrant.Elev += facade / 1000f;
                            }
                        }
                    }
                }
                else
                {
@@ -2886,6 +3074,11 @@
                cooling.UpdatePropStatus(nameof(cooling.Flags), ePropStatus.Error, "缺少[标签信息]");
            }
            if (cooling.Flags == null)
            {
                cooling.Flags = new List<string>();
            }
            #endregion
            #region Description
@@ -2941,7 +3134,7 @@
            #region Elev
            if (jobject[RevitJsonProp.Elev].MatchNumeric(out double elev))
            if (jobject[RevitJsonProp.ElevInfo].MatchNumeric(out double elev))
            {
                cooling.Elev = elev;
            }
@@ -2955,6 +3148,17 @@
                if (jobject[RevitJsonProp.ElevOfElevation].MatchNumeric(out double elevOfElevation))
                {
                    cooling.Elev = elevOfElevation / 1000f;
                    var jre = jobject[RevitJsonProp.Elev];
                    if (jre != null)
                    {
                        if (jre.HasValues)
                        {
                            if (jre[RevitJsonProp.ElevFacade].MatchNumeric(out double facade))
                            {
                                cooling.Elev += facade / 1000f;
                            }
                        }
                    }
                }
                else
                {
@@ -3169,6 +3373,11 @@
                meter.UpdatePropStatus(nameof(meter.Flags), ePropStatus.Error, "缺少[标签信息]");
            }
            if (meter.Flags == null)
            {
                meter.Flags = new List<string>();
            }
            #endregion
            #region Description
@@ -3224,7 +3433,7 @@
            #region Elev
            if (jobject[RevitJsonProp.Elev].MatchNumeric(out double elev))
            if (jobject[RevitJsonProp.ElevInfo].MatchNumeric(out double elev))
            {
                meter.Elev = elev;
            }
@@ -3238,6 +3447,17 @@
                if (jobject[RevitJsonProp.ElevOfElevation].MatchNumeric(out double elevOfElevation))
                {
                    meter.Elev = elevOfElevation / 1000f;
                    var jre = jobject[RevitJsonProp.Elev];
                    if (jre != null)
                    {
                        if (jre.HasValues)
                        {
                            if (jre[RevitJsonProp.ElevFacade].MatchNumeric(out double facade))
                            {
                                meter.Elev += facade / 1000f;
                            }
                        }
                    }
                }
                else
                {
@@ -3380,6 +3600,11 @@
                flowmeter.UpdatePropStatus(nameof(flowmeter.Flags), ePropStatus.Error, "缺少[标签信息]");
            }
            if (flowmeter.Flags == null)
            {
                flowmeter.Flags = new List<string>();
            }
            #endregion
            #region Description
@@ -3435,7 +3660,7 @@
            #region Elev
            if (jobject[RevitJsonProp.Elev].MatchNumeric(out double elev))
            if (jobject[RevitJsonProp.ElevInfo].MatchNumeric(out double elev))
            {
                flowmeter.Elev = elev;
            }
@@ -3449,6 +3674,14 @@
                if (jobject[RevitJsonProp.ElevOfElevation].MatchNumeric(out double elevOfElevation))
                {
                    flowmeter.Elev = elevOfElevation / 1000f;
                    var jre = jobject[RevitJsonProp.Elev];
                    if (jre != null)
                    {
                        if (jre[RevitJsonProp.ElevFacade].MatchNumeric(out double facade))
                        {
                            flowmeter.Elev += facade / 1000f;
                        }
                    }
                }
                else
                {
@@ -3604,6 +3837,11 @@
                pressmeter.UpdatePropStatus(nameof(pressmeter.Flags), ePropStatus.Error, "缺少[标签信息]");
            }
            if (pressmeter.Flags == null)
            {
                pressmeter.Flags = new List<string>();
            }
            #endregion
            #region Description
@@ -3659,7 +3897,7 @@
            #region Elev
            if (jobject[RevitJsonProp.Elev].MatchNumeric(out double elev))
            if (jobject[RevitJsonProp.ElevInfo].MatchNumeric(out double elev))
            {
                pressmeter.Elev = elev;
            }
@@ -3673,6 +3911,17 @@
                if (jobject[RevitJsonProp.ElevOfElevation].MatchNumeric(out double elevOfElevation))
                {
                    pressmeter.Elev = elevOfElevation / 1000f;
                    var jre = jobject[RevitJsonProp.Elev];
                    if (jre != null)
                    {
                        if (jre.HasValues)
                        {
                            if (jre[RevitJsonProp.ElevFacade].MatchNumeric(out double facade))
                            {
                                pressmeter.Elev += facade / 1000f;
                            }
                        }
                    }
                }
                else
                {
@@ -3784,7 +4033,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 +4066,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 +4078,11 @@
            else
            {
                pipe.UpdatePropStatus(nameof(pipe.Flags), ePropStatus.Error, "缺少[标签信息]");
            }
            if (pipe.Flags == null)
            {
                pipe.Flags = new List<string>();
            }
            #endregion
@@ -3949,7 +4206,8 @@
            #region Diameter
            if (jobject[RevitJsonProp.Diameter].MatchNumeric(out double diameter))
            //直径信息
            if (jobject[RevitJsonProp.DiameterInfo].MatchNumeric(out double diameter))
            {
                pipe.Diameter = diameter;
            }
@@ -3958,11 +4216,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 +4244,7 @@
                }
            }
            //公称直径
            if (pipe.Diameter < 1)
            {
                if (jobject[RevitJsonProp.DN].MatchNumeric(out double dn))
@@ -3986,8 +4260,7 @@
            if (pipe.Diameter < 1)
            {
                pipe.Diameter = 500;
                pipe.UpdatePropStatus(nameof(pipe.Diameter), ePropStatus.Lack, "[直径信息][内径]解析错误,使用默认值(500mm)修正]");
                pipe.UpdatePropStatus(nameof(pipe.Diameter), ePropStatus.Error, "[直径信息]解析错误,无法通过【直径】【内径】【公称直径】修复");
            }
            #endregion
@@ -4125,6 +4398,11 @@
                translation.UpdatePropStatus(nameof(translation.Flags), ePropStatus.Error, "缺少[标签信息]");
            }
            if (translation.Flags == null)
            {
                translation.Flags = new List<string>();
            }
            #endregion
            #region Description
@@ -4229,7 +4507,7 @@
            #region Elev
            if (jobject[RevitJsonProp.Elev].MatchNumeric(out double elev))
            if (jobject[RevitJsonProp.ElevInfo].MatchNumeric(out double elev))
            {
                translation.Elev = elev;
            }
@@ -4243,6 +4521,17 @@
                if (jobject[RevitJsonProp.ElevOfElevation].MatchNumeric(out double elevOfElevation))
                {
                    translation.Elev = elevOfElevation / 1000f;
                    var jre = jobject[RevitJsonProp.Elev];
                    if (jre != null)
                    {
                        if (jre.HasValues)
                        {
                            if (jre[RevitJsonProp.ElevFacade].MatchNumeric(out double facade))
                            {
                                translation.Elev += facade / 1000f;
                            }
                        }
                    }
                }
                else
                {
@@ -4289,7 +4578,7 @@
            #region Diameter
            if (jobject[RevitJsonProp.Diameter].MatchNumeric(out double diameter))
            if (jobject[RevitJsonProp.DiameterInfo].MatchNumeric(out double diameter))
            {
                translation.Diameter = diameter;
            }
@@ -4328,6 +4617,24 @@
            {
                translation.Diameter = 500;
                translation.UpdatePropStatus(nameof(translation.Diameter), ePropStatus.Lack, "[直径信息][内径]解析错误,使用默认值(500mm)修正]");
            }
            #endregion
            #region StartDiameter
            if (jobject[RevitJsonProp.MaxSize].MatchNumeric(out double maxSize))
            {
                translation.StartDiameter = maxSize;
            }
            #endregion
            #region EndDiameter
            if (jobject[RevitJsonProp.MinSize].MatchNumeric(out double minSize))
            {
                translation.EndDiameter = minSize;
            }
            #endregion
@@ -4464,6 +4771,11 @@
                pump.UpdatePropStatus(nameof(pump.Flags), ePropStatus.Error, "缺少[标签信息]");
            }
            if (pump.Flags == null)
            {
                pump.Flags = new List<string>();
            }
            #endregion
            #region Description
@@ -4568,7 +4880,7 @@
            #region Elev
            if (jobject[RevitJsonProp.Elev].MatchNumeric(out double elev))
            if (jobject[RevitJsonProp.ElevInfo].MatchNumeric(out double elev))
            {
                pump.Elev = elev;
            }
@@ -4582,6 +4894,17 @@
                if (jobject[RevitJsonProp.ElevOfElevation].MatchNumeric(out double elevOfElevation))
                {
                    pump.Elev = elevOfElevation / 1000f;
                    var jre = jobject[RevitJsonProp.Elev];
                    if (jre != null)
                    {
                        if (jre.HasValues)
                        {
                            if (jre[RevitJsonProp.ElevFacade].MatchNumeric(out double facade))
                            {
                                pump.Elev += facade / 1000f;
                            }
                        }
                    }
                }
                else
                {
@@ -4862,6 +5185,11 @@
                valve.UpdatePropStatus(nameof(valve.Flags), ePropStatus.Error, "缺少[标签信息]");
            }
            if (valve.Flags == null)
            {
                valve.Flags = new List<string>();
            }
            #endregion
            #region Description
@@ -4939,7 +5267,7 @@
            #region Elev
            if (jobject[RevitJsonProp.Elev].MatchNumeric(out double elev))
            if (jobject[RevitJsonProp.ElevInfo].MatchNumeric(out double elev))
            {
                valve.Elev = elev;
            }
@@ -4953,6 +5281,17 @@
                if (jobject[RevitJsonProp.ElevOfElevation].MatchNumeric(out double elevOfElevation))
                {
                    valve.Elev = elevOfElevation / 1000f;
                    var jre = jobject[RevitJsonProp.Elev];
                    if (jre != null)
                    {
                        if (jre.HasValues)
                        {
                            if (jre[RevitJsonProp.ElevFacade].MatchNumeric(out double facade))
                            {
                                valve.Elev += facade / 1000f;
                            }
                        }
                    }
                }
                else
                {
@@ -5026,7 +5365,7 @@
            #region Diameter
            if (jobject[RevitJsonProp.Diameter].MatchNumeric(out double diameter))
            if (jobject[RevitJsonProp.DiameterInfo].MatchNumeric(out double diameter))
            {
                valve.Diameter = diameter;
            }
@@ -5037,9 +5376,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
@@ -5050,9 +5389,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
@@ -5063,8 +5402,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
@@ -5240,6 +5604,11 @@
                exchanger.UpdatePropStatus(nameof(exchanger.Flags), ePropStatus.Error, "缺少[标签信息]");
            }
            if (exchanger.Flags == null)
            {
                exchanger.Flags = new List<string>();
            }
            #endregion
            #region Description
@@ -5344,7 +5713,7 @@
            #region Elev
            if (jobject[RevitJsonProp.Elev].MatchNumeric(out double elev))
            if (jobject[RevitJsonProp.ElevInfo].MatchNumeric(out double elev))
            {
                exchanger.Elev = elev;
            }
@@ -5358,6 +5727,22 @@
                if (jobject[RevitJsonProp.ElevOfElevation].MatchNumeric(out double elevOfElevation))
                {
                    exchanger.Elev = elevOfElevation / 1000f;
                    var jre = jobject[RevitJsonProp.Elev];
                    if (!jre.HasValues)
                    {
                    }
                    if (jre != null)
                    {
                        if (jre.HasValues)
                        {
                            if (jre[RevitJsonProp.ElevFacade].MatchNumeric(out double facade))
                            {
                                exchanger.Elev += facade / 1000f;
                            }
                        }
                    }
                }
                else
                {
@@ -5404,7 +5789,7 @@
            #region Diameter
            if (jobject[RevitJsonProp.Diameter].MatchNumeric(out double diameter))
            if (jobject[RevitJsonProp.DiameterInfo].MatchNumeric(out double diameter))
            {
                exchanger.Diameter = diameter;
            }
@@ -5558,6 +5943,11 @@
                compressor.UpdatePropStatus(nameof(compressor.Flags), ePropStatus.Error, "缺少[标签信息]");
            }
            if (compressor.Flags == null)
            {
                compressor.Flags = new List<string>();
            }
            #endregion
            #region Description
@@ -5662,7 +6052,7 @@
            #region Elev
            if (jobject[RevitJsonProp.Elev].MatchNumeric(out double elev))
            if (jobject[RevitJsonProp.ElevInfo].MatchNumeric(out double elev))
            {
                compressor.Elev = elev;
            }
@@ -5676,6 +6066,17 @@
                if (jobject[RevitJsonProp.ElevOfElevation].MatchNumeric(out double elevOfElevation))
                {
                    compressor.Elev = elevOfElevation / 1000f;
                    var jre = jobject[RevitJsonProp.Elev];
                    if (jre != null)
                    {
                        if (jre.HasValues)
                        {
                            if (jre[RevitJsonProp.ElevFacade].MatchNumeric(out double facade))
                            {
                                compressor.Elev += facade / 1000f;
                            }
                        }
                    }
                }
                else
                {
@@ -5722,7 +6123,7 @@
            #region Diameter
            if (jobject[RevitJsonProp.Diameter].MatchNumeric(out double diameter))
            if (jobject[RevitJsonProp.DiameterInfo].MatchNumeric(out double diameter))
            {
                compressor.Diameter = diameter;
            }