Shuxia Ning
2025-01-16 f0cebbd2deb4dbf9e89dac4768415de62fd1fc20
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;
            //}
        }
@@ -371,6 +371,10 @@
            else
            {
                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
@@ -1172,7 +1191,7 @@
            #region Elev
            if (jobject[RevitJsonProp.Elev].MatchNumeric(out double elev))
            if (jobject[RevitJsonProp.ElevInfo].MatchNumeric(out double elev))
            {
                junction.Elev = elev;
            }
@@ -1186,11 +1205,20 @@
                if (jobject[RevitJsonProp.ElevOfElevation].MatchNumeric(out double elevOfElevation))
                {
                    junction.Elev = elevOfElevation / 1000f;
                    var jre = jobject[RevitJsonProp.Elev];
                    if (jre != null)
                    {
                        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 +1356,11 @@
                blunthead.UpdatePropStatus(nameof(blunthead.Flags), ePropStatus.Error, "缺少[标签信息]");
            }
            if (blunthead.Flags == null)
            {
                blunthead.Flags = new List<string>();
            }
            #endregion
            #region Description
@@ -1383,7 +1416,7 @@
            #region Elev
            if (jobject[RevitJsonProp.Elev].MatchNumeric(out double elev))
            if (jobject[RevitJsonProp.ElevInfo].MatchNumeric(out double elev))
            {
                blunthead.Elev = elev;
            }
@@ -1397,6 +1430,14 @@
                if (jobject[RevitJsonProp.ElevOfElevation].MatchNumeric(out double elevOfElevation))
                {
                    blunthead.Elev = elevOfElevation / 1000f;
                    var jre = jobject[RevitJsonProp.Elev];
                    if (jre != null)
                    {
                        if (jre[RevitJsonProp.ElevFacade].MatchNumeric(out double facade))
                        {
                            blunthead.Elev += facade / 1000f;
                        }
                    }
                }
                else
                {
@@ -1577,6 +1618,11 @@
                elbow.UpdatePropStatus(nameof(elbow.Flags), ePropStatus.Error, "缺少[标签信息]");
            }
            if (elbow.Flags == null)
            {
                elbow.Flags = new List<string>();
            }
            #endregion
            #region Description
@@ -1632,7 +1678,7 @@
            #region Elev
            if (jobject[RevitJsonProp.Elev].MatchNumeric(out double elev))
            if (jobject[RevitJsonProp.ElevInfo].MatchNumeric(out double elev))
            {
                elbow.Elev = elev;
            }
@@ -1646,6 +1692,14 @@
                if (jobject[RevitJsonProp.ElevOfElevation].MatchNumeric(out double elevOfElevation))
                {
                    elbow.Elev = elevOfElevation / 1000f;
                    var jre = jobject[RevitJsonProp.Elev];
                    if (jre != null)
                    {
                        if (jre[RevitJsonProp.ElevFacade].MatchNumeric(out double facade))
                        {
                            elbow.Elev += facade / 1000f;
                        }
                    }
                }
                else
                {
@@ -1855,6 +1909,11 @@
                threelink.UpdatePropStatus(nameof(threelink.Flags), ePropStatus.Error, "缺少[标签信息]");
            }
            if (threelink.Flags == null)
            {
                threelink.Flags = new List<string>();
            }
            #endregion
            #region Description
@@ -1910,7 +1969,7 @@
            #region Elev
            if (jobject[RevitJsonProp.Elev].MatchNumeric(out double elev))
            if (jobject[RevitJsonProp.ElevInfo].MatchNumeric(out double elev))
            {
                threelink.Elev = elev;
            }
@@ -1924,6 +1983,14 @@
                if (jobject[RevitJsonProp.ElevOfElevation].MatchNumeric(out double elevOfElevation))
                {
                    threelink.Elev = elevOfElevation / 1000f;
                    var jre = jobject[RevitJsonProp.Elev];
                    if (jre != null)
                    {
                        if (jre[RevitJsonProp.ElevFacade].MatchNumeric(out double facade))
                        {
                            threelink.Elev += facade / 1000f;
                        }
                    }
                }
                else
                {
@@ -2129,6 +2196,11 @@
                fourlink.UpdatePropStatus(nameof(fourlink.Flags), ePropStatus.Error, "缺少[标签信息]");
            }
            if (fourlink.Flags == null)
            {
                fourlink.Flags = new List<string>();
            }
            #endregion
            #region Description
@@ -2184,7 +2256,7 @@
            #region Elev
            if (jobject[RevitJsonProp.Elev].MatchNumeric(out double elev))
            if (jobject[RevitJsonProp.ElevInfo].MatchNumeric(out double elev))
            {
                fourlink.Elev = elev;
            }
@@ -2198,6 +2270,14 @@
                if (jobject[RevitJsonProp.ElevOfElevation].MatchNumeric(out double elevOfElevation))
                {
                    fourlink.Elev = elevOfElevation / 1000f;
                    var jre = jobject[RevitJsonProp.Elev];
                    if (jre != null)
                    {
                        if (jre[RevitJsonProp.ElevFacade].MatchNumeric(out double facade))
                        {
                            fourlink.Elev += facade / 1000f;
                        }
                    }
                }
                else
                {
@@ -2377,6 +2457,11 @@
                nozzle.UpdatePropStatus(nameof(nozzle.Flags), ePropStatus.Error, "缺少[标签信息]");
            }
            if (nozzle.Flags == null)
            {
                nozzle.Flags = new List<string>();
            }
            #endregion
            #region Description
@@ -2432,7 +2517,7 @@
            #region Elev
            if (jobject[RevitJsonProp.Elev].MatchNumeric(out double elev))
            if (jobject[RevitJsonProp.ElevInfo].MatchNumeric(out double elev))
            {
                nozzle.Elev = elev;
            }
@@ -2446,6 +2531,14 @@
                if (jobject[RevitJsonProp.ElevOfElevation].MatchNumeric(out double elevOfElevation))
                {
                    nozzle.Elev = elevOfElevation / 1000f;
                    var jre = jobject[RevitJsonProp.Elev];
                    if (jre != null)
                    {
                        if (jre[RevitJsonProp.ElevFacade].MatchNumeric(out double facade))
                        {
                            nozzle.Elev += facade / 1000f;
                        }
                    }
                }
                else
                {
@@ -2648,6 +2741,11 @@
                hydrant.UpdatePropStatus(nameof(hydrant.Flags), ePropStatus.Error, "缺少[标签信息]");
            }
            if (hydrant.Flags == null)
            {
                hydrant.Flags = new List<string>();
            }
            #endregion
            #region Description
@@ -2703,7 +2801,7 @@
            #region Elev
            if (jobject[RevitJsonProp.Elev].MatchNumeric(out double elev))
            if (jobject[RevitJsonProp.ElevInfo].MatchNumeric(out double elev))
            {
                hydrant.Elev = elev;
            }
@@ -2717,6 +2815,14 @@
                if (jobject[RevitJsonProp.ElevOfElevation].MatchNumeric(out double elevOfElevation))
                {
                    hydrant.Elev = elevOfElevation / 1000f;
                    var jre = jobject[RevitJsonProp.Elev];
                    if (jre != null)
                    {
                        if (jre[RevitJsonProp.ElevFacade].MatchNumeric(out double facade))
                        {
                            hydrant.Elev += facade / 1000f;
                        }
                    }
                }
                else
                {
@@ -2914,6 +3020,11 @@
                cooling.UpdatePropStatus(nameof(cooling.Flags), ePropStatus.Error, "缺少[标签信息]");
            }
            if (cooling.Flags == null)
            {
                cooling.Flags = new List<string>();
            }
            #endregion
            #region Description
@@ -2969,7 +3080,7 @@
            #region Elev
            if (jobject[RevitJsonProp.Elev].MatchNumeric(out double elev))
            if (jobject[RevitJsonProp.ElevInfo].MatchNumeric(out double elev))
            {
                cooling.Elev = elev;
            }
@@ -2983,6 +3094,14 @@
                if (jobject[RevitJsonProp.ElevOfElevation].MatchNumeric(out double elevOfElevation))
                {
                    cooling.Elev = elevOfElevation / 1000f;
                    var jre = jobject[RevitJsonProp.Elev];
                    if (jre != null)
                    {
                        if (jre[RevitJsonProp.ElevFacade].MatchNumeric(out double facade))
                        {
                            cooling.Elev += facade / 1000f;
                        }
                    }
                }
                else
                {
@@ -3197,6 +3316,11 @@
                meter.UpdatePropStatus(nameof(meter.Flags), ePropStatus.Error, "缺少[标签信息]");
            }
            if (meter.Flags == null)
            {
                meter.Flags = new List<string>();
            }
            #endregion
            #region Description
@@ -3252,7 +3376,7 @@
            #region Elev
            if (jobject[RevitJsonProp.Elev].MatchNumeric(out double elev))
            if (jobject[RevitJsonProp.ElevInfo].MatchNumeric(out double elev))
            {
                meter.Elev = elev;
            }
@@ -3266,6 +3390,14 @@
                if (jobject[RevitJsonProp.ElevOfElevation].MatchNumeric(out double elevOfElevation))
                {
                    meter.Elev = elevOfElevation / 1000f;
                    var jre = jobject[RevitJsonProp.Elev];
                    if (jre != null)
                    {
                        if (jre[RevitJsonProp.ElevFacade].MatchNumeric(out double facade))
                        {
                            meter.Elev += facade / 1000f;
                        }
                    }
                }
                else
                {
@@ -3408,6 +3540,11 @@
                flowmeter.UpdatePropStatus(nameof(flowmeter.Flags), ePropStatus.Error, "缺少[标签信息]");
            }
            if (flowmeter.Flags == null)
            {
                flowmeter.Flags = new List<string>();
            }
            #endregion
            #region Description
@@ -3463,7 +3600,7 @@
            #region Elev
            if (jobject[RevitJsonProp.Elev].MatchNumeric(out double elev))
            if (jobject[RevitJsonProp.ElevInfo].MatchNumeric(out double elev))
            {
                flowmeter.Elev = elev;
            }
@@ -3477,6 +3614,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
                {
@@ -3632,6 +3777,11 @@
                pressmeter.UpdatePropStatus(nameof(pressmeter.Flags), ePropStatus.Error, "缺少[标签信息]");
            }
            if (pressmeter.Flags == null)
            {
                pressmeter.Flags = new List<string>();
            }
            #endregion
            #region Description
@@ -3687,7 +3837,7 @@
            #region Elev
            if (jobject[RevitJsonProp.Elev].MatchNumeric(out double elev))
            if (jobject[RevitJsonProp.ElevInfo].MatchNumeric(out double elev))
            {
                pressmeter.Elev = elev;
            }
@@ -3701,6 +3851,14 @@
                if (jobject[RevitJsonProp.ElevOfElevation].MatchNumeric(out double elevOfElevation))
                {
                    pressmeter.Elev = elevOfElevation / 1000f;
                    var jre = jobject[RevitJsonProp.Elev];
                    if (jre != null)
                    {
                        if (jre[RevitJsonProp.ElevFacade].MatchNumeric(out double facade))
                        {
                            pressmeter.Elev += facade / 1000f;
                        }
                    }
                }
                else
                {
@@ -3857,6 +4015,11 @@
            else
            {
                pipe.UpdatePropStatus(nameof(pipe.Flags), ePropStatus.Error, "缺少[标签信息]");
            }
            if (pipe.Flags == null)
            {
                pipe.Flags = new List<string>();
            }
            #endregion
@@ -4172,6 +4335,11 @@
                translation.UpdatePropStatus(nameof(translation.Flags), ePropStatus.Error, "缺少[标签信息]");
            }
            if (translation.Flags == null)
            {
                translation.Flags = new List<string>();
            }
            #endregion
            #region Description
@@ -4276,7 +4444,7 @@
            #region Elev
            if (jobject[RevitJsonProp.Elev].MatchNumeric(out double elev))
            if (jobject[RevitJsonProp.ElevInfo].MatchNumeric(out double elev))
            {
                translation.Elev = elev;
            }
@@ -4290,6 +4458,14 @@
                if (jobject[RevitJsonProp.ElevOfElevation].MatchNumeric(out double elevOfElevation))
                {
                    translation.Elev = elevOfElevation / 1000f;
                    var jre = jobject[RevitJsonProp.Elev];
                    if (jre != null)
                    {
                        if (jre[RevitJsonProp.ElevFacade].MatchNumeric(out double facade))
                        {
                            translation.Elev += facade / 1000f;
                        }
                    }
                }
                else
                {
@@ -4529,6 +4705,11 @@
                pump.UpdatePropStatus(nameof(pump.Flags), ePropStatus.Error, "缺少[标签信息]");
            }
            if (pump.Flags == null)
            {
                pump.Flags = new List<string>();
            }
            #endregion
            #region Description
@@ -4633,7 +4814,7 @@
            #region Elev
            if (jobject[RevitJsonProp.Elev].MatchNumeric(out double elev))
            if (jobject[RevitJsonProp.ElevInfo].MatchNumeric(out double elev))
            {
                pump.Elev = elev;
            }
@@ -4647,6 +4828,14 @@
                if (jobject[RevitJsonProp.ElevOfElevation].MatchNumeric(out double elevOfElevation))
                {
                    pump.Elev = elevOfElevation / 1000f;
                    var jre = jobject[RevitJsonProp.Elev];
                    if (jre != null)
                    {
                        if (jre[RevitJsonProp.ElevFacade].MatchNumeric(out double facade))
                        {
                            pump.Elev += facade / 1000f;
                        }
                    }
                }
                else
                {
@@ -4927,6 +5116,11 @@
                valve.UpdatePropStatus(nameof(valve.Flags), ePropStatus.Error, "缺少[标签信息]");
            }
            if (valve.Flags == null)
            {
                valve.Flags = new List<string>();
            }
            #endregion
            #region Description
@@ -5004,7 +5198,7 @@
            #region Elev
            if (jobject[RevitJsonProp.Elev].MatchNumeric(out double elev))
            if (jobject[RevitJsonProp.ElevInfo].MatchNumeric(out double elev))
            {
                valve.Elev = elev;
            }
@@ -5018,6 +5212,14 @@
                if (jobject[RevitJsonProp.ElevOfElevation].MatchNumeric(out double elevOfElevation))
                {
                    valve.Elev = elevOfElevation / 1000f;
                    var jre = jobject[RevitJsonProp.Elev];
                    if (jre != null)
                    {
                        if (jre[RevitJsonProp.ElevFacade].MatchNumeric(out double facade))
                        {
                            valve.Elev += facade / 1000f;
                        }
                    }
                }
                else
                {
@@ -5330,6 +5532,11 @@
                exchanger.UpdatePropStatus(nameof(exchanger.Flags), ePropStatus.Error, "缺少[标签信息]");
            }
            if (exchanger.Flags == null)
            {
                exchanger.Flags = new List<string>();
            }
            #endregion
            #region Description
@@ -5434,7 +5641,7 @@
            #region Elev
            if (jobject[RevitJsonProp.Elev].MatchNumeric(out double elev))
            if (jobject[RevitJsonProp.ElevInfo].MatchNumeric(out double elev))
            {
                exchanger.Elev = elev;
            }
@@ -5448,6 +5655,19 @@
                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[RevitJsonProp.ElevFacade].MatchNumeric(out double facade))
                        {
                            exchanger.Elev += facade / 1000f;
                        }
                    }
                }
                else
                {
@@ -5648,6 +5868,11 @@
                compressor.UpdatePropStatus(nameof(compressor.Flags), ePropStatus.Error, "缺少[标签信息]");
            }
            if (compressor.Flags == null)
            {
                compressor.Flags = new List<string>();
            }
            #endregion
            #region Description
@@ -5752,7 +5977,7 @@
            #region Elev
            if (jobject[RevitJsonProp.Elev].MatchNumeric(out double elev))
            if (jobject[RevitJsonProp.ElevInfo].MatchNumeric(out double elev))
            {
                compressor.Elev = elev;
            }
@@ -5766,6 +5991,14 @@
                if (jobject[RevitJsonProp.ElevOfElevation].MatchNumeric(out double elevOfElevation))
                {
                    compressor.Elev = elevOfElevation / 1000f;
                    var jre = jobject[RevitJsonProp.Elev];
                    if (jre != null)
                    {
                        if (jre[RevitJsonProp.ElevFacade].MatchNumeric(out double facade))
                        {
                            compressor.Elev += facade / 1000f;
                        }
                    }
                }
                else
                {