duheng
2025-03-12 cec8d92bdca1da0b2eafe6eb3130f4bf6f03028b
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;
            //}
        }
@@ -446,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
                {
@@ -649,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
                {
@@ -927,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
                {
@@ -1191,7 +1224,7 @@
            #region Elev
            if (jobject[RevitJsonProp.Elev].MatchNumeric(out double elev))
            if (jobject[RevitJsonProp.ElevInfo].MatchNumeric(out double elev))
            {
                junction.Elev = elev;
            }
@@ -1205,12 +1238,15 @@
                if (jobject[RevitJsonProp.ElevOfElevation].MatchNumeric(out double elevOfElevation))
                {
                    junction.Elev = elevOfElevation / 1000f;
                    var jre = jobject[RevitJsonProp.ElevOfReference];
                    var jre = jobject[RevitJsonProp.Elev];
                    if (jre != null)
                    {
                        if (jre[RevitJsonProp.ElevFacade].MatchNumeric(out double facade))
                        if (jre.HasValues)
                        {
                            junction.Elev += facade / 1000f;
                            if (jre[RevitJsonProp.ElevFacade].MatchNumeric(out double facade))
                            {
                                junction.Elev += facade / 1000f;
                            }
                        }
                    }
                }
@@ -1416,7 +1452,7 @@
            #region Elev
            if (jobject[RevitJsonProp.Elev].MatchNumeric(out double elev))
            if (jobject[RevitJsonProp.ElevInfo].MatchNumeric(out double elev))
            {
                blunthead.Elev = elev;
            }
@@ -1430,12 +1466,15 @@
                if (jobject[RevitJsonProp.ElevOfElevation].MatchNumeric(out double elevOfElevation))
                {
                    blunthead.Elev = elevOfElevation / 1000f;
                    var jre = jobject[RevitJsonProp.ElevOfReference];
                    var jre = jobject[RevitJsonProp.Elev];
                    if (jre != null)
                    {
                        if (jre[RevitJsonProp.ElevFacade].MatchNumeric(out double facade))
                        if (jre.HasValues)
                        {
                            blunthead.Elev += facade / 1000f;
                            if (jre[RevitJsonProp.ElevFacade].MatchNumeric(out double facade))
                            {
                                blunthead.Elev += facade / 1000f;
                            }
                        }
                    }
                }
@@ -1678,7 +1717,7 @@
            #region Elev
            if (jobject[RevitJsonProp.Elev].MatchNumeric(out double elev))
            if (jobject[RevitJsonProp.ElevInfo].MatchNumeric(out double elev))
            {
                elbow.Elev = elev;
            }
@@ -1692,12 +1731,15 @@
                if (jobject[RevitJsonProp.ElevOfElevation].MatchNumeric(out double elevOfElevation))
                {
                    elbow.Elev = elevOfElevation / 1000f;
                    var jre = jobject[RevitJsonProp.ElevOfReference];
                    var jre = jobject[RevitJsonProp.Elev];
                    if (jre != null)
                    {
                        if (jre[RevitJsonProp.ElevFacade].MatchNumeric(out double facade))
                        if (jre.HasValues)
                        {
                            elbow.Elev += facade / 1000f;
                            if (jre[RevitJsonProp.ElevFacade].MatchNumeric(out double facade))
                            {
                                elbow.Elev += facade / 1000f;
                            }
                        }
                    }
                }
@@ -1969,7 +2011,7 @@
            #region Elev
            if (jobject[RevitJsonProp.Elev].MatchNumeric(out double elev))
            if (jobject[RevitJsonProp.ElevInfo].MatchNumeric(out double elev))
            {
                threelink.Elev = elev;
            }
@@ -1983,12 +2025,15 @@
                if (jobject[RevitJsonProp.ElevOfElevation].MatchNumeric(out double elevOfElevation))
                {
                    threelink.Elev = elevOfElevation / 1000f;
                    var jre = jobject[RevitJsonProp.ElevOfReference];
                    var jre = jobject[RevitJsonProp.Elev];
                    if (jre != null)
                    {
                        if (jre[RevitJsonProp.ElevFacade].MatchNumeric(out double facade))
                        if (jre.HasValues)
                        {
                            threelink.Elev += facade / 1000f;
                            if (jre[RevitJsonProp.ElevFacade].MatchNumeric(out double facade))
                            {
                                threelink.Elev += facade / 1000f;
                            }
                        }
                    }
                }
@@ -2256,7 +2301,7 @@
            #region Elev
            if (jobject[RevitJsonProp.Elev].MatchNumeric(out double elev))
            if (jobject[RevitJsonProp.ElevInfo].MatchNumeric(out double elev))
            {
                fourlink.Elev = elev;
            }
@@ -2270,12 +2315,15 @@
                if (jobject[RevitJsonProp.ElevOfElevation].MatchNumeric(out double elevOfElevation))
                {
                    fourlink.Elev = elevOfElevation / 1000f;
                    var jre = jobject[RevitJsonProp.ElevOfReference];
                    var jre = jobject[RevitJsonProp.Elev];
                    if (jre != null)
                    {
                        if (jre[RevitJsonProp.ElevFacade].MatchNumeric(out double facade))
                        if (jre.HasValues)
                        {
                            fourlink.Elev += facade / 1000f;
                            if (jre[RevitJsonProp.ElevFacade].MatchNumeric(out double facade))
                            {
                                fourlink.Elev += facade / 1000f;
                            }
                        }
                    }
                }
@@ -2517,7 +2565,7 @@
            #region Elev
            if (jobject[RevitJsonProp.Elev].MatchNumeric(out double elev))
            if (jobject[RevitJsonProp.ElevInfo].MatchNumeric(out double elev))
            {
                nozzle.Elev = elev;
            }
@@ -2531,12 +2579,15 @@
                if (jobject[RevitJsonProp.ElevOfElevation].MatchNumeric(out double elevOfElevation))
                {
                    nozzle.Elev = elevOfElevation / 1000f;
                    var jre = jobject[RevitJsonProp.ElevOfReference];
                    var jre = jobject[RevitJsonProp.Elev];
                    if (jre != null)
                    {
                        if (jre[RevitJsonProp.ElevFacade].MatchNumeric(out double facade))
                        if (jre.HasValues)
                        {
                            nozzle.Elev += facade / 1000f;
                            if (jre[RevitJsonProp.ElevFacade].MatchNumeric(out double facade))
                            {
                                nozzle.Elev += facade / 1000f;
                            }
                        }
                    }
                }
@@ -2801,7 +2852,7 @@
            #region Elev
            if (jobject[RevitJsonProp.Elev].MatchNumeric(out double elev))
            if (jobject[RevitJsonProp.ElevInfo].MatchNumeric(out double elev))
            {
                hydrant.Elev = elev;
            }
@@ -2815,12 +2866,15 @@
                if (jobject[RevitJsonProp.ElevOfElevation].MatchNumeric(out double elevOfElevation))
                {
                    hydrant.Elev = elevOfElevation / 1000f;
                    var jre = jobject[RevitJsonProp.ElevOfReference];
                    var jre = jobject[RevitJsonProp.Elev];
                    if (jre != null)
                    {
                        if (jre[RevitJsonProp.ElevFacade].MatchNumeric(out double facade))
                        if (jre.HasValues)
                        {
                            hydrant.Elev += facade / 1000f;
                            if (jre[RevitJsonProp.ElevFacade].MatchNumeric(out double facade))
                            {
                                hydrant.Elev += facade / 1000f;
                            }
                        }
                    }
                }
@@ -3080,7 +3134,7 @@
            #region Elev
            if (jobject[RevitJsonProp.Elev].MatchNumeric(out double elev))
            if (jobject[RevitJsonProp.ElevInfo].MatchNumeric(out double elev))
            {
                cooling.Elev = elev;
            }
@@ -3094,12 +3148,15 @@
                if (jobject[RevitJsonProp.ElevOfElevation].MatchNumeric(out double elevOfElevation))
                {
                    cooling.Elev = elevOfElevation / 1000f;
                    var jre = jobject[RevitJsonProp.ElevOfReference];
                    var jre = jobject[RevitJsonProp.Elev];
                    if (jre != null)
                    {
                        if (jre[RevitJsonProp.ElevFacade].MatchNumeric(out double facade))
                        if (jre.HasValues)
                        {
                            cooling.Elev += facade / 1000f;
                            if (jre[RevitJsonProp.ElevFacade].MatchNumeric(out double facade))
                            {
                                cooling.Elev += facade / 1000f;
                            }
                        }
                    }
                }
@@ -3376,7 +3433,7 @@
            #region Elev
            if (jobject[RevitJsonProp.Elev].MatchNumeric(out double elev))
            if (jobject[RevitJsonProp.ElevInfo].MatchNumeric(out double elev))
            {
                meter.Elev = elev;
            }
@@ -3390,12 +3447,15 @@
                if (jobject[RevitJsonProp.ElevOfElevation].MatchNumeric(out double elevOfElevation))
                {
                    meter.Elev = elevOfElevation / 1000f;
                    var jre = jobject[RevitJsonProp.ElevOfReference];
                    var jre = jobject[RevitJsonProp.Elev];
                    if (jre != null)
                    {
                        if (jre[RevitJsonProp.ElevFacade].MatchNumeric(out double facade))
                        if (jre.HasValues)
                        {
                            meter.Elev += facade / 1000f;
                            if (jre[RevitJsonProp.ElevFacade].MatchNumeric(out double facade))
                            {
                                meter.Elev += facade / 1000f;
                            }
                        }
                    }
                }
@@ -3600,7 +3660,7 @@
            #region Elev
            if (jobject[RevitJsonProp.Elev].MatchNumeric(out double elev))
            if (jobject[RevitJsonProp.ElevInfo].MatchNumeric(out double elev))
            {
                flowmeter.Elev = elev;
            }
@@ -3614,7 +3674,7 @@
                if (jobject[RevitJsonProp.ElevOfElevation].MatchNumeric(out double elevOfElevation))
                {
                    flowmeter.Elev = elevOfElevation / 1000f;
                    var jre = jobject[RevitJsonProp.ElevOfReference];
                    var jre = jobject[RevitJsonProp.Elev];
                    if (jre != null)
                    {
                        if (jre[RevitJsonProp.ElevFacade].MatchNumeric(out double facade))
@@ -3684,19 +3744,6 @@
            else
            {
                flowmeter.UpdatePropStatus(nameof(flowmeter.MinorLoss), ePropStatus.Abnormal, "[局阻系数]缺少或者数据格式错误");
            }
            #endregion
            #region CurrentFlow
            if (jobject[RevitJsonProp.CurrentFlow].MatchNumeric(out double currentFlow))
            {
                flowmeter.CurrentFlow = currentFlow;
            }
            else
            {
                flowmeter.UpdatePropStatus(nameof(flowmeter.CurrentFlow), ePropStatus.Abnormal, "[流量信息]缺少或者数据格式错误");
            }
            #endregion
@@ -3837,7 +3884,7 @@
            #region Elev
            if (jobject[RevitJsonProp.Elev].MatchNumeric(out double elev))
            if (jobject[RevitJsonProp.ElevInfo].MatchNumeric(out double elev))
            {
                pressmeter.Elev = elev;
            }
@@ -3851,12 +3898,15 @@
                if (jobject[RevitJsonProp.ElevOfElevation].MatchNumeric(out double elevOfElevation))
                {
                    pressmeter.Elev = elevOfElevation / 1000f;
                    var jre = jobject[RevitJsonProp.ElevOfReference];
                    var jre = jobject[RevitJsonProp.Elev];
                    if (jre != null)
                    {
                        if (jre[RevitJsonProp.ElevFacade].MatchNumeric(out double facade))
                        if (jre.HasValues)
                        {
                            pressmeter.Elev += facade / 1000f;
                            if (jre[RevitJsonProp.ElevFacade].MatchNumeric(out double facade))
                            {
                                pressmeter.Elev += facade / 1000f;
                            }
                        }
                    }
                }
@@ -3921,19 +3971,6 @@
            else
            {
                pressmeter.UpdatePropStatus(nameof(pressmeter.MinorLoss), ePropStatus.Abnormal, "[局阻系数]缺少或者数据格式错误");
            }
            #endregion
            #region CurrentPress
            if (jobject[RevitJsonProp.CurrentPress].MatchNumeric(out double currentPress))
            {
                pressmeter.CurrentPress = currentPress;
            }
            else
            {
                pressmeter.UpdatePropStatus(nameof(pressmeter.CurrentPress), ePropStatus.Abnormal, "[压力信息]缺少或者数据格式错误");
            }
            #endregion
@@ -4003,7 +4040,7 @@
            if (jobject.ParseString(RevitJsonProp.Flags, out string flags))
            {
                pipe.Flags = RevitFlagsHelper.ToList(flags);
                pipe.Flags = FlagsHelper.ToList(flags);
                if (!string.IsNullOrEmpty(flags))
                {
                    if (pipe.Flags == null || pipe.Flags.Count < 1)
@@ -4444,7 +4481,7 @@
            #region Elev
            if (jobject[RevitJsonProp.Elev].MatchNumeric(out double elev))
            if (jobject[RevitJsonProp.ElevInfo].MatchNumeric(out double elev))
            {
                translation.Elev = elev;
            }
@@ -4458,12 +4495,15 @@
                if (jobject[RevitJsonProp.ElevOfElevation].MatchNumeric(out double elevOfElevation))
                {
                    translation.Elev = elevOfElevation / 1000f;
                    var jre = jobject[RevitJsonProp.ElevOfReference];
                    var jre = jobject[RevitJsonProp.Elev];
                    if (jre != null)
                    {
                        if (jre[RevitJsonProp.ElevFacade].MatchNumeric(out double facade))
                        if (jre.HasValues)
                        {
                            translation.Elev += facade / 1000f;
                            if (jre[RevitJsonProp.ElevFacade].MatchNumeric(out double facade))
                            {
                                translation.Elev += facade / 1000f;
                            }
                        }
                    }
                }
@@ -4506,51 +4546,6 @@
            else
            {
                translation.UpdatePropStatus(nameof(translation.Material), ePropStatus.Abnormal, "缺少[材质信息]");
            }
            #endregion
            #region Diameter
            if (jobject[RevitJsonProp.DiameterInfo].MatchNumeric(out double diameter))
            {
                translation.Diameter = diameter;
            }
            else
            {
                translation.UpdatePropStatus(nameof(translation.Diameter), ePropStatus.Abnormal, "[直径信息]缺少或者格式错误");
            }
            if (translation.Diameter < 1)
            {
                if (jobject[RevitJsonProp.InternalDiameter].MatchNumeric(out double internalDiameter))
                {
                    translation.Diameter = internalDiameter;
                    translation.UpdatePropStatus(nameof(translation.Diameter), ePropStatus.Lack, "[直径信息]通过[内径]进行修复]");
                }
                else
                {
                    translation.UpdatePropStatus(nameof(translation.Diameter), ePropStatus.Abnormal, "[直径信息]无法通过[内径]进行修复]");
                }
            }
            if (translation.Diameter < 1)
            {
                if (jobject[RevitJsonProp.DN].MatchNumeric(out double dn))
                {
                    translation.Diameter = dn;
                    translation.UpdatePropStatus(nameof(translation.Diameter), ePropStatus.Lack, "[直径信息]通过[公称直径]进行修复]");
                }
                else
                {
                    translation.UpdatePropStatus(nameof(translation.Diameter), ePropStatus.Abnormal, "[直径信息]无法通过[公称直径]进行修复]");
                }
            }
            if (translation.Diameter < 1)
            {
                translation.Diameter = 500;
                translation.UpdatePropStatus(nameof(translation.Diameter), ePropStatus.Lack, "[直径信息][内径]解析错误,使用默认值(500mm)修正]");
            }
            #endregion
@@ -4814,7 +4809,7 @@
            #region Elev
            if (jobject[RevitJsonProp.Elev].MatchNumeric(out double elev))
            if (jobject[RevitJsonProp.ElevInfo].MatchNumeric(out double elev))
            {
                pump.Elev = elev;
            }
@@ -4828,12 +4823,15 @@
                if (jobject[RevitJsonProp.ElevOfElevation].MatchNumeric(out double elevOfElevation))
                {
                    pump.Elev = elevOfElevation / 1000f;
                    var jre = jobject[RevitJsonProp.ElevOfReference];
                    var jre = jobject[RevitJsonProp.Elev];
                    if (jre != null)
                    {
                        if (jre[RevitJsonProp.ElevFacade].MatchNumeric(out double facade))
                        if (jre.HasValues)
                        {
                            pump.Elev += facade / 1000f;
                            if (jre[RevitJsonProp.ElevFacade].MatchNumeric(out double facade))
                            {
                                pump.Elev += facade / 1000f;
                            }
                        }
                    }
                }
@@ -5198,7 +5196,7 @@
            #region Elev
            if (jobject[RevitJsonProp.Elev].MatchNumeric(out double elev))
            if (jobject[RevitJsonProp.ElevInfo].MatchNumeric(out double elev))
            {
                valve.Elev = elev;
            }
@@ -5212,12 +5210,15 @@
                if (jobject[RevitJsonProp.ElevOfElevation].MatchNumeric(out double elevOfElevation))
                {
                    valve.Elev = elevOfElevation / 1000f;
                    var jre = jobject[RevitJsonProp.ElevOfReference];
                    var jre = jobject[RevitJsonProp.Elev];
                    if (jre != null)
                    {
                        if (jre[RevitJsonProp.ElevFacade].MatchNumeric(out double facade))
                        if (jre.HasValues)
                        {
                            valve.Elev += facade / 1000f;
                            if (jre[RevitJsonProp.ElevFacade].MatchNumeric(out double facade))
                            {
                                valve.Elev += facade / 1000f;
                            }
                        }
                    }
                }
@@ -5641,7 +5642,7 @@
            #region Elev
            if (jobject[RevitJsonProp.Elev].MatchNumeric(out double elev))
            if (jobject[RevitJsonProp.ElevInfo].MatchNumeric(out double elev))
            {
                exchanger.Elev = elev;
            }
@@ -5655,12 +5656,20 @@
                if (jobject[RevitJsonProp.ElevOfElevation].MatchNumeric(out double elevOfElevation))
                {
                    exchanger.Elev = elevOfElevation / 1000f;
                    var jre = jobject[RevitJsonProp.ElevOfReference];
                    var jre = jobject[RevitJsonProp.Elev];
                    if (!jre.HasValues)
                    {
                    }
                    if (jre != null)
                    {
                        if (jre[RevitJsonProp.ElevFacade].MatchNumeric(out double facade))
                        if (jre.HasValues)
                        {
                            exchanger.Elev += facade / 1000f;
                            if (jre[RevitJsonProp.ElevFacade].MatchNumeric(out double facade))
                            {
                                exchanger.Elev += facade / 1000f;
                            }
                        }
                    }
                }
@@ -5972,7 +5981,7 @@
            #region Elev
            if (jobject[RevitJsonProp.Elev].MatchNumeric(out double elev))
            if (jobject[RevitJsonProp.ElevInfo].MatchNumeric(out double elev))
            {
                compressor.Elev = elev;
            }
@@ -5986,12 +5995,15 @@
                if (jobject[RevitJsonProp.ElevOfElevation].MatchNumeric(out double elevOfElevation))
                {
                    compressor.Elev = elevOfElevation / 1000f;
                    var jre = jobject[RevitJsonProp.ElevOfReference];
                    var jre = jobject[RevitJsonProp.Elev];
                    if (jre != null)
                    {
                        if (jre[RevitJsonProp.ElevFacade].MatchNumeric(out double facade))
                        if (jre.HasValues)
                        {
                            compressor.Elev += facade / 1000f;
                            if (jre[RevitJsonProp.ElevFacade].MatchNumeric(out double facade))
                            {
                                compressor.Elev += facade / 1000f;
                            }
                        }
                    }
                }