From 40e445d68998eacd39a750cec349fa025fc56fe2 Mon Sep 17 00:00:00 2001 From: lixiaojun <1287241240@qq.com> Date: 星期三, 15 一月 2025 13:50:29 +0800 Subject: [PATCH] 解析参照标高 --- Service/HStation.Service.Revit.Core/04-service/01-json/RevitJsonHelper.cs | 265 +++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 259 insertions(+), 6 deletions(-) diff --git a/Service/HStation.Service.Revit.Core/04-service/01-json/RevitJsonHelper.cs b/Service/HStation.Service.Revit.Core/04-service/01-json/RevitJsonHelper.cs index f449429..cc20c22 100644 --- a/Service/HStation.Service.Revit.Core/04-service/01-json/RevitJsonHelper.cs +++ b/Service/HStation.Service.Revit.Core/04-service/01-json/RevitJsonHelper.cs @@ -372,6 +372,10 @@ { reservoir.UpdatePropStatus(nameof(reservoir.Flags), ePropStatus.Error, "缂哄皯[鏍囩淇℃伅]"); } + if (reservoir.Flags == null) + { + reservoir.Flags = new List<string>(); + } #endregion @@ -569,6 +573,11 @@ else { tank.UpdatePropStatus(nameof(tank.Flags), ePropStatus.Error, "缂哄皯[鏍囩淇℃伅]"); + } + + if (tank.Flags == null) + { + tank.Flags = new List<string>(); } #endregion @@ -844,6 +853,11 @@ waterbox.UpdatePropStatus(nameof(waterbox.Flags), ePropStatus.Error, "缂哄皯[鏍囩淇℃伅]"); } + if (waterbox.Flags == null) + { + waterbox.Flags = new List<string>(); + } + #endregion #region Description @@ -1117,6 +1131,11 @@ junction.UpdatePropStatus(nameof(junction.Flags), ePropStatus.Error, "缂哄皯[鏍囩淇℃伅]"); } + if (junction.Flags == null) + { + junction.Flags = new List<string>(); + } + #endregion #region Description @@ -1186,11 +1205,20 @@ if (jobject[RevitJsonProp.ElevOfElevation].MatchNumeric(out double elevOfElevation)) { junction.Elev = elevOfElevation / 1000f; + var jre = jobject[RevitJsonProp.ElevOfReference]; + 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 @@ -1397,6 +1430,14 @@ if (jobject[RevitJsonProp.ElevOfElevation].MatchNumeric(out double elevOfElevation)) { blunthead.Elev = elevOfElevation / 1000f; + var jre = jobject[RevitJsonProp.ElevOfReference]; + 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 @@ -1646,6 +1692,14 @@ if (jobject[RevitJsonProp.ElevOfElevation].MatchNumeric(out double elevOfElevation)) { elbow.Elev = elevOfElevation / 1000f; + var jre = jobject[RevitJsonProp.ElevOfReference]; + 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 @@ -1924,6 +1983,14 @@ if (jobject[RevitJsonProp.ElevOfElevation].MatchNumeric(out double elevOfElevation)) { threelink.Elev = elevOfElevation / 1000f; + var jre = jobject[RevitJsonProp.ElevOfReference]; + 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 @@ -2198,6 +2270,14 @@ if (jobject[RevitJsonProp.ElevOfElevation].MatchNumeric(out double elevOfElevation)) { fourlink.Elev = elevOfElevation / 1000f; + var jre = jobject[RevitJsonProp.ElevOfReference]; + 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 @@ -2446,6 +2531,14 @@ if (jobject[RevitJsonProp.ElevOfElevation].MatchNumeric(out double elevOfElevation)) { nozzle.Elev = elevOfElevation / 1000f; + var jre = jobject[RevitJsonProp.ElevOfReference]; + 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 @@ -2717,6 +2815,14 @@ if (jobject[RevitJsonProp.ElevOfElevation].MatchNumeric(out double elevOfElevation)) { hydrant.Elev = elevOfElevation / 1000f; + var jre = jobject[RevitJsonProp.ElevOfReference]; + 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 @@ -2983,6 +3094,14 @@ if (jobject[RevitJsonProp.ElevOfElevation].MatchNumeric(out double elevOfElevation)) { cooling.Elev = elevOfElevation / 1000f; + var jre = jobject[RevitJsonProp.ElevOfReference]; + 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 @@ -3266,6 +3390,14 @@ if (jobject[RevitJsonProp.ElevOfElevation].MatchNumeric(out double elevOfElevation)) { meter.Elev = elevOfElevation / 1000f; + var jre = jobject[RevitJsonProp.ElevOfReference]; + 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 @@ -3477,6 +3614,14 @@ if (jobject[RevitJsonProp.ElevOfElevation].MatchNumeric(out double elevOfElevation)) { flowmeter.Elev = elevOfElevation / 1000f; + var jre = jobject[RevitJsonProp.ElevOfReference]; + 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 @@ -3701,6 +3851,14 @@ if (jobject[RevitJsonProp.ElevOfElevation].MatchNumeric(out double elevOfElevation)) { pressmeter.Elev = elevOfElevation / 1000f; + var jre = jobject[RevitJsonProp.ElevOfReference]; + 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 @@ -4290,6 +4458,14 @@ if (jobject[RevitJsonProp.ElevOfElevation].MatchNumeric(out double elevOfElevation)) { translation.Elev = elevOfElevation / 1000f; + var jre = jobject[RevitJsonProp.ElevOfReference]; + 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 @@ -4647,6 +4828,14 @@ if (jobject[RevitJsonProp.ElevOfElevation].MatchNumeric(out double elevOfElevation)) { pump.Elev = elevOfElevation / 1000f; + var jre = jobject[RevitJsonProp.ElevOfReference]; + 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 @@ -5018,6 +5212,14 @@ if (jobject[RevitJsonProp.ElevOfElevation].MatchNumeric(out double elevOfElevation)) { valve.Elev = elevOfElevation / 1000f; + var jre = jobject[RevitJsonProp.ElevOfReference]; + if (jre != null) + { + if (jre[RevitJsonProp.ElevFacade].MatchNumeric(out double facade)) + { + valve.Elev += facade / 1000f; + } + } } else { @@ -5102,9 +5304,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 @@ -5115,9 +5317,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 @@ -5128,8 +5330,33 @@ if (valve.Diameter < 1) { - valve.Diameter = 500; - valve.UpdatePropStatus(nameof(valve.Diameter), ePropStatus.Lack, "[鐩村緞淇℃伅][鍐呭緞]瑙f瀽閿欒锛屼娇鐢ㄩ粯璁ゅ��(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, "[鐩村緞淇℃伅]瑙f瀽閿欒锛屾棤娉曢�氳繃[鍐呭緞][鍏О鐩村緞][鏈�澶у昂瀵竇[鏈�灏忓昂瀵竇淇"); } #endregion @@ -5305,6 +5532,11 @@ exchanger.UpdatePropStatus(nameof(exchanger.Flags), ePropStatus.Error, "缂哄皯[鏍囩淇℃伅]"); } + if (exchanger.Flags == null) + { + exchanger.Flags = new List<string>(); + } + #endregion #region Description @@ -5423,6 +5655,14 @@ if (jobject[RevitJsonProp.ElevOfElevation].MatchNumeric(out double elevOfElevation)) { exchanger.Elev = elevOfElevation / 1000f; + var jre = jobject[RevitJsonProp.ElevOfReference]; + if (jre != null) + { + if (jre[RevitJsonProp.ElevFacade].MatchNumeric(out double facade)) + { + exchanger.Elev += facade / 1000f; + } + } } else { @@ -5623,6 +5863,11 @@ compressor.UpdatePropStatus(nameof(compressor.Flags), ePropStatus.Error, "缂哄皯[鏍囩淇℃伅]"); } + if (compressor.Flags == null) + { + compressor.Flags = new List<string>(); + } + #endregion #region Description @@ -5741,6 +5986,14 @@ if (jobject[RevitJsonProp.ElevOfElevation].MatchNumeric(out double elevOfElevation)) { compressor.Elev = elevOfElevation / 1000f; + var jre = jobject[RevitJsonProp.ElevOfReference]; + if (jre != null) + { + if (jre[RevitJsonProp.ElevFacade].MatchNumeric(out double facade)) + { + compressor.Elev += facade / 1000f; + } + } } else { -- Gitblit v1.9.3