lixiaojun
2025-03-02 4ce9d8c856dc2f0e580e92b74f399c80f27f080a
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
                {
@@ -1005,7 +1038,7 @@
            }
            #endregion
            a
            #region MinVol
            if (jobject[RevitJsonProp.MinVol].MatchNumeric(out double minVol))
@@ -1208,9 +1241,12 @@
                    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;
                            }
                        }
                    }
                }
@@ -1433,9 +1469,12 @@
                    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;
                            }
                        }
                    }
                }
@@ -1695,9 +1734,12 @@
                    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;
                            }
                        }
                    }
                }
@@ -1986,9 +2028,12 @@
                    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;
                            }
                        }
                    }
                }
@@ -2273,9 +2318,12 @@
                    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;
                            }
                        }
                    }
                }
@@ -2534,9 +2582,12 @@
                    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;
                            }
                        }
                    }
                }
@@ -2818,9 +2869,12 @@
                    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;
                            }
                        }
                    }
                }
@@ -3097,9 +3151,12 @@
                    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;
                            }
                        }
                    }
                }
@@ -3393,9 +3450,12 @@
                    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;
                            }
                        }
                    }
                }
@@ -3688,19 +3748,6 @@
            #endregion
            #region CurrentFlow
            if (jobject[RevitJsonProp.CurrentFlow].MatchNumeric(out double currentFlow))
            {
                flowmeter.CurrentFlow = currentFlow;
            }
            else
            {
                flowmeter.UpdatePropStatus(nameof(flowmeter.CurrentFlow), ePropStatus.Abnormal, "[流量信息]缺少或者数据格式错误");
            }
            #endregion
            return flowmeter;
        }
@@ -3854,9 +3901,12 @@
                    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)
@@ -4461,9 +4498,12 @@
                    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
@@ -4831,9 +4826,12 @@
                    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;
                            }
                        }
                    }
                }
@@ -5215,9 +5213,12 @@
                    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;
                            }
                        }
                    }
                }
@@ -5656,11 +5657,19 @@
                {
                    exchanger.Elev = elevOfElevation / 1000f;
                    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;
                            }
                        }
                    }
                }
@@ -5989,9 +5998,12 @@
                    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;
                            }
                        }
                    }
                }