From 083c4e47c7a59025f3348bd093693c6b3febb014 Mon Sep 17 00:00:00 2001 From: duheng <2784771470@qq.com> Date: 星期三, 16 十月 2024 10:03:31 +0800 Subject: [PATCH] Merge branch 'master' of http://47.103.154.90:83/r/HStation/XHS.V1.0 --- Service/HStation.Service.Revit.Core/04-service/01-json/RevitJsonHelper.cs | 5461 ++++++++++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 4,631 insertions(+), 830 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 55d1a84..6683c6e 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 @@ -1,4 +1,7 @@ -锘縩amespace HStation.Service +锘縰sing System.IO.Pipes; +using System.Transactions; + +namespace HStation.Service { /// <summary> /// Revit Json杈呭姪绫� @@ -200,7 +203,10 @@ var decorator = ParseDecorator(jobject); if (decorator != null) { - model.Decorators.Add(decorator); + if (!string.IsNullOrEmpty(decorator.Id)) + { + model.Decorators.Add(decorator); + } } } break; @@ -283,69 +289,226 @@ return default; } - //鍩虹淇℃伅 var junction = new Model.RevitJunction(); - junction.Id = jobject[RevitJsonProp.Id].ToString(); - junction.Code = jobject[RevitJsonProp.Code].ToString(); - if (string.IsNullOrEmpty(junction.Code)) - { - junction.Code = junction.Id; - } - junction.Name = jobject[RevitJsonProp.Name].ToString(); - junction.ModelType = jobject[RevitJsonProp.ModelType].ToString(); - junction.Flags = Yw.Untity.FlagsHelper.ToList(jobject[RevitJsonProp.Flags].ToString()); - junction.Description = jobject[RevitJsonProp.Description].ToString(); - var connectList = JsonHelper.Json2Object<List<RevitJsonConnectModel>>(jobject[RevitJsonProp.Connects].ToString()); - junction.ConnectList = connectList?.Select(x => new Model.RevitConnect() - { - Id = x.ConnectId, - Direction = x.Dirction, - Position = new Model.RevitPosition() - { - X = x.Point.X / 1000f, - Y = x.Point.Y / 1000f, - Z = x.Point.Z / 1000f - } - }).ToList(); - junction.Position = junction.ConnectList.GetCenterPosition(); - //鍒濆姘磋川 + #region Id + + if (jobject.ParseString(RevitJsonProp.Id, out string id)) + { + junction.Id = id; + } + else + { + junction.AppendOrUpdatePropStatus(nameof(junction.Id), ePropStatus.Error, "缂哄皯[鏋勪欢缂栫爜]"); + } + + #endregion + + #region Code + + if (jobject.ParseString(RevitJsonProp.Code, out string code)) + { + junction.Code = code; + if (string.IsNullOrEmpty(junction.Code)) + { + junction.Code = junction.Id; + junction.AppendOrUpdatePropStatus(nameof(junction.Code), ePropStatus.Lack, "浣跨敤[鏋勪欢缂栫爜]璧嬪��"); + } + } + else + { + junction.AppendOrUpdatePropStatus(nameof(junction.Code), ePropStatus.Error, "缂哄皯[缂栫爜]"); + } + + #endregion + + #region Name + + if (jobject.ParseString(RevitJsonProp.Name, out string name)) + { + junction.Name = name; + junction.AppendOrUpdatePropStatus(nameof(junction.Name), ePropStatus.Lack, "[鍚嶇О]缂虹渷"); + } + else + { + junction.AppendOrUpdatePropStatus(nameof(junction.Name), ePropStatus.Error, "缂哄皯 [鍚嶇О]"); + } + + #endregion + + #region ModelType + + if (jobject.ParseString(RevitJsonProp.ModelType, out string modelType)) + { + junction.ModelType = modelType; + if (string.IsNullOrEmpty(junction.ModelType)) + { + junction.AppendOrUpdatePropStatus(nameof(junction.ModelType), ePropStatus.Lack, "[鍨嬪彿淇℃伅]缂虹渷"); + } + } + else + { + junction.AppendOrUpdatePropStatus(nameof(junction.ModelType), ePropStatus.Error, "缂哄皯[鍨嬪彿淇℃伅]"); + } + + #endregion + + #region Flags + + if (jobject.ParseString(RevitJsonProp.Flags, out string flags)) + { + junction.Flags = Yw.Untity.FlagsHelper.ToList(flags); + if (!string.IsNullOrEmpty(flags)) + { + if (junction.Flags == null || junction.Flags.Count < 1) + { + junction.AppendOrUpdatePropStatus(nameof(junction.Flags), ePropStatus.Abnormal, "[鏍囩]鏍煎紡閿欒"); + } + } + } + else + { + junction.AppendOrUpdatePropStatus(nameof(junction.Flags), ePropStatus.Error, "缂哄皯[鏍囩]"); + } + + #endregion + + #region Description + + if (jobject.ParseString(RevitJsonProp.Description, out string description)) + { + junction.Description = description; + } + else + { + junction.AppendOrUpdatePropStatus(nameof(junction.Description), ePropStatus.Error, "缂哄皯[璇存槑淇℃伅]"); + } + + #endregion + + #region ConnectList + + if (jobject.ParseString(RevitJsonProp.Connects, out string connectString)) + { + var connectList = JsonHelper.Json2Object<List<RevitJsonConnectModel>>(connectString); + junction.ConnectList = connectList?.Select(x => new Model.RevitConnect() + { + Id = x.ConnectId, + Direction = x.Dirction, + Position = new Model.RevitPosition() + { + X = x.Point.X / 1000f, + Y = x.Point.Y / 1000f, + Z = x.Point.Z / 1000f + } + }).ToList(); + if (junction.ConnectList == null || junction.ConnectList.Count < 1) + { + junction.AppendOrUpdatePropStatus(nameof(junction.ConnectList), ePropStatus.Error, "[杩炴帴鍒楄〃]瑙f瀽澶辫触"); + } + } + else + { + junction.AppendOrUpdatePropStatus(nameof(junction.ConnectList), ePropStatus.Error, "缂哄皯[杩炴帴鍒楄〃]"); + } + + #endregion + + #region Quality + if (jobject[RevitJsonProp.Quality].MatchNumeric(out double quality)) { junction.Quality = quality; + if (junction.Quality <= 0) + { + junction.AppendOrUpdatePropStatus(nameof(junction.Quality), ePropStatus.Lack, "[鍒濆姘磋川]缂虹渷"); + } + } + else + { + junction.AppendOrUpdatePropStatus(nameof(junction.Quality), ePropStatus.Abnormal, "[鍒濆姘磋川]寮傚父锛屽彲鑳芥槸缂哄皯鎴栨牸寮忛敊璇�"); } - //鏍囬珮淇℃伅 + #endregion + + #region Position + + junction.Position = junction.ConnectList?.GetCenterPosition(); + if (junction.Position == null) + { + junction.AppendOrUpdatePropStatus(nameof(junction.Position), ePropStatus.Lack, "[浣嶇疆]缂虹渷锛屽彲鑳芥槸鍙梉杩炴帴鍒楄〃]瑙f瀽澶辫触褰卞搷"); + } + + #endregion + + #region Elev + if (jobject[RevitJsonProp.Elev].MatchNumeric(out double elev)) { junction.Elev = elev / 1000f; } + else + { + junction.AppendOrUpdatePropStatus(nameof(junction.Elev), ePropStatus.Abnormal, "[鏍囬珮淇℃伅]缂哄皯鎴栬�呮牸寮忛敊璇�"); + } + if (junction.Elev <= 0) { - //鏍囬珮涓殑楂樼▼ - var jobjectElevOfElevation = jobject[RevitJsonProp.ElevOfElevation]; - if (jobjectElevOfElevation != null) + if (jobject[RevitJsonProp.ElevOfElevation].MatchNumeric(out double elevOfElevation)) { - if (jobjectElevOfElevation.MatchNumeric(out double elevOfElevation)) - { - junction.Elev = elevOfElevation / 1000f; - } + junction.Elev = elevOfElevation / 1000f; + } + else + { + junction.AppendOrUpdatePropStatus(nameof(junction.Elev), ePropStatus.Abnormal, "[鏍囬珮涓殑楂樼▼]缂哄皯鎴栬�呮牸寮忛敊璇�"); } } + if (junction.Elev <= 0) { //閫氳繃z杞磋嚜鍔ㄨ绠� - junction.Elev = junction.Position.Z; + if (junction.Position == null) + { + junction.AppendOrUpdatePropStatus(nameof(junction.Elev), ePropStatus.Lack, "[鏍囬珮]缂虹渷锛屽彈[浣嶇疆]褰卞搷锛屾棤娉曢�氳繃Z杞磋嚜鍔ㄨ绠�"); + } + else + { + junction.Elev = junction.Position.Z; + junction.AppendOrUpdatePropStatus(nameof(junction.Elev), ePropStatus.Lack, "[鏍囬珮]缂虹渷锛岄�氳繃Z杞磋嚜鍔ㄨ绠�"); + } } - //闇�姘撮噺 + #endregion + + #region Demand + if (jobject[RevitJsonProp.Demand].MatchNumeric(out double demand)) { junction.Demand = demand; } + else + { + junction.AppendOrUpdatePropStatus(nameof(junction.Demand), ePropStatus.Abnormal, "[闇�姘撮噺]缂哄皯鎴栬�呮暟鎹牸寮忛敊璇�"); + } - //闇�姘存ā寮� - junction.DemandPattern = jobject[RevitJsonProp.DemandPattern].ToString(); + #endregion + + #region DemandPattern + + if (jobject.ParseString(RevitJsonProp.DemandPattern, out string demandPattern)) + { + junction.DemandPattern = demandPattern; + if (string.IsNullOrEmpty(junction.DemandPattern)) + { + junction.AppendOrUpdatePropStatus(nameof(junction.DemandPattern), ePropStatus.Lack, "[闇�姘存ā寮廬缂虹渷"); + } + } + else + { + junction.AppendOrUpdatePropStatus(nameof(junction.DemandPattern), ePropStatus.Abnormal, "缂哄皯[闇�姘存ā寮廬"); + } + + #endregion return junction; } @@ -358,75 +521,256 @@ return default; } - //鍩烘湰淇℃伅 var nozzle = new Model.RevitNozzle(); - nozzle.Id = jobject[RevitJsonProp.Id].ToString(); - nozzle.Code = jobject[RevitJsonProp.Code].ToString(); - if (string.IsNullOrEmpty(nozzle.Code)) - { - nozzle.Code = nozzle.Id; - } - nozzle.Name = jobject[RevitJsonProp.Name].ToString(); - nozzle.ModelType = jobject[RevitJsonProp.ModelType].ToString(); - nozzle.Flags = Yw.Untity.FlagsHelper.ToList(jobject[RevitJsonProp.Flags].ToString()); - nozzle.Description = jobject[RevitJsonProp.Description].ToString(); - var connectList = JsonHelper.Json2Object<List<RevitJsonConnectModel>>(jobject[RevitJsonProp.Connects].ToString()); - nozzle.ConnectList = connectList?.Select(x => new Model.RevitConnect() - { - Id = x.ConnectId, - Direction = x.Dirction, - Position = new Model.RevitPosition() - { - X = x.Point.X / 1000f, - Y = x.Point.Y / 1000f, - Z = x.Point.Z / 1000f - } - }).ToList(); - nozzle.Position = nozzle.ConnectList.GetCenterPosition(); - //鍒濆姘磋川 + #region Id + + if (jobject.ParseString(RevitJsonProp.Id, out string id)) + { + nozzle.Id = id; + } + else + { + nozzle.AppendOrUpdatePropStatus(nameof(nozzle.Id), ePropStatus.Error, "缂哄皯[鏋勪欢缂栫爜]"); + } + + #endregion + + #region Code + + if (jobject.ParseString(RevitJsonProp.Code, out string code)) + { + nozzle.Code = code; + if (string.IsNullOrEmpty(nozzle.Code)) + { + nozzle.Code = nozzle.Id; + nozzle.AppendOrUpdatePropStatus(nameof(nozzle.Code), ePropStatus.Lack, "浣跨敤[鏋勪欢缂栫爜]璧嬪��"); + } + } + else + { + nozzle.AppendOrUpdatePropStatus(nameof(nozzle.Code), ePropStatus.Error, "缂哄皯[缂栫爜]"); + } + + #endregion + + #region Name + + if (jobject.ParseString(RevitJsonProp.Name, out string name)) + { + nozzle.Name = name; + nozzle.AppendOrUpdatePropStatus(nameof(nozzle.Name), ePropStatus.Lack, "[鍚嶇О]缂虹渷"); + } + else + { + nozzle.AppendOrUpdatePropStatus(nameof(nozzle.Name), ePropStatus.Error, "缂哄皯 [鍚嶇О]"); + } + + #endregion + + #region ModelType + + if (jobject.ParseString(RevitJsonProp.ModelType, out string modelType)) + { + nozzle.ModelType = modelType; + if (string.IsNullOrEmpty(nozzle.ModelType)) + { + nozzle.AppendOrUpdatePropStatus(nameof(nozzle.ModelType), ePropStatus.Lack, "[鍨嬪彿淇℃伅]缂虹渷"); + } + } + else + { + nozzle.AppendOrUpdatePropStatus(nameof(nozzle.ModelType), ePropStatus.Error, "缂哄皯[鍨嬪彿淇℃伅]"); + } + + #endregion + + #region Flags + + if (jobject.ParseString(RevitJsonProp.Flags, out string flags)) + { + nozzle.Flags = Yw.Untity.FlagsHelper.ToList(flags); + if (!string.IsNullOrEmpty(flags)) + { + if (nozzle.Flags == null || nozzle.Flags.Count < 1) + { + nozzle.AppendOrUpdatePropStatus(nameof(nozzle.Flags), ePropStatus.Abnormal, "[鏍囩]鏍煎紡閿欒"); + } + } + } + else + { + nozzle.AppendOrUpdatePropStatus(nameof(nozzle.Flags), ePropStatus.Error, "缂哄皯[鏍囩]"); + } + + #endregion + + #region Description + + if (jobject.ParseString(RevitJsonProp.Description, out string description)) + { + nozzle.Description = description; + } + else + { + nozzle.AppendOrUpdatePropStatus(nameof(nozzle.Description), ePropStatus.Error, "缂哄皯[璇存槑淇℃伅]"); + } + + #endregion + + #region ConnectList + + if (jobject.ParseString(RevitJsonProp.Connects, out string connectString)) + { + var connectList = JsonHelper.Json2Object<List<RevitJsonConnectModel>>(connectString); + nozzle.ConnectList = connectList?.Select(x => new Model.RevitConnect() + { + Id = x.ConnectId, + Direction = x.Dirction, + Position = new Model.RevitPosition() + { + X = x.Point.X / 1000f, + Y = x.Point.Y / 1000f, + Z = x.Point.Z / 1000f + } + }).ToList(); + if (nozzle.ConnectList == null || nozzle.ConnectList.Count < 1) + { + nozzle.AppendOrUpdatePropStatus(nameof(nozzle.ConnectList), ePropStatus.Error, "[杩炴帴鍒楄〃]瑙f瀽澶辫触"); + } + } + else + { + nozzle.AppendOrUpdatePropStatus(nameof(nozzle.ConnectList), ePropStatus.Error, "缂哄皯[杩炴帴鍒楄〃]"); + } + + #endregion + + #region Quality + if (jobject[RevitJsonProp.Quality].MatchNumeric(out double quality)) { nozzle.Quality = quality; + if (nozzle.Quality <= 0) + { + nozzle.AppendOrUpdatePropStatus(nameof(nozzle.Quality), ePropStatus.Lack, "[鍒濆姘磋川]缂虹渷"); + } + } + else + { + nozzle.AppendOrUpdatePropStatus(nameof(nozzle.Quality), ePropStatus.Abnormal, "[鍒濆姘磋川]寮傚父锛屽彲鑳芥槸缂哄皯鎴栨牸寮忛敊璇�"); } - //鏍囬珮淇℃伅 + #endregion + + #region Position + + nozzle.Position = nozzle.ConnectList?.GetCenterPosition(); + if (nozzle.Position == null) + { + nozzle.AppendOrUpdatePropStatus(nameof(nozzle.Position), ePropStatus.Lack, "[浣嶇疆]缂虹渷锛屽彲鑳芥槸鍙梉杩炴帴鍒楄〃]瑙f瀽澶辫触褰卞搷"); + } + + #endregion + + #region Elev + if (jobject[RevitJsonProp.Elev].MatchNumeric(out double elev)) { nozzle.Elev = elev / 1000f; } + else + { + nozzle.AppendOrUpdatePropStatus(nameof(nozzle.Elev), ePropStatus.Abnormal, "[鏍囬珮淇℃伅]缂哄皯鎴栬�呮牸寮忛敊璇�"); + } + if (nozzle.Elev <= 0) { - //鏍囬珮涓殑楂樼▼ - var jobjectElevOfElevation = jobject[RevitJsonProp.ElevOfElevation]; - if (jobjectElevOfElevation != null) + if (jobject[RevitJsonProp.ElevOfElevation].MatchNumeric(out double elevOfElevation)) { - if (jobjectElevOfElevation.MatchNumeric(out double elevOfElevation)) - { - nozzle.Elev = elevOfElevation / 1000f; - } + nozzle.Elev = elevOfElevation / 1000f; + } + else + { + nozzle.AppendOrUpdatePropStatus(nameof(nozzle.Elev), ePropStatus.Abnormal, "[鏍囬珮涓殑楂樼▼]缂哄皯鎴栬�呮牸寮忛敊璇�"); } } + if (nozzle.Elev <= 0) { //閫氳繃z杞磋嚜鍔ㄨ绠� - nozzle.Elev = nozzle.Position.Z; + if (nozzle.Position == null) + { + nozzle.AppendOrUpdatePropStatus(nameof(nozzle.Elev), ePropStatus.Lack, "[鏍囬珮]缂虹渷锛屽彈[浣嶇疆]褰卞搷锛屾棤娉曢�氳繃Z杞磋嚜鍔ㄨ绠�"); + } + else + { + nozzle.Elev = nozzle.Position.Z; + nozzle.AppendOrUpdatePropStatus(nameof(nozzle.Elev), ePropStatus.Lack, "[鏍囬珮]缂虹渷锛岄�氳繃Z杞磋嚜鍔ㄨ绠�"); + } } - //闇�姘撮噺 + #endregion + + #region Demand + if (jobject[RevitJsonProp.Demand].MatchNumeric(out double demand)) { nozzle.Demand = demand; } - - //闇�姘存ā寮� - nozzle.DemandPattern = jobject[RevitJsonProp.DemandPattern].ToString(); - - //鍠峰皠绯绘暟 - if (jobject[RevitJsonProp.CoefficientP].MatchNumeric(out double coeffient)) + else { - nozzle.Coefficient = coeffient; + nozzle.AppendOrUpdatePropStatus(nameof(nozzle.Demand), ePropStatus.Abnormal, "[闇�姘撮噺]缂哄皯鎴栬�呮暟鎹牸寮忛敊璇�"); } + + #endregion + + #region DemandPattern + + if (jobject.ParseString(RevitJsonProp.DemandPattern, out string demandPattern)) + { + nozzle.DemandPattern = demandPattern; + if (string.IsNullOrEmpty(nozzle.DemandPattern)) + { + nozzle.AppendOrUpdatePropStatus(nameof(nozzle.DemandPattern), ePropStatus.Lack, "[闇�姘存ā寮廬缂虹渷"); + } + } + else + { + nozzle.AppendOrUpdatePropStatus(nameof(nozzle.DemandPattern), ePropStatus.Abnormal, "缂哄皯[闇�姘存ā寮廬"); + } + + #endregion + + #region Coefficient + + if (jobject[RevitJsonProp.CoefficientP].MatchNumeric(out double coeffientp)) + { + nozzle.Coefficient = coeffientp; + if (nozzle.Coefficient <= 0) + { + nozzle.AppendOrUpdatePropStatus(nameof(nozzle.Coefficient), ePropStatus.Lack, "[鍠峰皠绯绘暟]缂虹渷"); + } + } + else + { + nozzle.AppendOrUpdatePropStatus(nameof(nozzle.Coefficient), ePropStatus.Abnormal, "[鍠峰皠绯绘暟]缂哄皯鎴栬�呮牸寮忛敊璇�"); + if (jobject[RevitJsonProp.CoefficientF].MatchNumeric(out double coeffientf)) + { + nozzle.Coefficient = coeffientf; + if (nozzle.Coefficient <= 0) + { + nozzle.AppendOrUpdatePropStatus(nameof(nozzle.Coefficient), ePropStatus.Lack, "[娴侀噺绯绘暟]缂虹渷"); + } + } + } + + if (nozzle.Coefficient < 1) + { + nozzle.AppendOrUpdatePropStatus(nameof(nozzle.Coefficient), ePropStatus.Lack, "[鍠峰皠绯绘暟]缂虹渷锛屼娇鐢ㄩ粯璁ゅ��(163)杩涜淇"); + } + + #endregion return nozzle; } @@ -439,77 +783,531 @@ return default; } - //鍩烘湰淇℃伅 var hydrant = new Model.RevitHydrant(); - hydrant.Id = jobject[RevitJsonProp.Id].ToString(); - hydrant.Code = jobject[RevitJsonProp.Code].ToString(); - if (string.IsNullOrEmpty(hydrant.Code)) - { - hydrant.Code = hydrant.Id; - } - hydrant.Name = jobject[RevitJsonProp.Name].ToString(); - hydrant.ModelType = jobject[RevitJsonProp.ModelType].ToString(); - hydrant.Flags = Yw.Untity.FlagsHelper.ToList(jobject[RevitJsonProp.Flags].ToString()); - hydrant.Description = jobject[RevitJsonProp.Description].ToString(); - var connectList = JsonHelper.Json2Object<List<RevitJsonConnectModel>>(jobject[RevitJsonProp.Connects].ToString()); - hydrant.ConnectList = connectList?.Select(x => new Model.RevitConnect() - { - Id = x.ConnectId, - Direction = x.Dirction, - Position = new Model.RevitPosition() - { - X = x.Point.X / 1000f, - Y = x.Point.Y / 1000f, - Z = x.Point.Z / 1000f - } - }).ToList(); - hydrant.Position = hydrant.ConnectList.GetCenterPosition(); - //鍒濆姘磋川 + #region Id + + if (jobject.ParseString(RevitJsonProp.Id, out string id)) + { + hydrant.Id = id; + } + else + { + hydrant.AppendOrUpdatePropStatus(nameof(hydrant.Id), ePropStatus.Error, "缂哄皯[鏋勪欢缂栫爜]"); + } + + #endregion + + #region Code + + if (jobject.ParseString(RevitJsonProp.Code, out string code)) + { + hydrant.Code = code; + if (string.IsNullOrEmpty(hydrant.Code)) + { + hydrant.Code = hydrant.Id; + hydrant.AppendOrUpdatePropStatus(nameof(hydrant.Code), ePropStatus.Lack, "浣跨敤[鏋勪欢缂栫爜]璧嬪��"); + } + } + else + { + hydrant.AppendOrUpdatePropStatus(nameof(hydrant.Code), ePropStatus.Error, "缂哄皯[缂栫爜]"); + } + + #endregion + + #region Name + + if (jobject.ParseString(RevitJsonProp.Name, out string name)) + { + hydrant.Name = name; + if (string.IsNullOrEmpty(hydrant.Name)) + { + hydrant.AppendOrUpdatePropStatus(nameof(hydrant.Name), ePropStatus.Lack, "[鍚嶇О]缂虹渷"); + } + } + else + { + hydrant.AppendOrUpdatePropStatus(nameof(hydrant.Name), ePropStatus.Error, "缂哄皯 [鍚嶇О]"); + } + + #endregion + + #region ModelType + + if (jobject.ParseString(RevitJsonProp.ModelType, out string modelType)) + { + hydrant.ModelType = modelType; + if (string.IsNullOrEmpty(hydrant.ModelType)) + { + hydrant.AppendOrUpdatePropStatus(nameof(hydrant.ModelType), ePropStatus.Lack, "[鍨嬪彿淇℃伅]缂虹渷"); + } + } + else + { + hydrant.AppendOrUpdatePropStatus(nameof(hydrant.ModelType), ePropStatus.Error, "缂哄皯[鍨嬪彿淇℃伅]"); + } + + #endregion + + #region Flags + + if (jobject.ParseString(RevitJsonProp.Flags, out string flags)) + { + hydrant.Flags = Yw.Untity.FlagsHelper.ToList(flags); + if (!string.IsNullOrEmpty(flags)) + { + if (hydrant.Flags == null || hydrant.Flags.Count < 1) + { + hydrant.AppendOrUpdatePropStatus(nameof(hydrant.Flags), ePropStatus.Abnormal, "[鏍囩]鏍煎紡閿欒"); + } + } + } + else + { + hydrant.AppendOrUpdatePropStatus(nameof(hydrant.Flags), ePropStatus.Error, "缂哄皯[鏍囩]"); + } + + #endregion + + #region Description + + if (jobject.ParseString(RevitJsonProp.Description, out string description)) + { + hydrant.Description = description; + } + else + { + hydrant.AppendOrUpdatePropStatus(nameof(hydrant.Description), ePropStatus.Error, "缂哄皯[璇存槑淇℃伅]"); + } + + #endregion + + #region ConnectList + + if (jobject.ParseString(RevitJsonProp.Connects, out string connectString)) + { + var connectList = JsonHelper.Json2Object<List<RevitJsonConnectModel>>(connectString); + hydrant.ConnectList = connectList?.Select(x => new Model.RevitConnect() + { + Id = x.ConnectId, + Direction = x.Dirction, + Position = new Model.RevitPosition() + { + X = x.Point.X / 1000f, + Y = x.Point.Y / 1000f, + Z = x.Point.Z / 1000f + } + }).ToList(); + if (hydrant.ConnectList == null || hydrant.ConnectList.Count < 1) + { + hydrant.AppendOrUpdatePropStatus(nameof(hydrant.ConnectList), ePropStatus.Error, "[杩炴帴鍒楄〃]瑙f瀽澶辫触"); + } + } + else + { + hydrant.AppendOrUpdatePropStatus(nameof(hydrant.ConnectList), ePropStatus.Error, "缂哄皯[杩炴帴鍒楄〃]"); + } + + #endregion + + #region Quality + if (jobject[RevitJsonProp.Quality].MatchNumeric(out double quality)) { hydrant.Quality = quality; + if (hydrant.Quality <= 0) + { + hydrant.AppendOrUpdatePropStatus(nameof(hydrant.Quality), ePropStatus.Lack, "[鍒濆姘磋川]缂虹渷"); + } + } + else + { + hydrant.AppendOrUpdatePropStatus(nameof(hydrant.Quality), ePropStatus.Abnormal, "[鍒濆姘磋川]寮傚父锛屽彲鑳芥槸缂哄皯鎴栨牸寮忛敊璇�"); } - //鏍囬珮淇℃伅 + #endregion + + #region Position + + hydrant.Position = hydrant.ConnectList?.GetCenterPosition(); + if (hydrant.Position == null) + { + hydrant.AppendOrUpdatePropStatus(nameof(hydrant.Position), ePropStatus.Lack, "[浣嶇疆]缂虹渷锛屽彲鑳芥槸鍙梉杩炴帴鍒楄〃]瑙f瀽澶辫触褰卞搷"); + } + + #endregion + + #region Elev + if (jobject[RevitJsonProp.Elev].MatchNumeric(out double elev)) { hydrant.Elev = elev / 1000f; } + else + { + hydrant.AppendOrUpdatePropStatus(nameof(hydrant.Elev), ePropStatus.Abnormal, "[鏍囬珮淇℃伅]缂哄皯鎴栬�呮牸寮忛敊璇�"); + } + if (hydrant.Elev <= 0) { - //鏍囬珮涓殑楂樼▼ - var jobjectElevOfElevation = jobject[RevitJsonProp.ElevOfElevation]; - if (jobjectElevOfElevation != null) + if (jobject[RevitJsonProp.ElevOfElevation].MatchNumeric(out double elevOfElevation)) { - if (jobjectElevOfElevation.MatchNumeric(out double elevOfElevation)) - { - hydrant.Elev = elevOfElevation / 1000f; - } + hydrant.Elev = elevOfElevation / 1000f; + } + else + { + hydrant.AppendOrUpdatePropStatus(nameof(hydrant.Elev), ePropStatus.Abnormal, "[鏍囬珮涓殑楂樼▼]缂哄皯鎴栬�呮牸寮忛敊璇�"); } } + if (hydrant.Elev <= 0) { //閫氳繃z杞磋嚜鍔ㄨ绠� - hydrant.Elev = hydrant.Position.Z; + if (hydrant.Position == null) + { + hydrant.AppendOrUpdatePropStatus(nameof(hydrant.Elev), ePropStatus.Lack, "[鏍囬珮]缂虹渷锛屽彈[浣嶇疆]褰卞搷锛屾棤娉曢�氳繃Z杞磋嚜鍔ㄨ绠�"); + } + else + { + hydrant.Elev = hydrant.Position.Z; + hydrant.AppendOrUpdatePropStatus(nameof(hydrant.Elev), ePropStatus.Lack, "[鏍囬珮]缂虹渷锛岄�氳繃Z杞磋嚜鍔ㄨ绠�"); + } } - //闇�姘撮噺 + #endregion + + #region Demand + if (jobject[RevitJsonProp.Demand].MatchNumeric(out double demand)) { hydrant.Demand = demand; } - - //闇�姘存ā寮� - hydrant.DemandPattern = jobject[RevitJsonProp.DemandPattern].ToString(); - - //娴侀噺绯绘暟 - if (jobject[RevitJsonProp.CoefficientF].MatchNumeric(out double coeffient)) + else { - hydrant.Coefficient = coeffient; + hydrant.AppendOrUpdatePropStatus(nameof(hydrant.Demand), ePropStatus.Abnormal, "[闇�姘撮噺]缂哄皯鎴栬�呮暟鎹牸寮忛敊璇�"); } + #endregion + + #region DemandPattern + + if (jobject.ParseString(RevitJsonProp.DemandPattern, out string demandPattern)) + { + hydrant.DemandPattern = demandPattern; + if (string.IsNullOrEmpty(hydrant.DemandPattern)) + { + hydrant.AppendOrUpdatePropStatus(nameof(hydrant.DemandPattern), ePropStatus.Lack, "[闇�姘存ā寮廬缂虹渷"); + } + } + else + { + hydrant.AppendOrUpdatePropStatus(nameof(hydrant.DemandPattern), ePropStatus.Abnormal, "缂哄皯[闇�姘存ā寮廬"); + } + + #endregion + + #region Coefficient + + if (jobject[RevitJsonProp.CoefficientP].MatchNumeric(out double coeffientp)) + { + hydrant.Coefficient = coeffientp; + if (hydrant.Coefficient <= 0) + { + hydrant.AppendOrUpdatePropStatus(nameof(hydrant.Coefficient), ePropStatus.Lack, "[鍠峰皠绯绘暟]缂虹渷"); + } + } + else + { + hydrant.AppendOrUpdatePropStatus(nameof(hydrant.Coefficient), ePropStatus.Abnormal, "[鍠峰皠绯绘暟]缂哄皯鎴栬�呮牸寮忛敊璇�"); + if (jobject[RevitJsonProp.CoefficientF].MatchNumeric(out double coeffientf)) + { + hydrant.Coefficient = coeffientf; + if (hydrant.Coefficient <= 0) + { + hydrant.AppendOrUpdatePropStatus(nameof(hydrant.Coefficient), ePropStatus.Lack, "[娴侀噺绯绘暟]缂虹渷"); + } + } + } + + #endregion + return hydrant; + } + + //瑙f瀽闂峰ご + private static HStation.Model.RevitBlunthead ParseBlunthead(JToken jobject) + { + if (jobject == null) + { + return default; + } + + var blunthead = new Model.RevitBlunthead(); + + #region Id + + if (jobject.ParseString(RevitJsonProp.Id, out string id)) + { + blunthead.Id = id; + } + else + { + blunthead.AppendOrUpdatePropStatus(nameof(blunthead.Id), ePropStatus.Error, "缂哄皯[鏋勪欢缂栫爜]"); + } + + #endregion + + #region Code + + if (jobject.ParseString(RevitJsonProp.Code, out string code)) + { + blunthead.Code = code; + if (string.IsNullOrEmpty(blunthead.Code)) + { + blunthead.Code = blunthead.Id; + blunthead.AppendOrUpdatePropStatus(nameof(blunthead.Code), ePropStatus.Lack, "浣跨敤[鏋勪欢缂栫爜]璧嬪��"); + } + } + else + { + blunthead.AppendOrUpdatePropStatus(nameof(blunthead.Code), ePropStatus.Error, "缂哄皯[缂栫爜]"); + } + + #endregion + + #region Name + + if (jobject.ParseString(RevitJsonProp.Name, out string name)) + { + blunthead.Name = name; + blunthead.AppendOrUpdatePropStatus(nameof(blunthead.Name), ePropStatus.Lack, "[鍚嶇О]缂虹渷"); + } + else + { + blunthead.AppendOrUpdatePropStatus(nameof(blunthead.Name), ePropStatus.Error, "缂哄皯 [鍚嶇О]"); + } + + #endregion + + #region ModelType + + if (jobject.ParseString(RevitJsonProp.ModelType, out string modelType)) + { + blunthead.ModelType = modelType; + if (string.IsNullOrEmpty(blunthead.ModelType)) + { + blunthead.AppendOrUpdatePropStatus(nameof(blunthead.ModelType), ePropStatus.Lack, "[鍨嬪彿淇℃伅]缂虹渷"); + } + } + else + { + blunthead.AppendOrUpdatePropStatus(nameof(blunthead.ModelType), ePropStatus.Error, "缂哄皯[鍨嬪彿淇℃伅]"); + } + + #endregion + + #region Flags + + if (jobject.ParseString(RevitJsonProp.Flags, out string flags)) + { + blunthead.Flags = Yw.Untity.FlagsHelper.ToList(flags); + if (!string.IsNullOrEmpty(flags)) + { + if (blunthead.Flags == null || blunthead.Flags.Count < 1) + { + blunthead.AppendOrUpdatePropStatus(nameof(blunthead.Flags), ePropStatus.Abnormal, "[鏍囩]鏍煎紡閿欒"); + } + } + } + else + { + blunthead.AppendOrUpdatePropStatus(nameof(blunthead.Flags), ePropStatus.Error, "缂哄皯[鏍囩]"); + } + + #endregion + + #region Description + + if (jobject.ParseString(RevitJsonProp.Description, out string description)) + { + blunthead.Description = description; + } + else + { + blunthead.AppendOrUpdatePropStatus(nameof(blunthead.Description), ePropStatus.Error, "缂哄皯[璇存槑淇℃伅]"); + } + + #endregion + + #region ConnectList + + if (jobject.ParseString(RevitJsonProp.Connects, out string connectString)) + { + var connectList = JsonHelper.Json2Object<List<RevitJsonConnectModel>>(connectString); + blunthead.ConnectList = connectList?.Select(x => new Model.RevitConnect() + { + Id = x.ConnectId, + Direction = x.Dirction, + Position = new Model.RevitPosition() + { + X = x.Point.X / 1000f, + Y = x.Point.Y / 1000f, + Z = x.Point.Z / 1000f + } + }).ToList(); + if (blunthead.ConnectList == null || blunthead.ConnectList.Count < 1) + { + blunthead.AppendOrUpdatePropStatus(nameof(blunthead.ConnectList), ePropStatus.Error, "[杩炴帴鍒楄〃]瑙f瀽澶辫触"); + } + } + else + { + blunthead.AppendOrUpdatePropStatus(nameof(blunthead.ConnectList), ePropStatus.Error, "缂哄皯[杩炴帴鍒楄〃]"); + } + + #endregion + + #region Quality + + if (jobject[RevitJsonProp.Quality].MatchNumeric(out double quality)) + { + blunthead.Quality = quality; + if (blunthead.Quality <= 0) + { + blunthead.AppendOrUpdatePropStatus(nameof(blunthead.Quality), ePropStatus.Lack, "[鍒濆姘磋川]缂虹渷"); + } + } + else + { + blunthead.AppendOrUpdatePropStatus(nameof(blunthead.Quality), ePropStatus.Abnormal, "[鍒濆姘磋川]寮傚父锛屽彲鑳芥槸缂哄皯鎴栨牸寮忛敊璇�"); + } + + #endregion + + #region Position + + blunthead.Position = blunthead.ConnectList?.GetCenterPosition(); + if (blunthead.Position == null) + { + blunthead.AppendOrUpdatePropStatus(nameof(blunthead.Position), ePropStatus.Lack, "[浣嶇疆]缂虹渷锛屽彲鑳芥槸鍙梉杩炴帴鍒楄〃]瑙f瀽澶辫触褰卞搷"); + } + + #endregion + + #region Elev + + if (jobject[RevitJsonProp.Elev].MatchNumeric(out double elev)) + { + blunthead.Elev = elev / 1000f; + } + else + { + blunthead.AppendOrUpdatePropStatus(nameof(blunthead.Elev), ePropStatus.Abnormal, "[鏍囬珮淇℃伅]缂哄皯鎴栬�呮牸寮忛敊璇�"); + } + + if (blunthead.Elev <= 0) + { + if (jobject[RevitJsonProp.ElevOfElevation].MatchNumeric(out double elevOfElevation)) + { + blunthead.Elev = elevOfElevation / 1000f; + } + else + { + blunthead.AppendOrUpdatePropStatus(nameof(blunthead.Elev), ePropStatus.Abnormal, "[鏍囬珮涓殑楂樼▼]缂哄皯鎴栬�呮牸寮忛敊璇�"); + } + } + + if (blunthead.Elev <= 0) + { + //閫氳繃z杞磋嚜鍔ㄨ绠� + if (blunthead.Position == null) + { + blunthead.AppendOrUpdatePropStatus(nameof(blunthead.Elev), ePropStatus.Lack, "[鏍囬珮]缂虹渷锛屽彈[浣嶇疆]褰卞搷锛屾棤娉曢�氳繃Z杞磋嚜鍔ㄨ绠�"); + } + else + { + blunthead.Elev = blunthead.Position.Z; + blunthead.AppendOrUpdatePropStatus(nameof(blunthead.Elev), ePropStatus.Lack, "[鏍囬珮]缂虹渷锛岄�氳繃Z杞磋嚜鍔ㄨ绠�"); + } + } + + #endregion + + #region Demand + + if (jobject[RevitJsonProp.Demand].MatchNumeric(out double demand)) + { + blunthead.Demand = demand; + } + else + { + blunthead.AppendOrUpdatePropStatus(nameof(blunthead.Demand), ePropStatus.Abnormal, "[闇�姘撮噺]缂哄皯鎴栬�呮暟鎹牸寮忛敊璇�"); + } + + #endregion + + #region DemandPattern + + if (jobject.ParseString(RevitJsonProp.DemandPattern, out string demandPattern)) + { + blunthead.DemandPattern = demandPattern; + if (string.IsNullOrEmpty(blunthead.DemandPattern)) + { + blunthead.AppendOrUpdatePropStatus(nameof(blunthead.DemandPattern), ePropStatus.Lack, "[闇�姘存ā寮廬缂虹渷"); + } + } + else + { + blunthead.AppendOrUpdatePropStatus(nameof(blunthead.DemandPattern), ePropStatus.Abnormal, "缂哄皯[闇�姘存ā寮廬"); + } + + #endregion + + #region Material + + if (jobject.ParseString(RevitJsonProp.Material, out string material)) + { + blunthead.Material = material; + if (string.IsNullOrEmpty(blunthead.Material)) + { + blunthead.AppendOrUpdatePropStatus(nameof(blunthead.Material), ePropStatus.Lack, "[鏉愯川]缂虹渷"); + } + } + else + { + blunthead.AppendOrUpdatePropStatus(nameof(blunthead.Material), ePropStatus.Abnormal, "缂哄皯[鏉愯川]"); + } + + #endregion + + #region Caliber + + if (jobject[RevitJsonProp.Caliber].MatchNumeric(out double caliber)) + { + blunthead.Caliber = caliber; + } + else + { + blunthead.AppendOrUpdatePropStatus(nameof(blunthead.Caliber), ePropStatus.Abnormal, "[鍙e緞]缂哄皯鎴栬�呮暟鎹牸寮忛敊璇�"); + } + + #endregion + + #region MinorLoss + + if (jobject[RevitJsonProp.MinorLoss].MatchNumeric(out double minorLoss)) + { + blunthead.MinorLoss = minorLoss; + } + else + { + blunthead.AppendOrUpdatePropStatus(nameof(blunthead.MinorLoss), ePropStatus.Abnormal, "[灞�閮ㄩ樆鍔涚郴鏁癩缂哄皯鎴栬�呮暟鎹牸寮忛敊璇�"); + } + + #endregion + + return blunthead; } //瑙f瀽寮ご @@ -520,69 +1318,269 @@ return default; } - //鍩烘湰淇℃伅 var elbow = new Model.RevitElbow(); - elbow.Id = jobject[RevitJsonProp.Id].ToString(); - elbow.Code = jobject[RevitJsonProp.Code].ToString(); - if (string.IsNullOrEmpty(elbow.Code)) - { - elbow.Code = elbow.Id; - } - elbow.Name = jobject[RevitJsonProp.Name].ToString(); - elbow.ModelType = jobject[RevitJsonProp.ModelType].ToString(); - elbow.Flags = Yw.Untity.FlagsHelper.ToList(jobject[RevitJsonProp.Flags].ToString()); - elbow.Description = jobject[RevitJsonProp.Description].ToString(); - var connectList = JsonHelper.Json2Object<List<RevitJsonConnectModel>>(jobject[RevitJsonProp.Connects].ToString()); - elbow.ConnectList = connectList?.Select(x => new Model.RevitConnect() - { - Id = x.ConnectId, - Direction = x.Dirction, - Position = new Model.RevitPosition() - { - X = x.Point.X / 1000f, - Y = x.Point.Y / 1000f, - Z = x.Point.Z / 1000f - } - }).ToList(); - elbow.Position = elbow.ConnectList.GetCenterPosition(); - //鍒濆姘磋川 + #region Id + + if (jobject.ParseString(RevitJsonProp.Id, out string id)) + { + elbow.Id = id; + } + else + { + elbow.AppendOrUpdatePropStatus(nameof(elbow.Id), ePropStatus.Error, "缂哄皯[鏋勪欢缂栫爜]"); + } + + #endregion + + #region Code + + if (jobject.ParseString(RevitJsonProp.Code, out string code)) + { + elbow.Code = code; + if (string.IsNullOrEmpty(elbow.Code)) + { + elbow.Code = elbow.Id; + elbow.AppendOrUpdatePropStatus(nameof(elbow.Code), ePropStatus.Lack, "浣跨敤[鏋勪欢缂栫爜]璧嬪��"); + } + } + else + { + elbow.AppendOrUpdatePropStatus(nameof(elbow.Code), ePropStatus.Error, "缂哄皯[缂栫爜]"); + } + + #endregion + + #region Name + + if (jobject.ParseString(RevitJsonProp.Name, out string name)) + { + elbow.Name = name; + elbow.AppendOrUpdatePropStatus(nameof(elbow.Name), ePropStatus.Lack, "[鍚嶇О]缂虹渷"); + } + else + { + elbow.AppendOrUpdatePropStatus(nameof(elbow.Name), ePropStatus.Error, "缂哄皯 [鍚嶇О]"); + } + + #endregion + + #region ModelType + + if (jobject.ParseString(RevitJsonProp.ModelType, out string modelType)) + { + elbow.ModelType = modelType; + if (string.IsNullOrEmpty(elbow.ModelType)) + { + elbow.AppendOrUpdatePropStatus(nameof(elbow.ModelType), ePropStatus.Lack, "[鍨嬪彿淇℃伅]缂虹渷"); + } + } + else + { + elbow.AppendOrUpdatePropStatus(nameof(elbow.ModelType), ePropStatus.Error, "缂哄皯[鍨嬪彿淇℃伅]"); + } + + #endregion + + #region Flags + + if (jobject.ParseString(RevitJsonProp.Flags, out string flags)) + { + elbow.Flags = Yw.Untity.FlagsHelper.ToList(flags); + if (!string.IsNullOrEmpty(flags)) + { + if (elbow.Flags == null || elbow.Flags.Count < 1) + { + elbow.AppendOrUpdatePropStatus(nameof(elbow.Flags), ePropStatus.Abnormal, "[鏍囩]鏍煎紡閿欒"); + } + } + } + else + { + elbow.AppendOrUpdatePropStatus(nameof(elbow.Flags), ePropStatus.Error, "缂哄皯[鏍囩]"); + } + + #endregion + + #region Description + + if (jobject.ParseString(RevitJsonProp.Description, out string description)) + { + elbow.Description = description; + } + else + { + elbow.AppendOrUpdatePropStatus(nameof(elbow.Description), ePropStatus.Error, "缂哄皯[璇存槑淇℃伅]"); + } + + #endregion + + #region ConnectList + + if (jobject.ParseString(RevitJsonProp.Connects, out string connectString)) + { + var connectList = JsonHelper.Json2Object<List<RevitJsonConnectModel>>(connectString); + elbow.ConnectList = connectList?.Select(x => new Model.RevitConnect() + { + Id = x.ConnectId, + Direction = x.Dirction, + Position = new Model.RevitPosition() + { + X = x.Point.X / 1000f, + Y = x.Point.Y / 1000f, + Z = x.Point.Z / 1000f + } + }).ToList(); + if (elbow.ConnectList == null || elbow.ConnectList.Count < 1) + { + elbow.AppendOrUpdatePropStatus(nameof(elbow.ConnectList), ePropStatus.Error, "[杩炴帴鍒楄〃]瑙f瀽澶辫触"); + } + } + else + { + elbow.AppendOrUpdatePropStatus(nameof(elbow.ConnectList), ePropStatus.Error, "缂哄皯[杩炴帴鍒楄〃]"); + } + + #endregion + + #region Quality + if (jobject[RevitJsonProp.Quality].MatchNumeric(out double quality)) { elbow.Quality = quality; + if (elbow.Quality <= 0) + { + elbow.AppendOrUpdatePropStatus(nameof(elbow.Quality), ePropStatus.Lack, "[鍒濆姘磋川]缂虹渷"); + } + } + else + { + elbow.AppendOrUpdatePropStatus(nameof(elbow.Quality), ePropStatus.Abnormal, "[鍒濆姘磋川]寮傚父锛屽彲鑳芥槸缂哄皯鎴栨牸寮忛敊璇�"); } - //鏍囬珮淇℃伅 + #endregion + + #region Position + + elbow.Position = elbow.ConnectList?.GetCenterPosition(); + if (elbow.Position == null) + { + elbow.AppendOrUpdatePropStatus(nameof(elbow.Position), ePropStatus.Lack, "[浣嶇疆]缂虹渷锛屽彲鑳芥槸鍙梉杩炴帴鍒楄〃]瑙f瀽澶辫触褰卞搷"); + } + + #endregion + + #region Elev + if (jobject[RevitJsonProp.Elev].MatchNumeric(out double elev)) { elbow.Elev = elev / 1000f; } + else + { + elbow.AppendOrUpdatePropStatus(nameof(elbow.Elev), ePropStatus.Abnormal, "[鏍囬珮淇℃伅]缂哄皯鎴栬�呮牸寮忛敊璇�"); + } + if (elbow.Elev <= 0) { - //鏍囬珮涓殑楂樼▼ - var jobjectElevOfElevation = jobject[RevitJsonProp.ElevOfElevation]; - if (jobjectElevOfElevation != null) + if (jobject[RevitJsonProp.ElevOfElevation].MatchNumeric(out double elevOfElevation)) { - if (jobjectElevOfElevation.MatchNumeric(out double elevOfElevation)) - { - elbow.Elev = elevOfElevation / 1000f; - } + elbow.Elev = elevOfElevation / 1000f; + } + else + { + elbow.AppendOrUpdatePropStatus(nameof(elbow.Elev), ePropStatus.Abnormal, "[鏍囬珮涓殑楂樼▼]缂哄皯鎴栬�呮牸寮忛敊璇�"); } } + if (elbow.Elev <= 0) { //閫氳繃z杞磋嚜鍔ㄨ绠� - elbow.Elev = elbow.Position.Z; + if (elbow.Position == null) + { + elbow.AppendOrUpdatePropStatus(nameof(elbow.Elev), ePropStatus.Lack, "[鏍囬珮]缂虹渷锛屽彈[浣嶇疆]褰卞搷锛屾棤娉曢�氳繃Z杞磋嚜鍔ㄨ绠�"); + } + else + { + elbow.Elev = elbow.Position.Z; + elbow.AppendOrUpdatePropStatus(nameof(elbow.Elev), ePropStatus.Lack, "[鏍囬珮]缂虹渷锛岄�氳繃Z杞磋嚜鍔ㄨ绠�"); + } } - //闇�姘撮噺 + #endregion + + #region Demand + if (jobject[RevitJsonProp.Demand].MatchNumeric(out double demand)) { elbow.Demand = demand; } + else + { + elbow.AppendOrUpdatePropStatus(nameof(elbow.Demand), ePropStatus.Abnormal, "[闇�姘撮噺]缂哄皯鎴栬�呮暟鎹牸寮忛敊璇�"); + } - //闇�姘存ā寮� - elbow.DemandPattern = jobject[RevitJsonProp.DemandPattern].ToString(); + #endregion + + #region DemandPattern + + if (jobject.ParseString(RevitJsonProp.DemandPattern, out string demandPattern)) + { + elbow.DemandPattern = demandPattern; + if (string.IsNullOrEmpty(elbow.DemandPattern)) + { + elbow.AppendOrUpdatePropStatus(nameof(elbow.DemandPattern), ePropStatus.Lack, "[闇�姘存ā寮廬缂虹渷"); + } + } + else + { + elbow.AppendOrUpdatePropStatus(nameof(elbow.DemandPattern), ePropStatus.Abnormal, "缂哄皯[闇�姘存ā寮廬"); + } + + #endregion + + #region Material + + if (jobject.ParseString(RevitJsonProp.Material, out string material)) + { + elbow.Material = material; + if (string.IsNullOrEmpty(elbow.Material)) + { + elbow.AppendOrUpdatePropStatus(nameof(elbow.Material), ePropStatus.Lack, "[鏉愯川]缂虹渷"); + } + } + else + { + elbow.AppendOrUpdatePropStatus(nameof(elbow.Material), ePropStatus.Abnormal, "缂哄皯[鏉愯川]"); + } + + #endregion + + #region Caliber + + if (jobject[RevitJsonProp.Caliber].MatchNumeric(out double caliber)) + { + elbow.Caliber = caliber; + } + else + { + elbow.AppendOrUpdatePropStatus(nameof(elbow.Caliber), ePropStatus.Abnormal, "[鍙e緞]缂哄皯鎴栬�呮暟鎹牸寮忛敊璇�"); + } + + #endregion + + #region MinorLoss + + if (jobject[RevitJsonProp.MinorLoss].MatchNumeric(out double minorLoss)) + { + elbow.MinorLoss = minorLoss; + } + else + { + elbow.AppendOrUpdatePropStatus(nameof(elbow.MinorLoss), ePropStatus.Abnormal, "[灞�閮ㄩ樆鍔涚郴鏁癩缂哄皯鎴栬�呮暟鎹牸寮忛敊璇�"); + } + + #endregion return elbow; } @@ -595,69 +1593,269 @@ return default; } - //鍩烘湰淇℃伅 var threelink = new Model.RevitThreelink(); - threelink.Id = jobject[RevitJsonProp.Id].ToString(); - threelink.Code = jobject[RevitJsonProp.Code].ToString(); - if (string.IsNullOrEmpty(threelink.Code)) - { - threelink.Code = threelink.Id; - } - threelink.Name = jobject[RevitJsonProp.Name].ToString(); - threelink.ModelType = jobject[RevitJsonProp.ModelType].ToString(); - threelink.Flags = Yw.Untity.FlagsHelper.ToList(jobject[RevitJsonProp.Flags].ToString()); - threelink.Description = jobject[RevitJsonProp.Description].ToString(); - var connectList = JsonHelper.Json2Object<List<RevitJsonConnectModel>>(jobject[RevitJsonProp.Connects].ToString()); - threelink.ConnectList = connectList?.Select(x => new Model.RevitConnect() - { - Id = x.ConnectId, - Direction = x.Dirction, - Position = new Model.RevitPosition() - { - X = x.Point.X / 1000f, - Y = x.Point.Y / 1000f, - Z = x.Point.Z / 1000f - } - }).ToList(); - threelink.Position = threelink.ConnectList.GetCenterPosition(); - //鍒濆姘磋川 + #region Id + + if (jobject.ParseString(RevitJsonProp.Id, out string id)) + { + threelink.Id = id; + } + else + { + threelink.AppendOrUpdatePropStatus(nameof(threelink.Id), ePropStatus.Error, "缂哄皯[鏋勪欢缂栫爜]"); + } + + #endregion + + #region Code + + if (jobject.ParseString(RevitJsonProp.Code, out string code)) + { + threelink.Code = code; + if (string.IsNullOrEmpty(threelink.Code)) + { + threelink.Code = threelink.Id; + threelink.AppendOrUpdatePropStatus(nameof(threelink.Code), ePropStatus.Lack, "浣跨敤[鏋勪欢缂栫爜]璧嬪��"); + } + } + else + { + threelink.AppendOrUpdatePropStatus(nameof(threelink.Code), ePropStatus.Error, "缂哄皯[缂栫爜]"); + } + + #endregion + + #region Name + + if (jobject.ParseString(RevitJsonProp.Name, out string name)) + { + threelink.Name = name; + threelink.AppendOrUpdatePropStatus(nameof(threelink.Name), ePropStatus.Lack, "[鍚嶇О]缂虹渷"); + } + else + { + threelink.AppendOrUpdatePropStatus(nameof(threelink.Name), ePropStatus.Error, "缂哄皯 [鍚嶇О]"); + } + + #endregion + + #region ModelType + + if (jobject.ParseString(RevitJsonProp.ModelType, out string modelType)) + { + threelink.ModelType = modelType; + if (string.IsNullOrEmpty(threelink.ModelType)) + { + threelink.AppendOrUpdatePropStatus(nameof(threelink.ModelType), ePropStatus.Lack, "[鍨嬪彿淇℃伅]缂虹渷"); + } + } + else + { + threelink.AppendOrUpdatePropStatus(nameof(threelink.ModelType), ePropStatus.Error, "缂哄皯[鍨嬪彿淇℃伅]"); + } + + #endregion + + #region Flags + + if (jobject.ParseString(RevitJsonProp.Flags, out string flags)) + { + threelink.Flags = Yw.Untity.FlagsHelper.ToList(flags); + if (!string.IsNullOrEmpty(flags)) + { + if (threelink.Flags == null || threelink.Flags.Count < 1) + { + threelink.AppendOrUpdatePropStatus(nameof(threelink.Flags), ePropStatus.Abnormal, "[鏍囩]鏍煎紡閿欒"); + } + } + } + else + { + threelink.AppendOrUpdatePropStatus(nameof(threelink.Flags), ePropStatus.Error, "缂哄皯[鏍囩]"); + } + + #endregion + + #region Description + + if (jobject.ParseString(RevitJsonProp.Description, out string description)) + { + threelink.Description = description; + } + else + { + threelink.AppendOrUpdatePropStatus(nameof(threelink.Description), ePropStatus.Error, "缂哄皯[璇存槑淇℃伅]"); + } + + #endregion + + #region ConnectList + + if (jobject.ParseString(RevitJsonProp.Connects, out string connectString)) + { + var connectList = JsonHelper.Json2Object<List<RevitJsonConnectModel>>(connectString); + threelink.ConnectList = connectList?.Select(x => new Model.RevitConnect() + { + Id = x.ConnectId, + Direction = x.Dirction, + Position = new Model.RevitPosition() + { + X = x.Point.X / 1000f, + Y = x.Point.Y / 1000f, + Z = x.Point.Z / 1000f + } + }).ToList(); + if (threelink.ConnectList == null || threelink.ConnectList.Count < 1) + { + threelink.AppendOrUpdatePropStatus(nameof(threelink.ConnectList), ePropStatus.Error, "[杩炴帴鍒楄〃]瑙f瀽澶辫触"); + } + } + else + { + threelink.AppendOrUpdatePropStatus(nameof(threelink.ConnectList), ePropStatus.Error, "缂哄皯[杩炴帴鍒楄〃]"); + } + + #endregion + + #region Quality + if (jobject[RevitJsonProp.Quality].MatchNumeric(out double quality)) { threelink.Quality = quality; + if (threelink.Quality <= 0) + { + threelink.AppendOrUpdatePropStatus(nameof(threelink.Quality), ePropStatus.Lack, "[鍒濆姘磋川]缂虹渷"); + } + } + else + { + threelink.AppendOrUpdatePropStatus(nameof(threelink.Quality), ePropStatus.Abnormal, "[鍒濆姘磋川]寮傚父锛屽彲鑳芥槸缂哄皯鎴栨牸寮忛敊璇�"); } - //鏍囬珮淇℃伅 + #endregion + + #region Position + + threelink.Position = threelink.ConnectList?.GetCenterPosition(); + if (threelink.Position == null) + { + threelink.AppendOrUpdatePropStatus(nameof(threelink.Position), ePropStatus.Lack, "[浣嶇疆]缂虹渷锛屽彲鑳芥槸鍙梉杩炴帴鍒楄〃]瑙f瀽澶辫触褰卞搷"); + } + + #endregion + + #region Elev + if (jobject[RevitJsonProp.Elev].MatchNumeric(out double elev)) { threelink.Elev = elev / 1000f; } + else + { + threelink.AppendOrUpdatePropStatus(nameof(threelink.Elev), ePropStatus.Abnormal, "[鏍囬珮淇℃伅]缂哄皯鎴栬�呮牸寮忛敊璇�"); + } + if (threelink.Elev <= 0) { - //鏍囬珮涓殑楂樼▼ - var jobjectElevOfElevation = jobject[RevitJsonProp.ElevOfElevation]; - if (jobjectElevOfElevation != null) + if (jobject[RevitJsonProp.ElevOfElevation].MatchNumeric(out double elevOfElevation)) { - if (jobjectElevOfElevation.MatchNumeric(out double elevOfElevation)) - { - threelink.Elev = elevOfElevation / 1000f; - } + threelink.Elev = elevOfElevation / 1000f; + } + else + { + threelink.AppendOrUpdatePropStatus(nameof(threelink.Elev), ePropStatus.Abnormal, "[鏍囬珮涓殑楂樼▼]缂哄皯鎴栬�呮牸寮忛敊璇�"); } } + if (threelink.Elev <= 0) { //閫氳繃z杞磋嚜鍔ㄨ绠� - threelink.Elev = threelink.Position.Z; + if (threelink.Position == null) + { + threelink.AppendOrUpdatePropStatus(nameof(threelink.Elev), ePropStatus.Lack, "[鏍囬珮]缂虹渷锛屽彈[浣嶇疆]褰卞搷锛屾棤娉曢�氳繃Z杞磋嚜鍔ㄨ绠�"); + } + else + { + threelink.Elev = threelink.Position.Z; + threelink.AppendOrUpdatePropStatus(nameof(threelink.Elev), ePropStatus.Lack, "[鏍囬珮]缂虹渷锛岄�氳繃Z杞磋嚜鍔ㄨ绠�"); + } } - //闇�姘撮噺 + #endregion + + #region Demand + if (jobject[RevitJsonProp.Demand].MatchNumeric(out double demand)) { threelink.Demand = demand; } + else + { + threelink.AppendOrUpdatePropStatus(nameof(threelink.Demand), ePropStatus.Abnormal, "[闇�姘撮噺]缂哄皯鎴栬�呮暟鎹牸寮忛敊璇�"); + } - //闇�姘存ā寮� - threelink.DemandPattern = jobject[RevitJsonProp.DemandPattern].ToString(); + #endregion + + #region DemandPattern + + if (jobject.ParseString(RevitJsonProp.DemandPattern, out string demandPattern)) + { + threelink.DemandPattern = demandPattern; + if (string.IsNullOrEmpty(threelink.DemandPattern)) + { + threelink.AppendOrUpdatePropStatus(nameof(threelink.DemandPattern), ePropStatus.Lack, "[闇�姘存ā寮廬缂虹渷"); + } + } + else + { + threelink.AppendOrUpdatePropStatus(nameof(threelink.DemandPattern), ePropStatus.Abnormal, "缂哄皯[闇�姘存ā寮廬"); + } + + #endregion + + #region Material + + if (jobject.ParseString(RevitJsonProp.Material, out string material)) + { + threelink.Material = material; + if (string.IsNullOrEmpty(threelink.Material)) + { + threelink.AppendOrUpdatePropStatus(nameof(threelink.Material), ePropStatus.Lack, "[鏉愯川]缂虹渷"); + } + } + else + { + threelink.AppendOrUpdatePropStatus(nameof(threelink.Material), ePropStatus.Abnormal, "缂哄皯[鏉愯川]"); + } + + #endregion + + #region Caliber + + if (jobject[RevitJsonProp.Caliber].MatchNumeric(out double caliber)) + { + threelink.Caliber = caliber; + } + else + { + threelink.AppendOrUpdatePropStatus(nameof(threelink.Caliber), ePropStatus.Abnormal, "[鍙e緞]缂哄皯鎴栬�呮暟鎹牸寮忛敊璇�"); + } + + #endregion + + #region MinorLoss + + if (jobject[RevitJsonProp.MinorLoss].MatchNumeric(out double minorLoss)) + { + threelink.MinorLoss = minorLoss; + } + else + { + threelink.AppendOrUpdatePropStatus(nameof(threelink.MinorLoss), ePropStatus.Abnormal, "[灞�閮ㄩ樆鍔涚郴鏁癩缂哄皯鎴栬�呮暟鎹牸寮忛敊璇�"); + } + + #endregion return threelink; } @@ -670,146 +1868,271 @@ return default; } - //鍩烘湰淇℃伅 var fourlink = new Model.RevitFourlink(); - fourlink.Id = jobject[RevitJsonProp.Id].ToString(); - fourlink.Code = jobject[RevitJsonProp.Code].ToString(); - if (string.IsNullOrEmpty(fourlink.Code)) - { - fourlink.Code = fourlink.Id; - } - fourlink.Name = jobject[RevitJsonProp.Name].ToString(); - fourlink.ModelType = jobject[RevitJsonProp.ModelType].ToString(); - fourlink.Flags = Yw.Untity.FlagsHelper.ToList(jobject[RevitJsonProp.Flags].ToString()); - fourlink.Description = jobject[RevitJsonProp.Description].ToString(); - var connectList = JsonHelper.Json2Object<List<RevitJsonConnectModel>>(jobject[RevitJsonProp.Connects].ToString()); - fourlink.ConnectList = connectList?.Select(x => new Model.RevitConnect() - { - Id = x.ConnectId, - Direction = x.Dirction, - Position = new Model.RevitPosition() - { - X = x.Point.X / 1000f, - Y = x.Point.Y / 1000f, - Z = x.Point.Z / 1000f - } - }).ToList(); - fourlink.Position = fourlink.ConnectList.GetCenterPosition(); - //鍒濆姘磋川 + #region Id + + if (jobject.ParseString(RevitJsonProp.Id, out string id)) + { + fourlink.Id = id; + } + else + { + fourlink.AppendOrUpdatePropStatus(nameof(fourlink.Id), ePropStatus.Error, "缂哄皯[鏋勪欢缂栫爜]"); + } + + #endregion + + #region Code + + if (jobject.ParseString(RevitJsonProp.Code, out string code)) + { + fourlink.Code = code; + if (string.IsNullOrEmpty(fourlink.Code)) + { + fourlink.Code = fourlink.Id; + fourlink.AppendOrUpdatePropStatus(nameof(fourlink.Code), ePropStatus.Lack, "浣跨敤[鏋勪欢缂栫爜]璧嬪��"); + } + } + else + { + fourlink.AppendOrUpdatePropStatus(nameof(fourlink.Code), ePropStatus.Error, "缂哄皯[缂栫爜]"); + } + + #endregion + + #region Name + + if (jobject.ParseString(RevitJsonProp.Name, out string name)) + { + fourlink.Name = name; + fourlink.AppendOrUpdatePropStatus(nameof(fourlink.Name), ePropStatus.Lack, "[鍚嶇О]缂虹渷"); + } + else + { + fourlink.AppendOrUpdatePropStatus(nameof(fourlink.Name), ePropStatus.Error, "缂哄皯 [鍚嶇О]"); + } + + #endregion + + #region ModelType + + if (jobject.ParseString(RevitJsonProp.ModelType, out string modelType)) + { + fourlink.ModelType = modelType; + if (string.IsNullOrEmpty(fourlink.ModelType)) + { + fourlink.AppendOrUpdatePropStatus(nameof(fourlink.ModelType), ePropStatus.Lack, "[鍨嬪彿淇℃伅]缂虹渷"); + } + } + else + { + fourlink.AppendOrUpdatePropStatus(nameof(fourlink.ModelType), ePropStatus.Error, "缂哄皯[鍨嬪彿淇℃伅]"); + } + + #endregion + + #region Flags + + if (jobject.ParseString(RevitJsonProp.Flags, out string flags)) + { + fourlink.Flags = Yw.Untity.FlagsHelper.ToList(flags); + if (!string.IsNullOrEmpty(flags)) + { + if (fourlink.Flags == null || fourlink.Flags.Count < 1) + { + fourlink.AppendOrUpdatePropStatus(nameof(fourlink.Flags), ePropStatus.Abnormal, "[鏍囩]鏍煎紡閿欒"); + } + } + } + else + { + fourlink.AppendOrUpdatePropStatus(nameof(fourlink.Flags), ePropStatus.Error, "缂哄皯[鏍囩]"); + } + + #endregion + + #region Description + + if (jobject.ParseString(RevitJsonProp.Description, out string description)) + { + fourlink.Description = description; + } + else + { + fourlink.AppendOrUpdatePropStatus(nameof(fourlink.Description), ePropStatus.Error, "缂哄皯[璇存槑淇℃伅]"); + } + + #endregion + + #region ConnectList + + if (jobject.ParseString(RevitJsonProp.Connects, out string connectString)) + { + var connectList = JsonHelper.Json2Object<List<RevitJsonConnectModel>>(connectString); + fourlink.ConnectList = connectList?.Select(x => new Model.RevitConnect() + { + Id = x.ConnectId, + Direction = x.Dirction, + Position = new Model.RevitPosition() + { + X = x.Point.X / 1000f, + Y = x.Point.Y / 1000f, + Z = x.Point.Z / 1000f + } + }).ToList(); + if (fourlink.ConnectList == null || fourlink.ConnectList.Count < 1) + { + fourlink.AppendOrUpdatePropStatus(nameof(fourlink.ConnectList), ePropStatus.Error, "[杩炴帴鍒楄〃]瑙f瀽澶辫触"); + } + } + else + { + fourlink.AppendOrUpdatePropStatus(nameof(fourlink.ConnectList), ePropStatus.Error, "缂哄皯[杩炴帴鍒楄〃]"); + } + + #endregion + + #region Quality + if (jobject[RevitJsonProp.Quality].MatchNumeric(out double quality)) { fourlink.Quality = quality; + if (fourlink.Quality <= 0) + { + fourlink.AppendOrUpdatePropStatus(nameof(fourlink.Quality), ePropStatus.Lack, "[鍒濆姘磋川]缂虹渷"); + } + } + else + { + fourlink.AppendOrUpdatePropStatus(nameof(fourlink.Quality), ePropStatus.Abnormal, "[鍒濆姘磋川]寮傚父锛屽彲鑳芥槸缂哄皯鎴栨牸寮忛敊璇�"); } - //鏍囬珮淇℃伅 + #endregion + + #region Position + + fourlink.Position = fourlink.ConnectList?.GetCenterPosition(); + if (fourlink.Position == null) + { + fourlink.AppendOrUpdatePropStatus(nameof(fourlink.Position), ePropStatus.Lack, "[浣嶇疆]缂虹渷锛屽彲鑳芥槸鍙梉杩炴帴鍒楄〃]瑙f瀽澶辫触褰卞搷"); + } + + #endregion + + #region Elev + if (jobject[RevitJsonProp.Elev].MatchNumeric(out double elev)) { fourlink.Elev = elev / 1000f; } + else + { + fourlink.AppendOrUpdatePropStatus(nameof(fourlink.Elev), ePropStatus.Abnormal, "[鏍囬珮淇℃伅]缂哄皯鎴栬�呮牸寮忛敊璇�"); + } + if (fourlink.Elev <= 0) { - //鏍囬珮涓殑楂樼▼ - var jobjectElevOfElevation = jobject[RevitJsonProp.ElevOfElevation]; - if (jobjectElevOfElevation != null) + if (jobject[RevitJsonProp.ElevOfElevation].MatchNumeric(out double elevOfElevation)) { - if (jobjectElevOfElevation.MatchNumeric(out double elevOfElevation)) - { - fourlink.Elev = elevOfElevation / 1000f; - } + fourlink.Elev = elevOfElevation / 1000f; + } + else + { + fourlink.AppendOrUpdatePropStatus(nameof(fourlink.Elev), ePropStatus.Abnormal, "[鏍囬珮涓殑楂樼▼]缂哄皯鎴栬�呮牸寮忛敊璇�"); } } + if (fourlink.Elev <= 0) { //閫氳繃z杞磋嚜鍔ㄨ绠� - fourlink.Elev = fourlink.Position.Z; + if (fourlink.Position == null) + { + fourlink.AppendOrUpdatePropStatus(nameof(fourlink.Elev), ePropStatus.Lack, "[鏍囬珮]缂虹渷锛屽彈[浣嶇疆]褰卞搷锛屾棤娉曢�氳繃Z杞磋嚜鍔ㄨ绠�"); + } + else + { + fourlink.Elev = fourlink.Position.Z; + fourlink.AppendOrUpdatePropStatus(nameof(fourlink.Elev), ePropStatus.Lack, "[鏍囬珮]缂虹渷锛岄�氳繃Z杞磋嚜鍔ㄨ绠�"); + } } - //闇�姘撮噺 + #endregion + + #region Demand + if (jobject[RevitJsonProp.Demand].MatchNumeric(out double demand)) { fourlink.Demand = demand; } + else + { + fourlink.AppendOrUpdatePropStatus(nameof(fourlink.Demand), ePropStatus.Abnormal, "[闇�姘撮噺]缂哄皯鎴栬�呮暟鎹牸寮忛敊璇�"); + } - //闇�姘存ā寮� - fourlink.DemandPattern = jobject[RevitJsonProp.DemandPattern].ToString(); + #endregion + + #region DemandPattern + + if (jobject.ParseString(RevitJsonProp.DemandPattern, out string demandPattern)) + { + fourlink.DemandPattern = demandPattern; + if (string.IsNullOrEmpty(fourlink.DemandPattern)) + { + fourlink.AppendOrUpdatePropStatus(nameof(fourlink.DemandPattern), ePropStatus.Lack, "[闇�姘存ā寮廬缂虹渷"); + } + } + else + { + fourlink.AppendOrUpdatePropStatus(nameof(fourlink.DemandPattern), ePropStatus.Abnormal, "缂哄皯[闇�姘存ā寮廬"); + } + + #endregion + + #region Material + + if (jobject.ParseString(RevitJsonProp.Material, out string material)) + { + fourlink.Material = material; + if (string.IsNullOrEmpty(fourlink.Material)) + { + fourlink.AppendOrUpdatePropStatus(nameof(fourlink.Material), ePropStatus.Lack, "[鏉愯川]缂虹渷"); + } + } + else + { + fourlink.AppendOrUpdatePropStatus(nameof(fourlink.Material), ePropStatus.Abnormal, "缂哄皯[鏉愯川]"); + } + + #endregion + + #region Caliber + + if (jobject[RevitJsonProp.Caliber].MatchNumeric(out double caliber)) + { + fourlink.Caliber = caliber; + } + else + { + fourlink.AppendOrUpdatePropStatus(nameof(fourlink.Caliber), ePropStatus.Abnormal, "[鍙e緞]缂哄皯鎴栬�呮暟鎹牸寮忛敊璇�"); + } + + #endregion + + #region MinorLoss + + if (jobject[RevitJsonProp.MinorLoss].MatchNumeric(out double minorLoss)) + { + fourlink.MinorLoss = minorLoss; + } + else + { + fourlink.AppendOrUpdatePropStatus(nameof(fourlink.MinorLoss), ePropStatus.Abnormal, "[灞�閮ㄩ樆鍔涚郴鏁癩缂哄皯鎴栬�呮暟鎹牸寮忛敊璇�"); + } + + #endregion return fourlink; - } - - //瑙f瀽闂峰ご - private static HStation.Model.RevitBlunthead ParseBlunthead(JToken jobject) - { - if (jobject == null) - { - return default; - } - - //鍩烘湰淇℃伅 - var blunthead = new Model.RevitBlunthead(); - blunthead.Id = jobject[RevitJsonProp.Id].ToString(); - blunthead.Code = jobject[RevitJsonProp.Code].ToString(); - if (string.IsNullOrEmpty(blunthead.Code)) - { - blunthead.Code = blunthead.Id; - } - blunthead.Name = jobject[RevitJsonProp.Name].ToString(); - blunthead.ModelType = jobject[RevitJsonProp.ModelType].ToString(); - blunthead.Flags = Yw.Untity.FlagsHelper.ToList(jobject[RevitJsonProp.Flags].ToString()); - blunthead.Description = jobject[RevitJsonProp.Description].ToString(); - var connectList = JsonHelper.Json2Object<List<RevitJsonConnectModel>>(jobject[RevitJsonProp.Connects].ToString()); - blunthead.ConnectList = connectList?.Select(x => new Model.RevitConnect() - { - Id = x.ConnectId, - Direction = x.Dirction, - Position = new Model.RevitPosition() - { - X = x.Point.X / 1000f, - Y = x.Point.Y / 1000f, - Z = x.Point.Z / 1000f - } - }).ToList(); - blunthead.Position = blunthead.ConnectList.GetCenterPosition(); - - //鍒濆姘磋川 - if (jobject[RevitJsonProp.Quality].MatchNumeric(out double quality)) - { - blunthead.Quality = quality; - } - - //鏍囬珮淇℃伅 - if (jobject[RevitJsonProp.Elev].MatchNumeric(out double elev)) - { - blunthead.Elev = elev / 1000f; - } - if (blunthead.Elev <= 0) - { - //鏍囬珮涓殑楂樼▼ - var jobjectElevOfElevation = jobject[RevitJsonProp.ElevOfElevation]; - if (jobjectElevOfElevation != null) - { - if (jobjectElevOfElevation.MatchNumeric(out double elevOfElevation)) - { - blunthead.Elev = elevOfElevation / 1000f; - } - } - } - if (blunthead.Elev <= 0) - { - //閫氳繃z杞磋嚜鍔ㄨ绠� - blunthead.Elev = blunthead.Position.Z; - } - - //闇�姘撮噺 - if (jobject[RevitJsonProp.Demand].MatchNumeric(out double demand)) - { - blunthead.Demand = demand; - } - - //闇�姘存ā寮� - blunthead.DemandPattern = jobject[RevitJsonProp.DemandPattern].ToString(); - - return blunthead; } //瑙f瀽姘磋〃 @@ -820,69 +2143,226 @@ return default; } - //鍩烘湰淇℃伅 var meter = new Model.RevitMeter(); - meter.Id = jobject[RevitJsonProp.Id].ToString(); - meter.Code = jobject[RevitJsonProp.Code].ToString(); - if (string.IsNullOrEmpty(meter.Code)) - { - meter.Code = meter.Id; - } - meter.Name = jobject[RevitJsonProp.Name].ToString(); - meter.ModelType = jobject[RevitJsonProp.ModelType].ToString(); - meter.Flags = Yw.Untity.FlagsHelper.ToList(jobject[RevitJsonProp.Flags].ToString()); - meter.Description = jobject[RevitJsonProp.Description].ToString(); - var connectList = JsonHelper.Json2Object<List<RevitJsonConnectModel>>(jobject[RevitJsonProp.Connects].ToString()); - meter.ConnectList = connectList?.Select(x => new Model.RevitConnect() - { - Id = x.ConnectId, - Direction = x.Dirction, - Position = new Model.RevitPosition() - { - X = x.Point.X / 1000f, - Y = x.Point.Y / 1000f, - Z = x.Point.Z / 1000f - } - }).ToList(); - meter.Position = meter.ConnectList.GetCenterPosition(); - //鍒濆姘磋川 + #region Id + + if (jobject.ParseString(RevitJsonProp.Id, out string id)) + { + meter.Id = id; + } + else + { + meter.AppendOrUpdatePropStatus(nameof(meter.Id), ePropStatus.Error, "缂哄皯[鏋勪欢缂栫爜]"); + } + + #endregion + + #region Code + + if (jobject.ParseString(RevitJsonProp.Code, out string code)) + { + meter.Code = code; + if (string.IsNullOrEmpty(meter.Code)) + { + meter.Code = meter.Id; + meter.AppendOrUpdatePropStatus(nameof(meter.Code), ePropStatus.Lack, "浣跨敤[鏋勪欢缂栫爜]璧嬪��"); + } + } + else + { + meter.AppendOrUpdatePropStatus(nameof(meter.Code), ePropStatus.Error, "缂哄皯[缂栫爜]"); + } + + #endregion + + #region Name + + if (jobject.ParseString(RevitJsonProp.Name, out string name)) + { + meter.Name = name; + meter.AppendOrUpdatePropStatus(nameof(meter.Name), ePropStatus.Lack, "[鍚嶇О]缂虹渷"); + } + else + { + meter.AppendOrUpdatePropStatus(nameof(meter.Name), ePropStatus.Error, "缂哄皯 [鍚嶇О]"); + } + + #endregion + + #region ModelType + + if (jobject.ParseString(RevitJsonProp.ModelType, out string modelType)) + { + meter.ModelType = modelType; + if (string.IsNullOrEmpty(meter.ModelType)) + { + meter.AppendOrUpdatePropStatus(nameof(meter.ModelType), ePropStatus.Lack, "[鍨嬪彿淇℃伅]缂虹渷"); + } + } + else + { + meter.AppendOrUpdatePropStatus(nameof(meter.ModelType), ePropStatus.Error, "缂哄皯[鍨嬪彿淇℃伅]"); + } + + #endregion + + #region Flags + + if (jobject.ParseString(RevitJsonProp.Flags, out string flags)) + { + meter.Flags = Yw.Untity.FlagsHelper.ToList(flags); + if (!string.IsNullOrEmpty(flags)) + { + if (meter.Flags == null || meter.Flags.Count < 1) + { + meter.AppendOrUpdatePropStatus(nameof(meter.Flags), ePropStatus.Abnormal, "[鏍囩]鏍煎紡閿欒"); + } + } + } + else + { + meter.AppendOrUpdatePropStatus(nameof(meter.Flags), ePropStatus.Error, "缂哄皯[鏍囩]"); + } + + #endregion + + #region Description + + if (jobject.ParseString(RevitJsonProp.Description, out string description)) + { + meter.Description = description; + } + else + { + meter.AppendOrUpdatePropStatus(nameof(meter.Description), ePropStatus.Error, "缂哄皯[璇存槑淇℃伅]"); + } + + #endregion + + #region ConnectList + + if (jobject.ParseString(RevitJsonProp.Connects, out string connectString)) + { + var connectList = JsonHelper.Json2Object<List<RevitJsonConnectModel>>(connectString); + meter.ConnectList = connectList?.Select(x => new Model.RevitConnect() + { + Id = x.ConnectId, + Direction = x.Dirction, + Position = new Model.RevitPosition() + { + X = x.Point.X / 1000f, + Y = x.Point.Y / 1000f, + Z = x.Point.Z / 1000f + } + }).ToList(); + if (meter.ConnectList == null || meter.ConnectList.Count < 1) + { + meter.AppendOrUpdatePropStatus(nameof(meter.ConnectList), ePropStatus.Error, "[杩炴帴鍒楄〃]瑙f瀽澶辫触"); + } + } + else + { + meter.AppendOrUpdatePropStatus(nameof(meter.ConnectList), ePropStatus.Error, "缂哄皯[杩炴帴鍒楄〃]"); + } + + #endregion + + #region Quality + if (jobject[RevitJsonProp.Quality].MatchNumeric(out double quality)) { meter.Quality = quality; + if (meter.Quality <= 0) + { + meter.AppendOrUpdatePropStatus(nameof(meter.Quality), ePropStatus.Lack, "[鍒濆姘磋川]缂虹渷"); + } + } + else + { + meter.AppendOrUpdatePropStatus(nameof(meter.Quality), ePropStatus.Abnormal, "[鍒濆姘磋川]寮傚父锛屽彲鑳芥槸缂哄皯鎴栨牸寮忛敊璇�"); } - //鏍囬珮淇℃伅 + #endregion + + #region Position + + meter.Position = meter.ConnectList?.GetCenterPosition(); + if (meter.Position == null) + { + meter.AppendOrUpdatePropStatus(nameof(meter.Position), ePropStatus.Lack, "[浣嶇疆]缂虹渷锛屽彲鑳芥槸鍙梉杩炴帴鍒楄〃]瑙f瀽澶辫触褰卞搷"); + } + + #endregion + + #region Elev + if (jobject[RevitJsonProp.Elev].MatchNumeric(out double elev)) { meter.Elev = elev / 1000f; } + else + { + meter.AppendOrUpdatePropStatus(nameof(meter.Elev), ePropStatus.Abnormal, "[鏍囬珮淇℃伅]缂哄皯鎴栬�呮牸寮忛敊璇�"); + } + if (meter.Elev <= 0) { - //鏍囬珮涓殑楂樼▼ - var jobjectElevOfElevation = jobject[RevitJsonProp.ElevOfElevation]; - if (jobjectElevOfElevation != null) + if (jobject[RevitJsonProp.ElevOfElevation].MatchNumeric(out double elevOfElevation)) { - if (jobjectElevOfElevation.MatchNumeric(out double elevOfElevation)) - { - meter.Elev = elevOfElevation / 1000f; - } + meter.Elev = elevOfElevation / 1000f; + } + else + { + meter.AppendOrUpdatePropStatus(nameof(meter.Elev), ePropStatus.Abnormal, "[鏍囬珮涓殑楂樼▼]缂哄皯鎴栬�呮牸寮忛敊璇�"); } } + if (meter.Elev <= 0) { //閫氳繃z杞磋嚜鍔ㄨ绠� - meter.Elev = meter.Position.Z; + if (meter.Position == null) + { + meter.AppendOrUpdatePropStatus(nameof(meter.Elev), ePropStatus.Lack, "[鏍囬珮]缂虹渷锛屽彈[浣嶇疆]褰卞搷锛屾棤娉曢�氳繃Z杞磋嚜鍔ㄨ绠�"); + } + else + { + meter.Elev = meter.Position.Z; + meter.AppendOrUpdatePropStatus(nameof(meter.Elev), ePropStatus.Lack, "[鏍囬珮]缂虹渷锛岄�氳繃Z杞磋嚜鍔ㄨ绠�"); + } } - //闇�姘撮噺 + #endregion + + #region Demand + if (jobject[RevitJsonProp.Demand].MatchNumeric(out double demand)) { meter.Demand = demand; } + else + { + meter.AppendOrUpdatePropStatus(nameof(meter.Demand), ePropStatus.Abnormal, "[闇�姘撮噺]缂哄皯鎴栬�呮暟鎹牸寮忛敊璇�"); + } - //闇�姘存ā寮� - meter.DemandPattern = jobject[RevitJsonProp.DemandPattern].ToString(); + #endregion + + #region DemandPattern + + if (jobject.ParseString(RevitJsonProp.DemandPattern, out string demandPattern)) + { + meter.DemandPattern = demandPattern; + if (string.IsNullOrEmpty(meter.DemandPattern)) + { + meter.AppendOrUpdatePropStatus(nameof(meter.DemandPattern), ePropStatus.Lack, "[闇�姘存ā寮廬缂虹渷"); + } + } + else + { + meter.AppendOrUpdatePropStatus(nameof(meter.DemandPattern), ePropStatus.Abnormal, "缂哄皯[闇�姘存ā寮廬"); + } + + #endregion return meter; } @@ -895,69 +2375,226 @@ return default; } - //鍩烘湰淇℃伅 var flowmeter = new Model.RevitFlowmeter(); - flowmeter.Id = jobject[RevitJsonProp.Id].ToString(); - flowmeter.Code = jobject[RevitJsonProp.Code].ToString(); - if (string.IsNullOrEmpty(flowmeter.Code)) - { - flowmeter.Code = flowmeter.Id; - } - flowmeter.Name = jobject[RevitJsonProp.Name].ToString(); - flowmeter.ModelType = jobject[RevitJsonProp.ModelType].ToString(); - flowmeter.Flags = Yw.Untity.FlagsHelper.ToList(jobject[RevitJsonProp.Flags].ToString()); - flowmeter.Description = jobject[RevitJsonProp.Description].ToString(); - var connectList = JsonHelper.Json2Object<List<RevitJsonConnectModel>>(jobject[RevitJsonProp.Connects].ToString()); - flowmeter.ConnectList = connectList?.Select(x => new Model.RevitConnect() - { - Id = x.ConnectId, - Direction = x.Dirction, - Position = new Model.RevitPosition() - { - X = x.Point.X / 1000f, - Y = x.Point.Y / 1000f, - Z = x.Point.Z / 1000f - } - }).ToList(); - flowmeter.Position = flowmeter.ConnectList.GetCenterPosition(); - //鍒濆姘磋川 + #region Id + + if (jobject.ParseString(RevitJsonProp.Id, out string id)) + { + flowmeter.Id = id; + } + else + { + flowmeter.AppendOrUpdatePropStatus(nameof(flowmeter.Id), ePropStatus.Error, "缂哄皯[鏋勪欢缂栫爜]"); + } + + #endregion + + #region Code + + if (jobject.ParseString(RevitJsonProp.Code, out string code)) + { + flowmeter.Code = code; + if (string.IsNullOrEmpty(flowmeter.Code)) + { + flowmeter.Code = flowmeter.Id; + flowmeter.AppendOrUpdatePropStatus(nameof(flowmeter.Code), ePropStatus.Lack, "浣跨敤[鏋勪欢缂栫爜]璧嬪��"); + } + } + else + { + flowmeter.AppendOrUpdatePropStatus(nameof(flowmeter.Code), ePropStatus.Error, "缂哄皯[缂栫爜]"); + } + + #endregion + + #region Name + + if (jobject.ParseString(RevitJsonProp.Name, out string name)) + { + flowmeter.Name = name; + flowmeter.AppendOrUpdatePropStatus(nameof(flowmeter.Name), ePropStatus.Lack, "[鍚嶇О]缂虹渷"); + } + else + { + flowmeter.AppendOrUpdatePropStatus(nameof(flowmeter.Name), ePropStatus.Error, "缂哄皯 [鍚嶇О]"); + } + + #endregion + + #region ModelType + + if (jobject.ParseString(RevitJsonProp.ModelType, out string modelType)) + { + flowmeter.ModelType = modelType; + if (string.IsNullOrEmpty(flowmeter.ModelType)) + { + flowmeter.AppendOrUpdatePropStatus(nameof(flowmeter.ModelType), ePropStatus.Lack, "[鍨嬪彿淇℃伅]缂虹渷"); + } + } + else + { + flowmeter.AppendOrUpdatePropStatus(nameof(flowmeter.ModelType), ePropStatus.Error, "缂哄皯[鍨嬪彿淇℃伅]"); + } + + #endregion + + #region Flags + + if (jobject.ParseString(RevitJsonProp.Flags, out string flags)) + { + flowmeter.Flags = Yw.Untity.FlagsHelper.ToList(flags); + if (!string.IsNullOrEmpty(flags)) + { + if (flowmeter.Flags == null || flowmeter.Flags.Count < 1) + { + flowmeter.AppendOrUpdatePropStatus(nameof(flowmeter.Flags), ePropStatus.Abnormal, "[鏍囩]鏍煎紡閿欒"); + } + } + } + else + { + flowmeter.AppendOrUpdatePropStatus(nameof(flowmeter.Flags), ePropStatus.Error, "缂哄皯[鏍囩]"); + } + + #endregion + + #region Description + + if (jobject.ParseString(RevitJsonProp.Description, out string description)) + { + flowmeter.Description = description; + } + else + { + flowmeter.AppendOrUpdatePropStatus(nameof(flowmeter.Description), ePropStatus.Error, "缂哄皯[璇存槑淇℃伅]"); + } + + #endregion + + #region ConnectList + + if (jobject.ParseString(RevitJsonProp.Connects, out string connectString)) + { + var connectList = JsonHelper.Json2Object<List<RevitJsonConnectModel>>(connectString); + flowmeter.ConnectList = connectList?.Select(x => new Model.RevitConnect() + { + Id = x.ConnectId, + Direction = x.Dirction, + Position = new Model.RevitPosition() + { + X = x.Point.X / 1000f, + Y = x.Point.Y / 1000f, + Z = x.Point.Z / 1000f + } + }).ToList(); + if (flowmeter.ConnectList == null || flowmeter.ConnectList.Count < 1) + { + flowmeter.AppendOrUpdatePropStatus(nameof(flowmeter.ConnectList), ePropStatus.Error, "[杩炴帴鍒楄〃]瑙f瀽澶辫触"); + } + } + else + { + flowmeter.AppendOrUpdatePropStatus(nameof(flowmeter.ConnectList), ePropStatus.Error, "缂哄皯[杩炴帴鍒楄〃]"); + } + + #endregion + + #region Quality + if (jobject[RevitJsonProp.Quality].MatchNumeric(out double quality)) { flowmeter.Quality = quality; + if (flowmeter.Quality <= 0) + { + flowmeter.AppendOrUpdatePropStatus(nameof(flowmeter.Quality), ePropStatus.Lack, "[鍒濆姘磋川]缂虹渷"); + } + } + else + { + flowmeter.AppendOrUpdatePropStatus(nameof(flowmeter.Quality), ePropStatus.Abnormal, "[鍒濆姘磋川]寮傚父锛屽彲鑳芥槸缂哄皯鎴栨牸寮忛敊璇�"); } - //鏍囬珮淇℃伅 + #endregion + + #region Position + + flowmeter.Position = flowmeter.ConnectList?.GetCenterPosition(); + if (flowmeter.Position == null) + { + flowmeter.AppendOrUpdatePropStatus(nameof(flowmeter.Position), ePropStatus.Lack, "[浣嶇疆]缂虹渷锛屽彲鑳芥槸鍙梉杩炴帴鍒楄〃]瑙f瀽澶辫触褰卞搷"); + } + + #endregion + + #region Elev + if (jobject[RevitJsonProp.Elev].MatchNumeric(out double elev)) { flowmeter.Elev = elev / 1000f; } + else + { + flowmeter.AppendOrUpdatePropStatus(nameof(flowmeter.Elev), ePropStatus.Abnormal, "[鏍囬珮淇℃伅]缂哄皯鎴栬�呮牸寮忛敊璇�"); + } + if (flowmeter.Elev <= 0) { - //鏍囬珮涓殑楂樼▼ - var jobjectElevOfElevation = jobject[RevitJsonProp.ElevOfElevation]; - if (jobjectElevOfElevation != null) + if (jobject[RevitJsonProp.ElevOfElevation].MatchNumeric(out double elevOfElevation)) { - if (jobjectElevOfElevation.MatchNumeric(out double elevOfElevation)) - { - flowmeter.Elev = elevOfElevation / 1000f; - } + flowmeter.Elev = elevOfElevation / 1000f; + } + else + { + flowmeter.AppendOrUpdatePropStatus(nameof(flowmeter.Elev), ePropStatus.Abnormal, "[鏍囬珮涓殑楂樼▼]缂哄皯鎴栬�呮牸寮忛敊璇�"); } } + if (flowmeter.Elev <= 0) { //閫氳繃z杞磋嚜鍔ㄨ绠� - flowmeter.Elev = flowmeter.Position.Z; + if (flowmeter.Position == null) + { + flowmeter.AppendOrUpdatePropStatus(nameof(flowmeter.Elev), ePropStatus.Lack, "[鏍囬珮]缂虹渷锛屽彈[浣嶇疆]褰卞搷锛屾棤娉曢�氳繃Z杞磋嚜鍔ㄨ绠�"); + } + else + { + flowmeter.Elev = flowmeter.Position.Z; + flowmeter.AppendOrUpdatePropStatus(nameof(flowmeter.Elev), ePropStatus.Lack, "[鏍囬珮]缂虹渷锛岄�氳繃Z杞磋嚜鍔ㄨ绠�"); + } } - //闇�姘撮噺 + #endregion + + #region Demand + if (jobject[RevitJsonProp.Demand].MatchNumeric(out double demand)) { flowmeter.Demand = demand; } + else + { + flowmeter.AppendOrUpdatePropStatus(nameof(flowmeter.Demand), ePropStatus.Abnormal, "[闇�姘撮噺]缂哄皯鎴栬�呮暟鎹牸寮忛敊璇�"); + } - //闇�姘存ā寮� - flowmeter.DemandPattern = jobject[RevitJsonProp.DemandPattern].ToString(); + #endregion + + #region DemandPattern + + if (jobject.ParseString(RevitJsonProp.DemandPattern, out string demandPattern)) + { + flowmeter.DemandPattern = demandPattern; + if (string.IsNullOrEmpty(flowmeter.DemandPattern)) + { + flowmeter.AppendOrUpdatePropStatus(nameof(flowmeter.DemandPattern), ePropStatus.Lack, "[闇�姘存ā寮廬缂虹渷"); + } + } + else + { + flowmeter.AppendOrUpdatePropStatus(nameof(flowmeter.DemandPattern), ePropStatus.Abnormal, "缂哄皯[闇�姘存ā寮廬"); + } + + #endregion return flowmeter; } @@ -970,69 +2607,226 @@ return default; } - //鍩烘湰淇℃伅 var pressmeter = new Model.RevitPressmeter(); - pressmeter.Id = jobject[RevitJsonProp.Id].ToString(); - pressmeter.Code = jobject[RevitJsonProp.Code].ToString(); - if (string.IsNullOrEmpty(pressmeter.Code)) - { - pressmeter.Code = pressmeter.Id; - } - pressmeter.Name = jobject[RevitJsonProp.Name].ToString(); - pressmeter.ModelType = jobject[RevitJsonProp.ModelType].ToString(); - pressmeter.Flags = Yw.Untity.FlagsHelper.ToList(jobject[RevitJsonProp.Flags].ToString()); - pressmeter.Description = jobject[RevitJsonProp.Description].ToString(); - var connectList = JsonHelper.Json2Object<List<RevitJsonConnectModel>>(jobject[RevitJsonProp.Connects].ToString()); - pressmeter.ConnectList = connectList?.Select(x => new Model.RevitConnect() - { - Id = x.ConnectId, - Direction = x.Dirction, - Position = new Model.RevitPosition() - { - X = x.Point.X / 1000f, - Y = x.Point.Y / 1000f, - Z = x.Point.Z / 1000f - } - }).ToList(); - pressmeter.Position = pressmeter.ConnectList.GetCenterPosition(); - //鍒濆姘磋川 + #region Id + + if (jobject.ParseString(RevitJsonProp.Id, out string id)) + { + pressmeter.Id = id; + } + else + { + pressmeter.AppendOrUpdatePropStatus(nameof(pressmeter.Id), ePropStatus.Error, "缂哄皯[鏋勪欢缂栫爜]"); + } + + #endregion + + #region Code + + if (jobject.ParseString(RevitJsonProp.Code, out string code)) + { + pressmeter.Code = code; + if (string.IsNullOrEmpty(pressmeter.Code)) + { + pressmeter.Code = pressmeter.Id; + pressmeter.AppendOrUpdatePropStatus(nameof(pressmeter.Code), ePropStatus.Lack, "浣跨敤[鏋勪欢缂栫爜]璧嬪��"); + } + } + else + { + pressmeter.AppendOrUpdatePropStatus(nameof(pressmeter.Code), ePropStatus.Error, "缂哄皯[缂栫爜]"); + } + + #endregion + + #region Name + + if (jobject.ParseString(RevitJsonProp.Name, out string name)) + { + pressmeter.Name = name; + pressmeter.AppendOrUpdatePropStatus(nameof(pressmeter.Name), ePropStatus.Lack, "[鍚嶇О]缂虹渷"); + } + else + { + pressmeter.AppendOrUpdatePropStatus(nameof(pressmeter.Name), ePropStatus.Error, "缂哄皯 [鍚嶇О]"); + } + + #endregion + + #region ModelType + + if (jobject.ParseString(RevitJsonProp.ModelType, out string modelType)) + { + pressmeter.ModelType = modelType; + if (string.IsNullOrEmpty(pressmeter.ModelType)) + { + pressmeter.AppendOrUpdatePropStatus(nameof(pressmeter.ModelType), ePropStatus.Lack, "[鍨嬪彿淇℃伅]缂虹渷"); + } + } + else + { + pressmeter.AppendOrUpdatePropStatus(nameof(pressmeter.ModelType), ePropStatus.Error, "缂哄皯[鍨嬪彿淇℃伅]"); + } + + #endregion + + #region Flags + + if (jobject.ParseString(RevitJsonProp.Flags, out string flags)) + { + pressmeter.Flags = Yw.Untity.FlagsHelper.ToList(flags); + if (!string.IsNullOrEmpty(flags)) + { + if (pressmeter.Flags == null || pressmeter.Flags.Count < 1) + { + pressmeter.AppendOrUpdatePropStatus(nameof(pressmeter.Flags), ePropStatus.Abnormal, "[鏍囩]鏍煎紡閿欒"); + } + } + } + else + { + pressmeter.AppendOrUpdatePropStatus(nameof(pressmeter.Flags), ePropStatus.Error, "缂哄皯[鏍囩]"); + } + + #endregion + + #region Description + + if (jobject.ParseString(RevitJsonProp.Description, out string description)) + { + pressmeter.Description = description; + } + else + { + pressmeter.AppendOrUpdatePropStatus(nameof(pressmeter.Description), ePropStatus.Error, "缂哄皯[璇存槑淇℃伅]"); + } + + #endregion + + #region ConnectList + + if (jobject.ParseString(RevitJsonProp.Connects, out string connectString)) + { + var connectList = JsonHelper.Json2Object<List<RevitJsonConnectModel>>(connectString); + pressmeter.ConnectList = connectList?.Select(x => new Model.RevitConnect() + { + Id = x.ConnectId, + Direction = x.Dirction, + Position = new Model.RevitPosition() + { + X = x.Point.X / 1000f, + Y = x.Point.Y / 1000f, + Z = x.Point.Z / 1000f + } + }).ToList(); + if (pressmeter.ConnectList == null || pressmeter.ConnectList.Count < 1) + { + pressmeter.AppendOrUpdatePropStatus(nameof(pressmeter.ConnectList), ePropStatus.Error, "[杩炴帴鍒楄〃]瑙f瀽澶辫触"); + } + } + else + { + pressmeter.AppendOrUpdatePropStatus(nameof(pressmeter.ConnectList), ePropStatus.Error, "缂哄皯[杩炴帴鍒楄〃]"); + } + + #endregion + + #region Quality + if (jobject[RevitJsonProp.Quality].MatchNumeric(out double quality)) { pressmeter.Quality = quality; + if (pressmeter.Quality <= 0) + { + pressmeter.AppendOrUpdatePropStatus(nameof(pressmeter.Quality), ePropStatus.Lack, "[鍒濆姘磋川]缂虹渷"); + } + } + else + { + pressmeter.AppendOrUpdatePropStatus(nameof(pressmeter.Quality), ePropStatus.Abnormal, "[鍒濆姘磋川]寮傚父锛屽彲鑳芥槸缂哄皯鎴栨牸寮忛敊璇�"); } - //鏍囬珮淇℃伅 + #endregion + + #region Position + + pressmeter.Position = pressmeter.ConnectList?.GetCenterPosition(); + if (pressmeter.Position == null) + { + pressmeter.AppendOrUpdatePropStatus(nameof(pressmeter.Position), ePropStatus.Lack, "[浣嶇疆]缂虹渷锛屽彲鑳芥槸鍙梉杩炴帴鍒楄〃]瑙f瀽澶辫触褰卞搷"); + } + + #endregion + + #region Elev + if (jobject[RevitJsonProp.Elev].MatchNumeric(out double elev)) { pressmeter.Elev = elev / 1000f; } + else + { + pressmeter.AppendOrUpdatePropStatus(nameof(pressmeter.Elev), ePropStatus.Abnormal, "[鏍囬珮淇℃伅]缂哄皯鎴栬�呮牸寮忛敊璇�"); + } + if (pressmeter.Elev <= 0) { - //鏍囬珮涓殑楂樼▼ - var jobjectElevOfElevation = jobject[RevitJsonProp.ElevOfElevation]; - if (jobjectElevOfElevation != null) + if (jobject[RevitJsonProp.ElevOfElevation].MatchNumeric(out double elevOfElevation)) { - if (jobjectElevOfElevation.MatchNumeric(out double elevOfElevation)) - { - pressmeter.Elev = elevOfElevation / 1000f; - } + pressmeter.Elev = elevOfElevation / 1000f; + } + else + { + pressmeter.AppendOrUpdatePropStatus(nameof(pressmeter.Elev), ePropStatus.Abnormal, "[鏍囬珮涓殑楂樼▼]缂哄皯鎴栬�呮牸寮忛敊璇�"); } } + if (pressmeter.Elev <= 0) { //閫氳繃z杞磋嚜鍔ㄨ绠� - pressmeter.Elev = pressmeter.Position.Z; + if (pressmeter.Position == null) + { + pressmeter.AppendOrUpdatePropStatus(nameof(pressmeter.Elev), ePropStatus.Lack, "[鏍囬珮]缂虹渷锛屽彈[浣嶇疆]褰卞搷锛屾棤娉曢�氳繃Z杞磋嚜鍔ㄨ绠�"); + } + else + { + pressmeter.Elev = pressmeter.Position.Z; + pressmeter.AppendOrUpdatePropStatus(nameof(pressmeter.Elev), ePropStatus.Lack, "[鏍囬珮]缂虹渷锛岄�氳繃Z杞磋嚜鍔ㄨ绠�"); + } } - //闇�姘撮噺 + #endregion + + #region Demand + if (jobject[RevitJsonProp.Demand].MatchNumeric(out double demand)) { pressmeter.Demand = demand; } + else + { + pressmeter.AppendOrUpdatePropStatus(nameof(pressmeter.Demand), ePropStatus.Abnormal, "[闇�姘撮噺]缂哄皯鎴栬�呮暟鎹牸寮忛敊璇�"); + } - //闇�姘存ā寮� - pressmeter.DemandPattern = jobject[RevitJsonProp.DemandPattern].ToString(); + #endregion + + #region DemandPattern + + if (jobject.ParseString(RevitJsonProp.DemandPattern, out string demandPattern)) + { + pressmeter.DemandPattern = demandPattern; + if (string.IsNullOrEmpty(pressmeter.DemandPattern)) + { + pressmeter.AppendOrUpdatePropStatus(nameof(pressmeter.DemandPattern), ePropStatus.Lack, "[闇�姘存ā寮廬缂虹渷"); + } + } + else + { + pressmeter.AppendOrUpdatePropStatus(nameof(pressmeter.DemandPattern), ePropStatus.Abnormal, "缂哄皯[闇�姘存ā寮廬"); + } + + #endregion return pressmeter; } @@ -1046,50 +2840,225 @@ } var reservoir = new Model.RevitReservoir(); - reservoir.Id = jobject[RevitJsonProp.Id].ToString(); - reservoir.Code = jobject[RevitJsonProp.Code].ToString(); - if (string.IsNullOrEmpty(reservoir.Code)) - { - reservoir.Code = reservoir.Id; - } - reservoir.Name = jobject[RevitJsonProp.Name].ToString(); - reservoir.ModelType = jobject[RevitJsonProp.ModelType].ToString(); - reservoir.Flags = Yw.Untity.FlagsHelper.ToList(jobject[RevitJsonProp.Flags].ToString()); - reservoir.Description = jobject[RevitJsonProp.Description].ToString(); - var connectList = JsonHelper.Json2Object<List<RevitJsonConnectModel>>(jobject[RevitJsonProp.Connects].ToString()); - reservoir.ConnectList = connectList?.Select(x => new Model.RevitConnect() - { - Id = x.ConnectId, - Direction = x.Dirction, - Position = new Model.RevitPosition() - { - X = x.Point.X / 1000f, - Y = x.Point.Y / 1000f, - Z = x.Point.Z / 1000f - } - }).ToList(); - reservoir.Position = reservoir.ConnectList.GetCenterPosition(); - //鍒濆姘磋川 + #region Id + + if (jobject.ParseString(RevitJsonProp.Id, out string id)) + { + reservoir.Id = id; + } + else + { + reservoir.AppendOrUpdatePropStatus(nameof(reservoir.Id), ePropStatus.Error, "缂哄皯[鏋勪欢缂栫爜]"); + } + + #endregion + + #region Code + + if (jobject.ParseString(RevitJsonProp.Code, out string code)) + { + reservoir.Code = code; + if (string.IsNullOrEmpty(reservoir.Code)) + { + reservoir.Code = reservoir.Id; + reservoir.AppendOrUpdatePropStatus(nameof(reservoir.Code), ePropStatus.Lack, "浣跨敤[鏋勪欢缂栫爜]璧嬪��"); + } + } + else + { + reservoir.AppendOrUpdatePropStatus(nameof(reservoir.Code), ePropStatus.Error, "缂哄皯[缂栫爜]"); + } + + #endregion + + #region Name + + if (jobject.ParseString(RevitJsonProp.Name, out string name)) + { + reservoir.Name = name; + reservoir.AppendOrUpdatePropStatus(nameof(reservoir.Name), ePropStatus.Lack, "[鍚嶇О]缂虹渷"); + } + else + { + reservoir.AppendOrUpdatePropStatus(nameof(reservoir.Name), ePropStatus.Error, "缂哄皯[鍚嶇О]"); + } + + #endregion + + #region ModelType + + if (jobject.ParseString(RevitJsonProp.ModelType, out string modelType)) + { + reservoir.ModelType = modelType; + if (string.IsNullOrEmpty(reservoir.ModelType)) + { + reservoir.AppendOrUpdatePropStatus(nameof(reservoir.ModelType), ePropStatus.Lack, "[鍨嬪彿淇℃伅]缂虹渷"); + } + } + else + { + reservoir.AppendOrUpdatePropStatus(nameof(reservoir.ModelType), ePropStatus.Error, "缂哄皯[鍨嬪彿淇℃伅]"); + } + + #endregion + + #region Flags + + if (jobject.ParseString(RevitJsonProp.Flags, out string flags)) + { + reservoir.Flags = Yw.Untity.FlagsHelper.ToList(flags); + if (!string.IsNullOrEmpty(flags)) + { + if (reservoir.Flags == null || reservoir.Flags.Count < 1) + { + reservoir.AppendOrUpdatePropStatus(nameof(reservoir.Flags), ePropStatus.Abnormal, "[鏍囩]鏍煎紡閿欒"); + } + } + } + else + { + reservoir.AppendOrUpdatePropStatus(nameof(reservoir.Flags), ePropStatus.Error, "缂哄皯[鏍囩]"); + } + + #endregion + + #region Description + + if (jobject.ParseString(RevitJsonProp.Description, out string description)) + { + reservoir.Description = description; + } + else + { + reservoir.AppendOrUpdatePropStatus(nameof(reservoir.Description), ePropStatus.Error, "缂哄皯[璇存槑淇℃伅]"); + } + + #endregion + + #region ConnectList + + if (jobject.ParseString(RevitJsonProp.Connects, out string connectString)) + { + var connectList = JsonHelper.Json2Object<List<RevitJsonConnectModel>>(connectString); + reservoir.ConnectList = connectList?.Select(x => new Model.RevitConnect() + { + Id = x.ConnectId, + Direction = x.Dirction, + Position = new Model.RevitPosition() + { + X = x.Point.X / 1000f, + Y = x.Point.Y / 1000f, + Z = x.Point.Z / 1000f + } + }).ToList(); + if (reservoir.ConnectList == null || reservoir.ConnectList.Count < 1) + { + reservoir.AppendOrUpdatePropStatus(nameof(reservoir.ConnectList), ePropStatus.Error, "[杩炴帴鍒楄〃]瑙f瀽澶辫触"); + } + } + else + { + reservoir.AppendOrUpdatePropStatus(nameof(reservoir.ConnectList), ePropStatus.Error, "缂哄皯[杩炴帴鍒楄〃]"); + } + + #endregion + + #region Quality + if (jobject[RevitJsonProp.Quality].MatchNumeric(out double quality)) { reservoir.Quality = quality; + if (reservoir.Quality <= 0) + { + reservoir.AppendOrUpdatePropStatus(nameof(reservoir.Quality), ePropStatus.Lack, "[鍒濆姘磋川]缂虹渷"); + } + } + else + { + reservoir.AppendOrUpdatePropStatus(nameof(reservoir.Quality), ePropStatus.Abnormal, "[鍒濆姘磋川]寮傚父锛屽彲鑳芥槸缂哄皯鎴栨牸寮忛敊璇�"); } - //姹犲簳鏍囬珮 + #endregion + + #region Position + + reservoir.Position = reservoir.ConnectList?.GetCenterPosition(); + if (reservoir.Position == null) + { + reservoir.AppendOrUpdatePropStatus(nameof(reservoir.Position), ePropStatus.Lack, "[浣嶇疆]缂虹渷锛屽彲鑳芥槸鍙梉杩炴帴鍒楄〃]瑙f瀽澶辫触褰卞搷"); + } + + #endregion + + #region PoolElev + if (jobject[RevitJsonProp.PoolElev].MatchNumeric(out double poolElev)) { - reservoir.PoolElev = poolElev; + reservoir.PoolElev = poolElev / 1000f; + } + else + { + reservoir.AppendOrUpdatePropStatus(nameof(reservoir.PoolElev), ePropStatus.Abnormal, "[姹犲簳鏍囬珮]缂哄皯鎴栬�呮牸寮忛敊璇�"); } - //鎬绘按澶� + if (reservoir.PoolElev <= 0) + { + if (jobject[RevitJsonProp.ElevOfElevation].MatchNumeric(out double elevOfElevation)) + { + reservoir.PoolElev = elevOfElevation / 1000f; + } + else + { + reservoir.AppendOrUpdatePropStatus(nameof(reservoir.PoolElev), ePropStatus.Abnormal, "[鏍囬珮涓殑楂樼▼]缂哄皯鎴栬�呮牸寮忛敊璇�"); + } + } + + if (reservoir.PoolElev <= 0) + { + //閫氳繃z杞磋嚜鍔ㄨ绠� + if (reservoir.Position == null) + { + reservoir.AppendOrUpdatePropStatus(nameof(reservoir.PoolElev), ePropStatus.Lack, "[姹犲簳鏍囬珮]缂虹渷锛屽彈[浣嶇疆]褰卞搷锛屾棤娉曢�氳繃Z杞磋嚜鍔ㄨ绠�"); + } + else + { + reservoir.PoolElev = reservoir.Position.Z; + reservoir.AppendOrUpdatePropStatus(nameof(reservoir.PoolElev), ePropStatus.Lack, "[姹犲簳鏍囬珮]缂虹渷锛岄�氳繃Z杞磋嚜鍔ㄨ绠�"); + } + } + + #endregion + + #region Head + if (jobject[RevitJsonProp.Head].MatchNumeric(out double head)) { reservoir.Head = head; } + else + { + reservoir.AppendOrUpdatePropStatus(nameof(reservoir.Head), ePropStatus.Abnormal, "[鎬绘按澶碷缂哄皯鎴栬�呮暟鎹牸寮忛敊璇�"); + } - //姘村ご妯″紡 - reservoir.HeadPattern = jobject[RevitJsonProp.HeadPattern].ToString(); + #endregion + + #region HeadPattern + + if (jobject.ParseString(RevitJsonProp.HeadPattern, out string headPattern)) + { + reservoir.HeadPattern = headPattern; + if (string.IsNullOrEmpty(reservoir.HeadPattern)) + { + reservoir.AppendOrUpdatePropStatus(nameof(reservoir.HeadPattern), ePropStatus.Lack, "[姘村ご妯″紡]缂虹渷"); + } + } + else + { + reservoir.AppendOrUpdatePropStatus(nameof(reservoir.HeadPattern), ePropStatus.Abnormal, "缂哄皯[姘村ご妯″紡]"); + } + + #endregion return reservoir; } @@ -1103,90 +3072,283 @@ } var tank = new Model.RevitTank(); - tank.Id = jobject[RevitJsonProp.Id].ToString(); - tank.Code = jobject[RevitJsonProp.Code].ToString(); - if (string.IsNullOrEmpty(tank.Code)) + + #region Id + + if (jobject.ParseString(RevitJsonProp.Id, out string id)) { - tank.Code = tank.Id; + tank.Id = id; } - tank.Name = jobject[RevitJsonProp.Name].ToString(); - tank.ModelType = jobject[RevitJsonProp.ModelType].ToString(); - tank.Flags = Yw.Untity.FlagsHelper.ToList(jobject[RevitJsonProp.Flags].ToString()); - tank.Description = jobject[RevitJsonProp.Description].ToString(); - var connectList = JsonHelper.Json2Object<List<RevitJsonConnectModel>>(jobject[RevitJsonProp.Connects].ToString()); - tank.ConnectList = connectList?.Select(x => new Model.RevitConnect() + else { - Id = x.ConnectId, - Direction = x.Dirction, - Position = new Model.RevitPosition() + tank.AppendOrUpdatePropStatus(nameof(tank.Id), ePropStatus.Error, "缂哄皯[鏋勪欢缂栫爜]"); + } + + #endregion + + #region Code + + if (jobject.ParseString(RevitJsonProp.Code, out string code)) + { + tank.Code = code; + if (string.IsNullOrEmpty(tank.Code)) { - X = x.Point.X / 1000f, - Y = x.Point.Y / 1000f, - Z = x.Point.Z / 1000f + tank.Code = tank.Id; + tank.AppendOrUpdatePropStatus(nameof(tank.Code), ePropStatus.Lack, "浣跨敤[鏋勪欢缂栫爜]璧嬪��"); } - }).ToList(); - tank.Position = tank.ConnectList.GetCenterPosition(); - - //鍒濆姘磋川 - if (jobject[RevitJsonProp.Quality].MatchNumeric(out double quality)) + } + else { - tank.Quality = quality; + tank.AppendOrUpdatePropStatus(nameof(tank.Code), ePropStatus.Error, "缂哄皯[缂栫爜]"); } - //鏍囬珮淇℃伅 - if (jobject[RevitJsonProp.PoolElev].MatchNumeric(out double elev)) + #endregion + + #region Name + + if (jobject.ParseString(RevitJsonProp.Name, out string name)) { - tank.PoolElev = elev / 1000f; + tank.Name = name; + tank.AppendOrUpdatePropStatus(nameof(tank.Name), ePropStatus.Lack, "[鍚嶇О]缂虹渷"); } - if (tank.PoolElev <= 0) + else { - //鏍囬珮涓殑楂樼▼ - var jobjectElevOfElevation = jobject[RevitJsonProp.ElevOfElevation]; - if (jobjectElevOfElevation != null) + tank.AppendOrUpdatePropStatus(nameof(tank.Name), ePropStatus.Error, "缂哄皯[鍚嶇О]"); + } + + #endregion + + #region ModelType + + if (jobject.ParseString(RevitJsonProp.ModelType, out string modelType)) + { + tank.ModelType = modelType; + if (string.IsNullOrEmpty(tank.ModelType)) { - if (jobjectElevOfElevation.MatchNumeric(out double elevOfElevation)) + tank.AppendOrUpdatePropStatus(nameof(tank.ModelType), ePropStatus.Lack, "[鍨嬪彿淇℃伅]缂虹渷"); + } + } + else + { + tank.AppendOrUpdatePropStatus(nameof(tank.ModelType), ePropStatus.Error, "缂哄皯[鍨嬪彿淇℃伅]"); + } + + #endregion + + #region Flags + + if (jobject.ParseString(RevitJsonProp.Flags, out string flags)) + { + tank.Flags = Yw.Untity.FlagsHelper.ToList(flags); + if (!string.IsNullOrEmpty(flags)) + { + if (tank.Flags == null || tank.Flags.Count < 1) { - tank.PoolElev = elevOfElevation / 1000f; + tank.AppendOrUpdatePropStatus(nameof(tank.Flags), ePropStatus.Abnormal, "[鏍囩]鏍煎紡閿欒"); } } } + else + { + tank.AppendOrUpdatePropStatus(nameof(tank.Flags), ePropStatus.Error, "缂哄皯[鏍囩]"); + } + + #endregion + + #region Description + + if (jobject.ParseString(RevitJsonProp.Description, out string description)) + { + tank.Description = description; + } + else + { + tank.AppendOrUpdatePropStatus(nameof(tank.Description), ePropStatus.Error, "缂哄皯[璇存槑淇℃伅]"); + } + + #endregion + + #region ConnectList + + if (jobject.ParseString(RevitJsonProp.Connects, out string connectString)) + { + var connectList = JsonHelper.Json2Object<List<RevitJsonConnectModel>>(connectString); + tank.ConnectList = connectList?.Select(x => new Model.RevitConnect() + { + Id = x.ConnectId, + Direction = x.Dirction, + Position = new Model.RevitPosition() + { + X = x.Point.X / 1000f, + Y = x.Point.Y / 1000f, + Z = x.Point.Z / 1000f + } + }).ToList(); + if (tank.ConnectList == null || tank.ConnectList.Count < 1) + { + tank.AppendOrUpdatePropStatus(nameof(tank.ConnectList), ePropStatus.Error, "[杩炴帴鍒楄〃]瑙f瀽澶辫触"); + } + } + else + { + tank.AppendOrUpdatePropStatus(nameof(tank.ConnectList), ePropStatus.Error, "缂哄皯[杩炴帴鍒楄〃]"); + } + + #endregion + + #region Quality + + if (jobject[RevitJsonProp.Quality].MatchNumeric(out double quality)) + { + tank.Quality = quality; + if (tank.Quality <= 0) + { + tank.AppendOrUpdatePropStatus(nameof(tank.Quality), ePropStatus.Lack, "[鍒濆姘磋川]缂虹渷"); + } + } + else + { + tank.AppendOrUpdatePropStatus(nameof(tank.Quality), ePropStatus.Abnormal, "[鍒濆姘磋川]寮傚父锛屽彲鑳芥槸缂哄皯鎴栨牸寮忛敊璇�"); + } + + #endregion + + #region Position + + tank.Position = tank.ConnectList?.GetCenterPosition(); + if (tank.Position == null) + { + tank.AppendOrUpdatePropStatus(nameof(tank.Position), ePropStatus.Lack, "[浣嶇疆]缂虹渷锛屽彲鑳芥槸鍙梉杩炴帴鍒楄〃]瑙f瀽澶辫触褰卞搷"); + } + + #endregion + + #region PoolElev + + if (jobject[RevitJsonProp.PoolElev].MatchNumeric(out double poolElev)) + { + tank.PoolElev = poolElev / 1000f; + } + else + { + tank.AppendOrUpdatePropStatus(nameof(tank.PoolElev), ePropStatus.Abnormal, "[姹犲簳鏍囬珮]缂哄皯鎴栬�呮牸寮忛敊璇�"); + } + + if (tank.PoolElev <= 0) + { + if (jobject[RevitJsonProp.ElevOfElevation].MatchNumeric(out double elevOfElevation)) + { + tank.PoolElev = elevOfElevation / 1000f; + } + else + { + tank.AppendOrUpdatePropStatus(nameof(tank.PoolElev), ePropStatus.Abnormal, "[鏍囬珮涓殑楂樼▼]缂哄皯鎴栬�呮牸寮忛敊璇�"); + } + } + if (tank.PoolElev <= 0) { //閫氳繃z杞磋嚜鍔ㄨ绠� - tank.PoolElev = tank.Position.Z; + if (tank.Position == null) + { + tank.AppendOrUpdatePropStatus(nameof(tank.PoolElev), ePropStatus.Lack, "[姹犲簳鏍囬珮]缂虹渷锛屽彈[浣嶇疆]褰卞搷锛屾棤娉曢�氳繃Z杞磋嚜鍔ㄨ绠�"); + } + else + { + tank.PoolElev = tank.Position.Z; + tank.AppendOrUpdatePropStatus(nameof(tank.PoolElev), ePropStatus.Lack, "[姹犲簳鏍囬珮]缂虹渷锛岄�氳繃Z杞磋嚜鍔ㄨ绠�"); + } } - //鍒濆姘翠綅 + #endregion + + #region InitLevel + if (jobject[RevitJsonProp.InitLevel].MatchNumeric(out double initLevel)) { tank.InitLevel = initLevel; + tank.AppendOrUpdatePropStatus(nameof(tank.InitLevel), ePropStatus.Lack, "[鍒濆姘翠綅]缂虹渷"); } - //鏈�浣庢按浣� + else + { + tank.AppendOrUpdatePropStatus(nameof(tank.InitLevel), ePropStatus.Abnormal, "[鍒濆姘翠綅]缂哄皯鎴栬�呮暟鎹牸寮忛敊璇�"); + } + + #endregion + + #region MinLevel + if (jobject[RevitJsonProp.MinLevel].MatchNumeric(out double minLevel)) { tank.MinLevel = minLevel; + tank.AppendOrUpdatePropStatus(nameof(tank.MinLevel), ePropStatus.Lack, "[鏈�浣庢按浣峕缂虹渷"); } - //鏈�楂樻按浣� + else + { + tank.AppendOrUpdatePropStatus(nameof(tank.MinLevel), ePropStatus.Abnormal, "[鏈�浣庢按浣峕缂哄皯鎴栬�呮暟鎹牸寮忛敊璇�"); + } + + #endregion + + #region MaxLevel + if (jobject[RevitJsonProp.MaxLevel].MatchNumeric(out double maxLevel)) { tank.MaxLevel = maxLevel; + tank.AppendOrUpdatePropStatus(nameof(tank.MaxLevel), ePropStatus.Lack, "[鏈�楂樻按浣峕缂虹渷"); } - //鐩村緞 - if (jobject[RevitJsonProp.Diameter].MatchNumeric(out double diameter)) + else { - tank.Diameter = diameter; + tank.AppendOrUpdatePropStatus(nameof(tank.MaxLevel), ePropStatus.Abnormal, "[鏈�楂樻按浣峕缂哄皯鎴栬�呮暟鎹牸寮忛敊璇�"); } - //鏈�灏忓绉� + + #endregion + + #region DN + + if (jobject[RevitJsonProp.DN].MatchNumeric(out double dn)) + { + tank.DN = dn / 1000f; + tank.AppendOrUpdatePropStatus(nameof(tank.DN), ePropStatus.Lack, "[鍏О鐩村緞]缂虹渷"); + } + else + { + tank.AppendOrUpdatePropStatus(nameof(tank.DN), ePropStatus.Abnormal, "[鍏О鐩村緞]缂哄皯鎴栬�呮暟鎹牸寮忛敊璇�"); + } + + #endregion + + #region MinVol + if (jobject[RevitJsonProp.MinVol].MatchNumeric(out double minVol)) { tank.MinVol = minVol; + tank.AppendOrUpdatePropStatus(nameof(tank.MinVol), ePropStatus.Lack, "[鏈�灏忓绉痌缂虹渷"); } - //瀹圭Н鏇茬嚎 - tank.VolCurve = jobject[RevitJsonProp.VolCurve].ToString(); - if (!string.IsNullOrEmpty(tank.VolCurve)) + else { - tank.VolCurve = string.Empty; + tank.AppendOrUpdatePropStatus(nameof(tank.MinVol), ePropStatus.Abnormal, "[鏈�灏忓绉痌缂哄皯鎴栬�呮暟鎹牸寮忛敊璇�"); } + + #endregion + + #region VolCurve + + if (jobject.ParseString(RevitJsonProp.VolCurve, out string volCurve)) + { + tank.VolCurve = volCurve; + if (string.IsNullOrEmpty(tank.VolCurve)) + { + tank.AppendOrUpdatePropStatus(nameof(tank.VolCurve), ePropStatus.Lack, "[瀹圭Н鏇茬嚎]缂虹渷"); + } + } + else + { + tank.AppendOrUpdatePropStatus(nameof(tank.VolCurve), ePropStatus.Abnormal, "缂哄皯[瀹圭Н鏇茬嚎]"); + } + + #endregion + return tank; } @@ -1199,90 +3361,283 @@ } var waterbox = new Model.RevitWaterbox(); - waterbox.Id = jobject[RevitJsonProp.Id].ToString(); - waterbox.Code = jobject[RevitJsonProp.Code].ToString(); - if (string.IsNullOrEmpty(waterbox.Code)) + + #region Id + + if (jobject.ParseString(RevitJsonProp.Id, out string id)) { - waterbox.Code = waterbox.Id; + waterbox.Id = id; } - waterbox.Name = jobject[RevitJsonProp.Name].ToString(); - waterbox.ModelType = jobject[RevitJsonProp.ModelType].ToString(); - waterbox.Flags = Yw.Untity.FlagsHelper.ToList(jobject[RevitJsonProp.Flags].ToString()); - waterbox.Description = jobject[RevitJsonProp.Description].ToString(); - var connectList = JsonHelper.Json2Object<List<RevitJsonConnectModel>>(jobject[RevitJsonProp.Connects].ToString()); - waterbox.ConnectList = connectList?.Select(x => new Model.RevitConnect() + else { - Id = x.ConnectId, - Direction = x.Dirction, - Position = new Model.RevitPosition() + waterbox.AppendOrUpdatePropStatus(nameof(waterbox.Id), ePropStatus.Error, "缂哄皯[鏋勪欢缂栫爜]"); + } + + #endregion + + #region Code + + if (jobject.ParseString(RevitJsonProp.Code, out string code)) + { + waterbox.Code = code; + if (string.IsNullOrEmpty(waterbox.Code)) { - X = x.Point.X / 1000f, - Y = x.Point.Y / 1000f, - Z = x.Point.Z / 1000f + waterbox.Code = waterbox.Id; + waterbox.AppendOrUpdatePropStatus(nameof(waterbox.Code), ePropStatus.Lack, "浣跨敤[鏋勪欢缂栫爜]璧嬪��"); } - }).ToList(); - waterbox.Position = waterbox.ConnectList.GetCenterPosition(); - - //鍒濆姘磋川 - if (jobject[RevitJsonProp.Quality].MatchNumeric(out double quality)) + } + else { - waterbox.Quality = quality; + waterbox.AppendOrUpdatePropStatus(nameof(waterbox.Code), ePropStatus.Error, "缂哄皯[缂栫爜]"); } - //鏍囬珮淇℃伅 - if (jobject[RevitJsonProp.PoolElev].MatchNumeric(out double elev)) + #endregion + + #region Name + + if (jobject.ParseString(RevitJsonProp.Name, out string name)) { - waterbox.PoolElev = elev / 1000f; + waterbox.Name = name; + waterbox.AppendOrUpdatePropStatus(nameof(waterbox.Name), ePropStatus.Lack, "[鍚嶇О]缂虹渷"); } - if (waterbox.PoolElev <= 0) + else { - //鏍囬珮涓殑楂樼▼ - var jobjectElevOfElevation = jobject[RevitJsonProp.ElevOfElevation]; - if (jobjectElevOfElevation != null) + waterbox.AppendOrUpdatePropStatus(nameof(waterbox.Name), ePropStatus.Error, "缂哄皯[鍚嶇О]"); + } + + #endregion + + #region ModelType + + if (jobject.ParseString(RevitJsonProp.ModelType, out string modelType)) + { + waterbox.ModelType = modelType; + if (string.IsNullOrEmpty(waterbox.ModelType)) { - if (jobjectElevOfElevation.MatchNumeric(out double elevOfElevation)) + waterbox.AppendOrUpdatePropStatus(nameof(waterbox.ModelType), ePropStatus.Lack, "[鍨嬪彿淇℃伅]缂虹渷"); + } + } + else + { + waterbox.AppendOrUpdatePropStatus(nameof(waterbox.ModelType), ePropStatus.Error, "缂哄皯[鍨嬪彿淇℃伅]"); + } + + #endregion + + #region Flags + + if (jobject.ParseString(RevitJsonProp.Flags, out string flags)) + { + waterbox.Flags = Yw.Untity.FlagsHelper.ToList(flags); + if (!string.IsNullOrEmpty(flags)) + { + if (waterbox.Flags == null || waterbox.Flags.Count < 1) { - waterbox.PoolElev = elevOfElevation / 1000f; + waterbox.AppendOrUpdatePropStatus(nameof(waterbox.Flags), ePropStatus.Abnormal, "[鏍囩]鏍煎紡閿欒"); } } } + else + { + waterbox.AppendOrUpdatePropStatus(nameof(waterbox.Flags), ePropStatus.Error, "缂哄皯[鏍囩]"); + } + + #endregion + + #region Description + + if (jobject.ParseString(RevitJsonProp.Description, out string description)) + { + waterbox.Description = description; + } + else + { + waterbox.AppendOrUpdatePropStatus(nameof(waterbox.Description), ePropStatus.Error, "缂哄皯[璇存槑淇℃伅]"); + } + + #endregion + + #region ConnectList + + if (jobject.ParseString(RevitJsonProp.Connects, out string connectString)) + { + var connectList = JsonHelper.Json2Object<List<RevitJsonConnectModel>>(connectString); + waterbox.ConnectList = connectList?.Select(x => new Model.RevitConnect() + { + Id = x.ConnectId, + Direction = x.Dirction, + Position = new Model.RevitPosition() + { + X = x.Point.X / 1000f, + Y = x.Point.Y / 1000f, + Z = x.Point.Z / 1000f + } + }).ToList(); + if (waterbox.ConnectList == null || waterbox.ConnectList.Count < 1) + { + waterbox.AppendOrUpdatePropStatus(nameof(waterbox.ConnectList), ePropStatus.Error, "[杩炴帴鍒楄〃]瑙f瀽澶辫触"); + } + } + else + { + waterbox.AppendOrUpdatePropStatus(nameof(waterbox.ConnectList), ePropStatus.Error, "缂哄皯[杩炴帴鍒楄〃]"); + } + + #endregion + + #region Quality + + if (jobject[RevitJsonProp.Quality].MatchNumeric(out double quality)) + { + waterbox.Quality = quality; + if (waterbox.Quality <= 0) + { + waterbox.AppendOrUpdatePropStatus(nameof(waterbox.Quality), ePropStatus.Lack, "[鍒濆姘磋川]缂虹渷"); + } + } + else + { + waterbox.AppendOrUpdatePropStatus(nameof(waterbox.Quality), ePropStatus.Abnormal, "[鍒濆姘磋川]寮傚父锛屽彲鑳芥槸缂哄皯鎴栨牸寮忛敊璇�"); + } + + #endregion + + #region Position + + waterbox.Position = waterbox.ConnectList?.GetCenterPosition(); + if (waterbox.Position == null) + { + waterbox.AppendOrUpdatePropStatus(nameof(waterbox.Position), ePropStatus.Lack, "[浣嶇疆]缂虹渷锛屽彲鑳芥槸鍙梉杩炴帴鍒楄〃]瑙f瀽澶辫触褰卞搷"); + } + + #endregion + + #region PoolElev + + if (jobject[RevitJsonProp.PoolElev].MatchNumeric(out double poolElev)) + { + waterbox.PoolElev = poolElev / 1000f; + } + else + { + waterbox.AppendOrUpdatePropStatus(nameof(waterbox.PoolElev), ePropStatus.Abnormal, "[姹犲簳鏍囬珮]缂哄皯鎴栬�呮牸寮忛敊璇�"); + } + + if (waterbox.PoolElev <= 0) + { + if (jobject[RevitJsonProp.ElevOfElevation].MatchNumeric(out double elevOfElevation)) + { + waterbox.PoolElev = elevOfElevation / 1000f; + } + else + { + waterbox.AppendOrUpdatePropStatus(nameof(waterbox.PoolElev), ePropStatus.Abnormal, "[鏍囬珮涓殑楂樼▼]缂哄皯鎴栬�呮牸寮忛敊璇�"); + } + } + if (waterbox.PoolElev <= 0) { //閫氳繃z杞磋嚜鍔ㄨ绠� - waterbox.PoolElev = waterbox.Position.Z; + if (waterbox.Position == null) + { + waterbox.AppendOrUpdatePropStatus(nameof(waterbox.PoolElev), ePropStatus.Lack, "[姹犲簳鏍囬珮]缂虹渷锛屽彈[浣嶇疆]褰卞搷锛屾棤娉曢�氳繃Z杞磋嚜鍔ㄨ绠�"); + } + else + { + waterbox.PoolElev = waterbox.Position.Z; + waterbox.AppendOrUpdatePropStatus(nameof(waterbox.PoolElev), ePropStatus.Lack, "[姹犲簳鏍囬珮]缂虹渷锛岄�氳繃Z杞磋嚜鍔ㄨ绠�"); + } } - //鍒濆姘翠綅 + #endregion + + #region InitLevel + if (jobject[RevitJsonProp.InitLevel].MatchNumeric(out double initLevel)) { waterbox.InitLevel = initLevel; + waterbox.AppendOrUpdatePropStatus(nameof(waterbox.InitLevel), ePropStatus.Lack, "[鍒濆姘翠綅]缂虹渷"); } - //鏈�浣庢按浣� + else + { + waterbox.AppendOrUpdatePropStatus(nameof(waterbox.InitLevel), ePropStatus.Abnormal, "[鍒濆姘翠綅]缂哄皯鎴栬�呮暟鎹牸寮忛敊璇�"); + } + + #endregion + + #region MinLevel + if (jobject[RevitJsonProp.MinLevel].MatchNumeric(out double minLevel)) { waterbox.MinLevel = minLevel; + waterbox.AppendOrUpdatePropStatus(nameof(waterbox.MinLevel), ePropStatus.Lack, "[鏈�浣庢按浣峕缂虹渷"); } - //鏈�楂樻按浣� + else + { + waterbox.AppendOrUpdatePropStatus(nameof(waterbox.MinLevel), ePropStatus.Abnormal, "[鏈�浣庢按浣峕缂哄皯鎴栬�呮暟鎹牸寮忛敊璇�"); + } + + #endregion + + #region MaxLevel + if (jobject[RevitJsonProp.MaxLevel].MatchNumeric(out double maxLevel)) { waterbox.MaxLevel = maxLevel; + waterbox.AppendOrUpdatePropStatus(nameof(waterbox.MaxLevel), ePropStatus.Lack, "[鏈�楂樻按浣峕缂虹渷"); } - //鐩村緞 - if (jobject[RevitJsonProp.Diameter].MatchNumeric(out double diameter)) + else { - waterbox.Diameter = diameter; + waterbox.AppendOrUpdatePropStatus(nameof(waterbox.MaxLevel), ePropStatus.Abnormal, "[鏈�楂樻按浣峕缂哄皯鎴栬�呮暟鎹牸寮忛敊璇�"); } - //鏈�灏忓绉� + + #endregion + + #region DN + + if (jobject[RevitJsonProp.DN].MatchNumeric(out double dn)) + { + waterbox.DN = dn / 1000f; + waterbox.AppendOrUpdatePropStatus(nameof(waterbox.DN), ePropStatus.Lack, "[鍏О鐩村緞]缂虹渷"); + } + else + { + waterbox.AppendOrUpdatePropStatus(nameof(waterbox.DN), ePropStatus.Abnormal, "[鍏О鐩村緞]缂哄皯鎴栬�呮暟鎹牸寮忛敊璇�"); + } + + #endregion + + #region MinVol + if (jobject[RevitJsonProp.MinVol].MatchNumeric(out double minVol)) { waterbox.MinVol = minVol; + waterbox.AppendOrUpdatePropStatus(nameof(waterbox.MinVol), ePropStatus.Lack, "[鏈�灏忓绉痌缂虹渷"); } - //瀹圭Н鏇茬嚎 - waterbox.VolCurve = jobject[RevitJsonProp.VolCurve].ToString(); - if (!string.IsNullOrEmpty(waterbox.VolCurve)) + else { - waterbox.VolCurve = string.Empty; + waterbox.AppendOrUpdatePropStatus(nameof(waterbox.MinVol), ePropStatus.Abnormal, "[鏈�灏忓绉痌缂哄皯鎴栬�呮暟鎹牸寮忛敊璇�"); } + + #endregion + + #region VolCurve + + if (jobject.ParseString(RevitJsonProp.VolCurve, out string volCurve)) + { + waterbox.VolCurve = volCurve; + if (string.IsNullOrEmpty(waterbox.VolCurve)) + { + waterbox.AppendOrUpdatePropStatus(nameof(waterbox.VolCurve), ePropStatus.Lack, "[瀹圭Н鏇茬嚎]缂虹渷"); + } + } + else + { + waterbox.AppendOrUpdatePropStatus(nameof(waterbox.VolCurve), ePropStatus.Abnormal, "缂哄皯[瀹圭Н鏇茬嚎]"); + } + + #endregion + return waterbox; } @@ -1293,94 +3648,305 @@ { return default; } + var pipe = new Model.RevitPipe(); - pipe.Id = jobject[RevitJsonProp.Id].ToString(); - pipe.Code = jobject[RevitJsonProp.Code].ToString(); - if (string.IsNullOrEmpty(pipe.Code)) + + #region Id + + if (jobject.ParseString(RevitJsonProp.Id, out string id)) { - pipe.Code = pipe.Id; + pipe.Id = id; } - pipe.Name = jobject[RevitJsonProp.Name].ToString(); - pipe.ModelType = jobject[RevitJsonProp.ModelType].ToString(); - pipe.Flags = Yw.Untity.FlagsHelper.ToList(jobject[RevitJsonProp.Flags].ToString()); - pipe.Description = jobject[RevitJsonProp.Description].ToString(); - var connectList = JsonHelper.Json2Object<List<RevitJsonConnectModel>>(jobject[RevitJsonProp.Connects].ToString()); - pipe.ConnectList = connectList?.Select(x => new Model.RevitConnect() + else { - Id = x.ConnectId, - Direction = x.Dirction, - Position = new Model.RevitPosition() + pipe.AppendOrUpdatePropStatus(nameof(pipe.Id), ePropStatus.Error, "缂哄皯[鏋勪欢缂栫爜]"); + } + + #endregion + + #region Code + + if (jobject.ParseString(RevitJsonProp.Code, out string code)) + { + pipe.Code = code; + if (string.IsNullOrEmpty(pipe.Code)) { - X = x.Point.X / 1000f, - Y = x.Point.Y / 1000f, - Z = x.Point.Z / 1000f + pipe.Code = pipe.Id; + pipe.AppendOrUpdatePropStatus(nameof(pipe.Code), ePropStatus.Lack, "浣跨敤[鏋勪欢缂栫爜]璧嬪��"); } - }).ToList(); - var startConnect = pipe.ConnectList.GetStartConnect(); - var endConnect = pipe.ConnectList.GetEndConnect(); - pipe.StartCode = startConnect.Id; - pipe.EndCode = endConnect.Id; - pipe.StartPosition = startConnect.Position; - pipe.EndPosition = endConnect.Position; - pipe.LinkStatus = jobject[RevitJsonProp.LinkStatusPipe].ToString(); - if (string.IsNullOrEmpty(pipe.LinkStatus)) + } + else + { + pipe.AppendOrUpdatePropStatus(nameof(pipe.Code), ePropStatus.Error, "缂哄皯[缂栫爜]"); + } + + #endregion + + #region Name + + if (jobject.ParseString(RevitJsonProp.Name, out string name)) + { + pipe.Name = name; + pipe.AppendOrUpdatePropStatus(nameof(pipe.Name), ePropStatus.Lack, "[鍚嶇О]缂虹渷"); + } + else + { + pipe.AppendOrUpdatePropStatus(nameof(pipe.Name), ePropStatus.Error, "缂哄皯[鍚嶇О]"); + } + + #endregion + + #region ModelType + + if (jobject.ParseString(RevitJsonProp.ModelType, out string modelType)) + { + pipe.ModelType = modelType; + if (string.IsNullOrEmpty(pipe.ModelType)) + { + pipe.AppendOrUpdatePropStatus(nameof(pipe.ModelType), ePropStatus.Lack, "[鍨嬪彿淇℃伅]缂虹渷"); + } + } + else + { + pipe.AppendOrUpdatePropStatus(nameof(pipe.ModelType), ePropStatus.Error, "缂哄皯[鍨嬪彿淇℃伅]"); + } + + #endregion + + #region Flags + + if (jobject.ParseString(RevitJsonProp.Flags, out string flags)) + { + pipe.Flags = Yw.Untity.FlagsHelper.ToList(flags); + if (!string.IsNullOrEmpty(flags)) + { + if (pipe.Flags == null || pipe.Flags.Count < 1) + { + pipe.AppendOrUpdatePropStatus(nameof(pipe.Flags), ePropStatus.Abnormal, "[鏍囩]鏍煎紡閿欒"); + } + } + } + else + { + pipe.AppendOrUpdatePropStatus(nameof(pipe.Flags), ePropStatus.Error, "缂哄皯[鏍囩]"); + } + + #endregion + + #region Description + + if (jobject.ParseString(RevitJsonProp.Description, out string description)) + { + pipe.Description = description; + } + else + { + pipe.AppendOrUpdatePropStatus(nameof(pipe.Description), ePropStatus.Error, "缂哄皯[璇存槑淇℃伅]"); + } + + #endregion + + #region ConnectList + + if (jobject.ParseString(RevitJsonProp.Connects, out string connectString)) + { + var connectList = JsonHelper.Json2Object<List<RevitJsonConnectModel>>(connectString); + pipe.ConnectList = connectList?.Select(x => new Model.RevitConnect() + { + Id = x.ConnectId, + Direction = x.Dirction, + Position = new Model.RevitPosition() + { + X = x.Point.X / 1000f, + Y = x.Point.Y / 1000f, + Z = x.Point.Z / 1000f + } + }).ToList(); + if (pipe.ConnectList == null || pipe.ConnectList.Count < 1) + { + pipe.AppendOrUpdatePropStatus(nameof(pipe.ConnectList), ePropStatus.Error, "[杩炴帴鍒楄〃]瑙f瀽澶辫触"); + } + } + else + { + pipe.AppendOrUpdatePropStatus(nameof(pipe.ConnectList), ePropStatus.Error, "缂哄皯[杩炴帴鍒楄〃]"); + } + + #endregion + + #region StartCode/StartPosition + + var startConnect = pipe.ConnectList?.GetStartConnect(); + pipe.StartCode = startConnect?.Id; + if (string.IsNullOrEmpty(pipe.StartCode)) + { + pipe.AppendOrUpdatePropStatus(nameof(pipe.StartCode), ePropStatus.Error, "[涓婃父鏋勪欢]鍙梉杩炴帴鍒楄〃]褰卞搷瑙f瀽閿欒"); + } + pipe.StartPosition = startConnect?.Position; + if (pipe.StartPosition == null) + { + pipe.AppendOrUpdatePropStatus(nameof(pipe.StartPosition), ePropStatus.Error, "[涓婃父鏋勪欢浣嶇疆]鍙梉杩炴帴鍒楄〃]褰卞搷瑙f瀽閿欒"); + } + + #endregion + + #region EndCode/EndPosition + + var endConnect = pipe.ConnectList?.GetEndConnect(); + pipe.EndCode = endConnect?.Id; + if (string.IsNullOrEmpty(pipe.EndCode)) + { + pipe.AppendOrUpdatePropStatus(nameof(pipe.EndCode), ePropStatus.Error, "[涓嬫父鏋勪欢]鍙梉杩炴帴鍒楄〃]褰卞搷瑙f瀽閿欒"); + } + pipe.EndPosition = endConnect?.Position; + if (pipe.EndPosition == null) + { + pipe.AppendOrUpdatePropStatus(nameof(pipe.EndPosition), ePropStatus.Error, "[涓嬫父鏋勪欢浣嶇疆]鍙梉杩炴帴鍒楄〃]褰卞搷瑙f瀽閿欒"); + } + + #endregion + + #region LinkStatus + + if (jobject.ParseString(RevitJsonProp.LinkStatusPipe, out string linkStatus)) + { + pipe.LinkStatus = linkStatus; + if (string.IsNullOrEmpty(pipe.LinkStatus)) + { + pipe.LinkStatus = PipeStatus.Open; + pipe.AppendOrUpdatePropStatus(nameof(pipe.LinkStatus), ePropStatus.Lack, "[绠¢亾鐘舵�乚缂虹渷"); + } + else + { + if (!PipeStatus.Contains(pipe.LinkStatus)) + { + pipe.LinkStatus = PipeStatus.Open; + pipe.AppendOrUpdatePropStatus(nameof(pipe.LinkStatus), ePropStatus.Abnormal, "[绠¢亾鐘舵�乚璁剧疆閿欒"); + } + } + } + else { pipe.LinkStatus = PipeStatus.Open; + pipe.AppendOrUpdatePropStatus(nameof(pipe.LinkStatus), ePropStatus.Abnormal, "[绠¢亾鐘舵�乚缂哄皯鎴栨牸寮忛敊璇紝浣跨敤榛樿鍊�(Open)杩涜淇"); } + + #endregion + + #region StartElev + if (jobject[RevitJsonProp.StartElev].MatchNumeric(out double startElev)) { - pipe.StartElev = startElev; + pipe.StartElev = startElev / 1000f; } + else + { + pipe.AppendOrUpdatePropStatus(nameof(pipe.StartElev), ePropStatus.Abnormal, "[涓婃父鏍囬珮]缂哄皯鎴栨牸寮忛敊璇�"); + } + if (pipe.StartElev <= 0) { - pipe.StartElev = pipe.StartPosition.Z; + //閫氳繃z杞磋嚜鍔ㄨ绠� + if (pipe.StartPosition == null) + { + pipe.AppendOrUpdatePropStatus(nameof(pipe.StartElev), ePropStatus.Lack, "[涓婃父鏍囬珮]缂虹渷锛屽彈[涓婃父鏋勪欢浣嶇疆]褰卞搷锛屾棤娉曢�氳繃Z杞磋嚜鍔ㄨ绠�"); + } + else + { + pipe.StartElev = pipe.StartPosition.Z; + pipe.AppendOrUpdatePropStatus(nameof(pipe.StartElev), ePropStatus.Lack, "[涓婃父鏍囬珮]缂虹渷锛岄�氳繃Z杞磋嚜鍔ㄨ绠�"); + } } + + #endregion + + #region EndElev + if (jobject[RevitJsonProp.EndElev].MatchNumeric(out double endElev)) { - pipe.EndElev = endElev; + pipe.EndElev = endElev / 1000f; } + else + { + pipe.AppendOrUpdatePropStatus(nameof(pipe.EndElev), ePropStatus.Abnormal, "[涓嬫父鏍囬珮]缂哄皯鎴栨牸寮忛敊璇�"); + } + if (pipe.EndElev <= 0) { - pipe.EndElev = pipe.EndPosition.Z; + //閫氳繃z杞磋嚜鍔ㄨ绠� + if (pipe.EndPosition == null) + { + pipe.AppendOrUpdatePropStatus(nameof(pipe.EndElev), ePropStatus.Lack, "[涓嬫父鏍囬珮]缂虹渷锛屽彈[涓嬫父鏋勪欢浣嶇疆]褰卞搷锛屾棤娉曢�氳繃Z杞磋嚜鍔ㄨ绠�"); + } + else + { + pipe.EndElev = pipe.EndPosition.Z; + pipe.AppendOrUpdatePropStatus(nameof(pipe.EndElev), ePropStatus.Lack, "[涓嬫父鏍囬珮]缂虹渷锛岄�氳繃Z杞磋嚜鍔ㄨ绠�"); + } } + + #endregion + + #region StartQuality + if (jobject[RevitJsonProp.StartQuality].MatchNumeric(out double startQuality)) { pipe.StartQuality = startQuality; + if (pipe.StartQuality <= 0) + { + pipe.AppendOrUpdatePropStatus(nameof(pipe.StartQuality), ePropStatus.Lack, "[涓婃父鍒濆姘磋川]缂虹渷"); + } } + else + { + pipe.AppendOrUpdatePropStatus(nameof(pipe.StartQuality), ePropStatus.Abnormal, "[涓婃父鍒濆姘磋川]缂哄皯鎴栬�呮牸寮忛敊璇�"); + } + + #endregion + + #region EndQuality + if (jobject[RevitJsonProp.EndQuality].MatchNumeric(out double endQuality)) { pipe.EndQuality = endQuality; + if (pipe.EndQuality <= 0) + { + pipe.AppendOrUpdatePropStatus(nameof(pipe.EndQuality), ePropStatus.Lack, "[涓嬫父鍒濆姘磋川]缂虹渷"); + } } - - #region 闀垮害 - - if (jobject[RevitJsonProp.Length].MatchNumeric(out double length)) + else { - pipe.Length = length / 1000f; - } - if (pipe.Length <= 0) - { - pipe.Length = pipe.StartPosition.Distance(pipe.EndPosition) / 1000f; + pipe.AppendOrUpdatePropStatus(nameof(pipe.EndQuality), ePropStatus.Abnormal, "[涓嬫父鍒濆姘磋川]缂哄皯鎴栬�呮牸寮忛敊璇�"); } #endregion - #region 鏉愯川 + #region Material - var jobjectMaterial = jobject[RevitJsonProp.Material]; - if (jobjectMaterial != null) + if (jobject.ParseString(RevitJsonProp.Material, out string material)) { - pipe.Material = jobjectMaterial[RevitJsonProp.Name]?.ToString(); + pipe.Material = material; + if (string.IsNullOrEmpty(pipe.Material)) + { + pipe.AppendOrUpdatePropStatus(nameof(pipe.Material), ePropStatus.Lack, "[鏉愯川]缂虹渷"); + } + } + else + { + pipe.AppendOrUpdatePropStatus(nameof(pipe.Material), ePropStatus.Abnormal, "缂哄皯[鏉愯川]"); } #endregion - - #region 鐩村緞 + #region Diameter if (jobject[RevitJsonProp.Diameter].MatchNumeric(out double diameter)) { pipe.Diameter = diameter; + } + else + { + pipe.AppendOrUpdatePropStatus(nameof(pipe.Diameter), ePropStatus.Abnormal, "[鐩村緞]缂哄皯鎴栬�呮牸寮忛敊璇�"); } if (pipe.Diameter < 1) @@ -1388,29 +3954,92 @@ if (jobject[RevitJsonProp.InternalDiameter].MatchNumeric(out double internalDiameter)) { pipe.Diameter = internalDiameter; + pipe.AppendOrUpdatePropStatus(nameof(pipe.Diameter), ePropStatus.Lack, "[鐩村緞]閫氳繃[鍐呭緞]杩涜淇]"); + } + else + { + pipe.AppendOrUpdatePropStatus(nameof(pipe.Diameter), ePropStatus.Abnormal, "[鐩村緞]鏃犳硶閫氳繃[鍐呭緞]杩涜淇]"); + } + } + + if (pipe.Diameter < 1) + { + if (jobject[RevitJsonProp.DN].MatchNumeric(out double dn)) + { + pipe.Diameter = dn; + pipe.AppendOrUpdatePropStatus(nameof(pipe.Diameter), ePropStatus.Lack, "[鐩村緞]閫氳繃[鍏О鐩村緞]杩涜淇]"); + } + else + { + pipe.AppendOrUpdatePropStatus(nameof(pipe.Diameter), ePropStatus.Abnormal, "[鐩村緞]鏃犳硶閫氳繃[鍏О鐩村緞]杩涜淇]"); + } + } + + if (pipe.Diameter < 1) + { + pipe.Diameter = 500; + pipe.AppendOrUpdatePropStatus(nameof(pipe.Diameter), ePropStatus.Lack, "[鐩村緞][鍐呭緞]瑙f瀽閿欒锛屼娇鐢ㄩ粯璁ゅ��(500mm)淇]"); + } + + #endregion + + #region Length + + if (jobject[RevitJsonProp.Length].MatchNumeric(out double length)) + { + pipe.Length = length / 1000f; + } + else + { + pipe.AppendOrUpdatePropStatus(nameof(pipe.Length), ePropStatus.Abnormal, "[闀垮害]缂哄皯鎴栬�呮牸寮忛敊璇�"); + } + if (pipe.Length <= 0) + { + if (pipe.StartPosition != null && pipe.EndPosition != null) + { + pipe.Length = pipe.StartPosition.Distance(pipe.EndPosition); + pipe.AppendOrUpdatePropStatus(nameof(pipe.Length), ePropStatus.Lack, "[闀垮害]缂虹渷锛岄�氳繃浣嶇疆鑷姩璁$畻"); + } + else + { + pipe.AppendOrUpdatePropStatus(nameof(pipe.Length), ePropStatus.Abnormal, "[闀垮害]鍙梉杩炴帴鍒楄〃]褰卞搷鏃犳硶鑷姩璁$畻"); } } #endregion + #region Roughness + + if (jobject[RevitJsonProp.Roughness].MatchNumeric(out double roughness)) + { + pipe.Roughness = roughness; + } + else + { + pipe.AppendOrUpdatePropStatus(nameof(pipe.Roughness), ePropStatus.Abnormal, "[绮楃硻绯绘暟]缂哄皯鎴栬�呮暟鎹牸寮忛敊璇�"); + } + + if (pipe.Roughness < 0.1) + { + pipe.Roughness = 110; + pipe.AppendOrUpdatePropStatus(nameof(pipe.Roughness), ePropStatus.Lack, "[绮楃硻绯绘暟]瑙f瀽閿欒锛岄�氳繃榛樿鍊�(110)杩涜淇"); + } + + #endregion + + #region MinorLoss if (jobject[RevitJsonProp.MinorLoss].MatchNumeric(out double minorLoss)) { pipe.MinorLoss = minorLoss; } - if (jobject[RevitJsonProp.Roughness].MatchNumeric(out double roughness)) + else { - pipe.Roughness = roughness; + pipe.AppendOrUpdatePropStatus(nameof(pipe.MinorLoss), ePropStatus.Abnormal, "[灞�閮ㄩ樆鍔涚郴鏁癩缂哄皯鎴栬�呮暟鎹牸寮忛敊璇�"); } - if (pipe.Diameter < 0.1) - { - pipe.Diameter = 500; - } - if (pipe.Roughness < 0.1) - { - pipe.Roughness = 110; - } + #endregion + return pipe; } @@ -1423,126 +4052,395 @@ } var translation = new Model.RevitTranslation(); - translation.Id = jobject[RevitJsonProp.Id].ToString(); - translation.Code = jobject[RevitJsonProp.Code].ToString(); - if (string.IsNullOrEmpty(translation.Code)) - { - translation.Code = translation.Id; - } - translation.Name = jobject[RevitJsonProp.Name].ToString(); - translation.ModelType = jobject[RevitJsonProp.ModelType].ToString(); - translation.Flags = Yw.Untity.FlagsHelper.ToList(jobject[RevitJsonProp.Flags].ToString()); - translation.Description = jobject[RevitJsonProp.Description].ToString(); - var connectList = JsonHelper.Json2Object<List<RevitJsonConnectModel>>(jobject[RevitJsonProp.Connects].ToString()); - translation.ConnectList = connectList?.Select(x => new Model.RevitConnect() - { - Id = x.ConnectId, - Direction = x.Dirction, - Position = new Model.RevitPosition() - { - X = x.Point.X / 1000f, - Y = x.Point.Y / 1000f, - Z = x.Point.Z / 1000f - } - }).ToList(); - var startConnect = translation.ConnectList.GetStartConnect(); - var endConnect = translation.ConnectList.GetEndConnect(); - translation.StartCode = startConnect.Id; - translation.EndCode = endConnect.Id; - translation.StartPosition = startConnect.Position; - translation.EndPosition = endConnect.Position; - translation.LinkStatus = jobject[RevitJsonProp.LinkStatusPipe].ToString(); - if (string.IsNullOrEmpty(translation.LinkStatus)) - { - translation.LinkStatus = PipeStatus.Open; - } - if (jobject[RevitJsonProp.StartElev].MatchNumeric(out double startElev)) - { - translation.StartElev = startElev; - } - if (translation.StartElev <= 0) - { - translation.StartElev = translation.StartPosition.Z; - } - if (jobject[RevitJsonProp.EndElev].MatchNumeric(out double endElev)) - { - translation.EndElev = endElev; - } - if (translation.EndElev <= 0) - { - translation.EndElev = translation.EndPosition.Z; - } - if (jobject[RevitJsonProp.StartQuality].MatchNumeric(out double startQuality)) - { - translation.StartQuality = startQuality; - } - if (jobject[RevitJsonProp.EndQuality].MatchNumeric(out double endQuality)) - { - translation.EndQuality = endQuality; - } - #region 闀垮害 + #region Id - if (jobject[RevitJsonProp.Length].MatchNumeric(out double length)) + if (jobject.ParseString(RevitJsonProp.Id, out string id)) { - translation.Length = length / 1000f; + translation.Id = id; } - if (translation.Length <= 0) + else { - translation.Length = translation.StartPosition.Distance(translation.EndPosition) / 1000f; + translation.AppendOrUpdatePropStatus(nameof(translation.Id), ePropStatus.Error, "缂哄皯[鏋勪欢缂栫爜]"); } #endregion - #region 鐩村緞 + #region Code + + if (jobject.ParseString(RevitJsonProp.Code, out string code)) + { + translation.Code = code; + if (string.IsNullOrEmpty(translation.Code)) + { + translation.Code = translation.Id; + translation.AppendOrUpdatePropStatus(nameof(translation.Code), ePropStatus.Lack, "浣跨敤[鏋勪欢缂栫爜]璧嬪��"); + } + } + else + { + translation.AppendOrUpdatePropStatus(nameof(translation.Code), ePropStatus.Error, "缂哄皯[缂栫爜]"); + } + + #endregion + + #region Name + + if (jobject.ParseString(RevitJsonProp.Name, out string name)) + { + translation.Name = name; + translation.AppendOrUpdatePropStatus(nameof(translation.Name), ePropStatus.Lack, "[鍚嶇О]缂虹渷"); + } + else + { + translation.AppendOrUpdatePropStatus(nameof(translation.Name), ePropStatus.Error, "缂哄皯[鍚嶇О]"); + } + + #endregion + + #region ModelType + + if (jobject.ParseString(RevitJsonProp.ModelType, out string modelType)) + { + translation.ModelType = modelType; + if (string.IsNullOrEmpty(translation.ModelType)) + { + translation.AppendOrUpdatePropStatus(nameof(translation.ModelType), ePropStatus.Lack, "[鍨嬪彿淇℃伅]缂虹渷"); + } + } + else + { + translation.AppendOrUpdatePropStatus(nameof(translation.ModelType), ePropStatus.Error, "缂哄皯[鍨嬪彿淇℃伅]"); + } + + #endregion + + #region Flags + + if (jobject.ParseString(RevitJsonProp.Flags, out string flags)) + { + translation.Flags = Yw.Untity.FlagsHelper.ToList(flags); + if (!string.IsNullOrEmpty(flags)) + { + if (translation.Flags == null || translation.Flags.Count < 1) + { + translation.AppendOrUpdatePropStatus(nameof(translation.Flags), ePropStatus.Abnormal, "[鏍囩]鏍煎紡閿欒"); + } + } + } + else + { + translation.AppendOrUpdatePropStatus(nameof(translation.Flags), ePropStatus.Error, "缂哄皯[鏍囩]"); + } + + #endregion + + #region Description + + if (jobject.ParseString(RevitJsonProp.Description, out string description)) + { + translation.Description = description; + } + else + { + translation.AppendOrUpdatePropStatus(nameof(translation.Description), ePropStatus.Error, "缂哄皯[璇存槑淇℃伅]"); + } + + #endregion + + #region ConnectList + + if (jobject.ParseString(RevitJsonProp.Connects, out string connectString)) + { + var connectList = JsonHelper.Json2Object<List<RevitJsonConnectModel>>(connectString); + translation.ConnectList = connectList?.Select(x => new Model.RevitConnect() + { + Id = x.ConnectId, + Direction = x.Dirction, + Position = new Model.RevitPosition() + { + X = x.Point.X / 1000f, + Y = x.Point.Y / 1000f, + Z = x.Point.Z / 1000f + } + }).ToList(); + if (translation.ConnectList == null || translation.ConnectList.Count < 1) + { + translation.AppendOrUpdatePropStatus(nameof(translation.ConnectList), ePropStatus.Error, "[杩炴帴鍒楄〃]瑙f瀽澶辫触"); + } + } + else + { + translation.AppendOrUpdatePropStatus(nameof(translation.ConnectList), ePropStatus.Error, "缂哄皯[杩炴帴鍒楄〃]"); + } + + #endregion + + #region StartCode/StartPosition + + var startConnect = translation.ConnectList?.GetStartConnect(); + translation.StartCode = startConnect?.Id; + if (string.IsNullOrEmpty(translation.StartCode)) + { + translation.AppendOrUpdatePropStatus(nameof(translation.StartCode), ePropStatus.Error, "[涓婃父鏋勪欢]鍙梉杩炴帴鍒楄〃]褰卞搷瑙f瀽閿欒"); + } + translation.StartPosition = startConnect?.Position; + if (translation.StartPosition == null) + { + translation.AppendOrUpdatePropStatus(nameof(translation.StartPosition), ePropStatus.Error, "[涓婃父鏋勪欢浣嶇疆]鍙梉杩炴帴鍒楄〃]褰卞搷瑙f瀽閿欒"); + } + + #endregion + + #region EndCode/EndPosition + + var endConnect = translation.ConnectList?.GetEndConnect(); + translation.EndCode = endConnect?.Id; + if (string.IsNullOrEmpty(translation.EndCode)) + { + translation.AppendOrUpdatePropStatus(nameof(translation.EndCode), ePropStatus.Error, "[涓嬫父鏋勪欢]鍙梉杩炴帴鍒楄〃]褰卞搷瑙f瀽閿欒"); + } + translation.EndPosition = endConnect?.Position; + if (translation.EndPosition == null) + { + translation.AppendOrUpdatePropStatus(nameof(translation.EndPosition), ePropStatus.Error, "[涓嬫父鏋勪欢浣嶇疆]鍙梉杩炴帴鍒楄〃]褰卞搷瑙f瀽閿欒"); + } + + #endregion + + #region LinkStatus + + if (jobject.ParseString(RevitJsonProp.LinkStatusPipe, out string linkStatus)) + { + translation.LinkStatus = linkStatus; + if (string.IsNullOrEmpty(translation.LinkStatus)) + { + translation.LinkStatus = PipeStatus.Open; + translation.AppendOrUpdatePropStatus(nameof(translation.LinkStatus), ePropStatus.Lack, "[绠¢亾鐘舵�乚缂虹渷"); + } + else + { + if (!PipeStatus.Contains(translation.LinkStatus)) + { + translation.LinkStatus = PipeStatus.Open; + translation.AppendOrUpdatePropStatus(nameof(translation.LinkStatus), ePropStatus.Abnormal, "[绠¢亾鐘舵�乚璁剧疆閿欒"); + } + } + } + else + { + translation.LinkStatus = PipeStatus.Open; + translation.AppendOrUpdatePropStatus(nameof(translation.LinkStatus), ePropStatus.Abnormal, "[绠¢亾鐘舵�乚缂哄皯鎴栨牸寮忛敊璇�"); + } + + #endregion + + #region StartElev + + if (jobject[RevitJsonProp.StartElev].MatchNumeric(out double startElev)) + { + translation.StartElev = startElev / 1000f; + } + else + { + translation.AppendOrUpdatePropStatus(nameof(translation.StartElev), ePropStatus.Abnormal, "[涓婃父鏍囬珮]缂哄皯鎴栨牸寮忛敊璇�"); + } + + if (translation.StartElev <= 0) + { + //閫氳繃z杞磋嚜鍔ㄨ绠� + if (translation.StartPosition == null) + { + translation.AppendOrUpdatePropStatus(nameof(translation.StartElev), ePropStatus.Lack, "[涓婃父鏍囬珮]缂虹渷锛屽彈[涓婃父鏋勪欢浣嶇疆]褰卞搷锛屾棤娉曢�氳繃Z杞磋嚜鍔ㄨ绠�"); + } + else + { + translation.StartElev = translation.StartPosition.Z; + translation.AppendOrUpdatePropStatus(nameof(translation.StartElev), ePropStatus.Lack, "[涓婃父鏍囬珮]缂虹渷锛岄�氳繃Z杞磋嚜鍔ㄨ绠�"); + } + } + + #endregion + + #region EndElev + + if (jobject[RevitJsonProp.EndElev].MatchNumeric(out double endElev)) + { + translation.EndElev = endElev / 1000f; + } + else + { + translation.AppendOrUpdatePropStatus(nameof(translation.EndElev), ePropStatus.Abnormal, "[涓嬫父鏍囬珮]缂哄皯鎴栨牸寮忛敊璇�"); + } + + if (translation.EndElev <= 0) + { + //閫氳繃z杞磋嚜鍔ㄨ绠� + if (translation.EndPosition == null) + { + translation.AppendOrUpdatePropStatus(nameof(translation.EndElev), ePropStatus.Lack, "[涓嬫父鏍囬珮]缂虹渷锛屽彈[涓嬫父鏋勪欢浣嶇疆]褰卞搷锛屾棤娉曢�氳繃Z杞磋嚜鍔ㄨ绠�"); + } + else + { + translation.EndElev = translation.EndPosition.Z; + translation.AppendOrUpdatePropStatus(nameof(translation.EndElev), ePropStatus.Lack, "[涓嬫父鏍囬珮]缂虹渷锛岄�氳繃Z杞磋嚜鍔ㄨ绠�"); + } + } + + #endregion + + #region StartQuality + + if (jobject[RevitJsonProp.StartQuality].MatchNumeric(out double startQuality)) + { + translation.StartQuality = startQuality; + if (translation.StartQuality <= 0) + { + translation.AppendOrUpdatePropStatus(nameof(translation.StartQuality), ePropStatus.Lack, "[涓婃父鍒濆姘磋川]缂虹渷"); + } + } + else + { + translation.AppendOrUpdatePropStatus(nameof(translation.StartQuality), ePropStatus.Abnormal, "[涓婃父鍒濆姘磋川]缂哄皯鎴栬�呮牸寮忛敊璇�"); + } + + #endregion + + #region EndQuality + + if (jobject[RevitJsonProp.EndQuality].MatchNumeric(out double endQuality)) + { + translation.EndQuality = endQuality; + if (translation.EndQuality <= 0) + { + translation.AppendOrUpdatePropStatus(nameof(translation.EndQuality), ePropStatus.Lack, "[涓嬫父鍒濆姘磋川]缂虹渷"); + } + } + else + { + translation.AppendOrUpdatePropStatus(nameof(translation.EndQuality), ePropStatus.Abnormal, "[涓嬫父鍒濆姘磋川]缂哄皯鎴栬�呮牸寮忛敊璇�"); + } + + #endregion + + #region Material + + if (jobject.ParseString(RevitJsonProp.Material, out string material)) + { + translation.Material = material; + if (string.IsNullOrEmpty(translation.Material)) + { + translation.AppendOrUpdatePropStatus(nameof(translation.Material), ePropStatus.Lack, "[鏉愯川]缂虹渷"); + } + } + else + { + translation.AppendOrUpdatePropStatus(nameof(translation.Material), ePropStatus.Abnormal, "缂哄皯[鏉愯川]"); + } + + #endregion + + #region Diameter if (jobject[RevitJsonProp.Diameter].MatchNumeric(out double diameter)) { translation.Diameter = diameter; } - if (translation.Diameter <= 0) + else { - var jobjectInternalDiameter = jobject[RevitJsonProp.InternalDiameter]; - if (jobjectInternalDiameter != null) - { - if (jobjectInternalDiameter.MatchNumeric(out double internalDiameter)) - { - translation.Diameter = internalDiameter; - } - } + translation.AppendOrUpdatePropStatus(nameof(translation.Diameter), ePropStatus.Abnormal, "[鐩村緞]缂哄皯鎴栬�呮牸寮忛敊璇�"); } - if (translation.Diameter <= 0) + + if (translation.Diameter < 1) { - var jobjectNominalDiameter = jobject[RevitJsonProp.NominalDiameter]; - if (jobjectNominalDiameter != null) + if (jobject[RevitJsonProp.InternalDiameter].MatchNumeric(out double internalDiameter)) { - if (jobjectNominalDiameter.MatchNumeric(out double nominalDiameter)) - { - translation.Diameter = nominalDiameter; - } + translation.Diameter = internalDiameter; + translation.AppendOrUpdatePropStatus(nameof(translation.Diameter), ePropStatus.Lack, "[鐩村緞]閫氳繃[鍐呭緞]杩涜淇]"); + } + else + { + translation.AppendOrUpdatePropStatus(nameof(translation.Diameter), ePropStatus.Abnormal, "[鐩村緞]鏃犳硶閫氳繃[鍐呭緞]杩涜淇]"); } } - if (translation.Diameter <= 0) + if (translation.Diameter < 1) + { + if (jobject[RevitJsonProp.DN].MatchNumeric(out double dn)) + { + translation.Diameter = dn; + translation.AppendOrUpdatePropStatus(nameof(translation.Diameter), ePropStatus.Lack, "[鐩村緞]閫氳繃[鍏О鐩村緞]杩涜淇]"); + } + else + { + translation.AppendOrUpdatePropStatus(nameof(translation.Diameter), ePropStatus.Abnormal, "[鐩村緞]鏃犳硶閫氳繃[鍏О鐩村緞]杩涜淇]"); + } + } + + if (translation.Diameter < 1) { translation.Diameter = 150; + translation.AppendOrUpdatePropStatus(nameof(translation.Diameter), ePropStatus.Lack, "[鐩村緞][鍐呭緞]瑙f瀽閿欒锛屼娇鐢ㄩ粯璁ゅ��(500mm)淇]"); } #endregion + + #region Length + + if (jobject[RevitJsonProp.Length].MatchNumeric(out double length)) + { + translation.Length = length / 1000f; + } + else + { + translation.AppendOrUpdatePropStatus(nameof(translation.Length), ePropStatus.Abnormal, "[闀垮害]缂哄皯鎴栬�呮牸寮忛敊璇�"); + } + if (translation.Length <= 0) + { + if (translation.StartPosition != null && translation.EndPosition != null) + { + translation.Length = translation.StartPosition.Distance(translation.EndPosition); + translation.AppendOrUpdatePropStatus(nameof(translation.Length), ePropStatus.Lack, "[闀垮害]缂虹渷锛岄�氳繃浣嶇疆鑷姩璁$畻"); + } + else + { + translation.AppendOrUpdatePropStatus(nameof(translation.Length), ePropStatus.Abnormal, "[闀垮害]鍙梉杩炴帴鍒楄〃]褰卞搷鏃犳硶鑷姩璁$畻"); + } + } + + #endregion + + #region Roughness + + if (jobject[RevitJsonProp.Roughness].MatchNumeric(out double roughness)) + { + translation.Roughness = roughness; + } + else + { + translation.AppendOrUpdatePropStatus(nameof(translation.Roughness), ePropStatus.Abnormal, "[绮楃硻绯绘暟]缂哄皯鎴栬�呮暟鎹牸寮忛敊璇�"); + } + + if (translation.Roughness < 0.1) + { + translation.Roughness = 110; + translation.AppendOrUpdatePropStatus(nameof(translation.Roughness), ePropStatus.Lack, "[绮楃硻绯绘暟]瑙f瀽閿欒锛岄�氳繃榛樿鍊�(110)杩涜淇"); + } + + #endregion + + #region MinorLoss if (jobject[RevitJsonProp.MinorLoss].MatchNumeric(out double minorLoss)) { translation.MinorLoss = minorLoss; } - if (jobject[RevitJsonProp.Roughness].MatchNumeric(out double roughness)) + else { - translation.Roughness = roughness; - } - if (translation.Roughness < 0.1) - { - translation.Roughness = 110; + translation.AppendOrUpdatePropStatus(nameof(translation.MinorLoss), ePropStatus.Abnormal, "[灞�閮ㄩ樆鍔涚郴鏁癩缂哄皯鎴栬�呮暟鎹牸寮忛敊璇�"); } + #endregion return translation; } @@ -1556,101 +4454,395 @@ } var exchanger = new Model.RevitExchanger(); - exchanger.Id = jobject[RevitJsonProp.Id].ToString(); - exchanger.Code = jobject[RevitJsonProp.Code].ToString(); - if (string.IsNullOrEmpty(exchanger.Code)) + + #region Id + + if (jobject.ParseString(RevitJsonProp.Id, out string id)) { - exchanger.Code = exchanger.Id; + exchanger.Id = id; } - exchanger.Name = jobject[RevitJsonProp.Name].ToString(); - exchanger.ModelType = jobject[RevitJsonProp.ModelType].ToString(); - exchanger.Flags = Yw.Untity.FlagsHelper.ToList(jobject[RevitJsonProp.Flags].ToString()); - exchanger.Description = jobject[RevitJsonProp.Description].ToString(); - var connectList = JsonHelper.Json2Object<List<RevitJsonConnectModel>>(jobject[RevitJsonProp.Connects].ToString()); - exchanger.ConnectList = connectList?.Select(x => new Model.RevitConnect() + else { - Id = x.ConnectId, - Direction = x.Dirction, - Position = new Model.RevitPosition() + exchanger.AppendOrUpdatePropStatus(nameof(exchanger.Id), ePropStatus.Error, "缂哄皯[鏋勪欢缂栫爜]"); + } + + #endregion + + #region Code + + if (jobject.ParseString(RevitJsonProp.Code, out string code)) + { + exchanger.Code = code; + if (string.IsNullOrEmpty(exchanger.Code)) { - X = x.Point.X / 1000f, - Y = x.Point.Y / 1000f, - Z = x.Point.Z / 1000f + exchanger.Code = exchanger.Id; + exchanger.AppendOrUpdatePropStatus(nameof(exchanger.Code), ePropStatus.Lack, "浣跨敤[鏋勪欢缂栫爜]璧嬪��"); } - }).ToList(); - var startConnect = exchanger.ConnectList.GetStartConnect(); - var endConnect = exchanger.ConnectList.GetEndConnect(); - exchanger.StartCode = startConnect.Id; - exchanger.EndCode = endConnect.Id; - exchanger.StartPosition = startConnect.Position; - exchanger.EndPosition = endConnect.Position; - exchanger.LinkStatus = jobject[RevitJsonProp.LinkStatusPipe].ToString(); - if (string.IsNullOrEmpty(exchanger.LinkStatus)) + } + else + { + exchanger.AppendOrUpdatePropStatus(nameof(exchanger.Code), ePropStatus.Error, "缂哄皯[缂栫爜]"); + } + + #endregion + + #region Name + + if (jobject.ParseString(RevitJsonProp.Name, out string name)) + { + exchanger.Name = name; + exchanger.AppendOrUpdatePropStatus(nameof(exchanger.Name), ePropStatus.Lack, "[鍚嶇О]缂虹渷"); + } + else + { + exchanger.AppendOrUpdatePropStatus(nameof(exchanger.Name), ePropStatus.Error, "缂哄皯[鍚嶇О]"); + } + + #endregion + + #region ModelType + + if (jobject.ParseString(RevitJsonProp.ModelType, out string modelType)) + { + exchanger.ModelType = modelType; + if (string.IsNullOrEmpty(exchanger.ModelType)) + { + exchanger.AppendOrUpdatePropStatus(nameof(exchanger.ModelType), ePropStatus.Lack, "[鍨嬪彿淇℃伅]缂虹渷"); + } + } + else + { + exchanger.AppendOrUpdatePropStatus(nameof(exchanger.ModelType), ePropStatus.Error, "缂哄皯[鍨嬪彿淇℃伅]"); + } + + #endregion + + #region Flags + + if (jobject.ParseString(RevitJsonProp.Flags, out string flags)) + { + exchanger.Flags = Yw.Untity.FlagsHelper.ToList(flags); + if (!string.IsNullOrEmpty(flags)) + { + if (exchanger.Flags == null || exchanger.Flags.Count < 1) + { + exchanger.AppendOrUpdatePropStatus(nameof(exchanger.Flags), ePropStatus.Abnormal, "[鏍囩]鏍煎紡閿欒"); + } + } + } + else + { + exchanger.AppendOrUpdatePropStatus(nameof(exchanger.Flags), ePropStatus.Error, "缂哄皯[鏍囩]"); + } + + #endregion + + #region Description + + if (jobject.ParseString(RevitJsonProp.Description, out string description)) + { + exchanger.Description = description; + } + else + { + exchanger.AppendOrUpdatePropStatus(nameof(exchanger.Description), ePropStatus.Error, "缂哄皯[璇存槑淇℃伅]"); + } + + #endregion + + #region ConnectList + + if (jobject.ParseString(RevitJsonProp.Connects, out string connectString)) + { + var connectList = JsonHelper.Json2Object<List<RevitJsonConnectModel>>(connectString); + exchanger.ConnectList = connectList?.Select(x => new Model.RevitConnect() + { + Id = x.ConnectId, + Direction = x.Dirction, + Position = new Model.RevitPosition() + { + X = x.Point.X / 1000f, + Y = x.Point.Y / 1000f, + Z = x.Point.Z / 1000f + } + }).ToList(); + if (exchanger.ConnectList == null || exchanger.ConnectList.Count < 1) + { + exchanger.AppendOrUpdatePropStatus(nameof(exchanger.ConnectList), ePropStatus.Error, "[杩炴帴鍒楄〃]瑙f瀽澶辫触"); + } + } + else + { + exchanger.AppendOrUpdatePropStatus(nameof(exchanger.ConnectList), ePropStatus.Error, "缂哄皯[杩炴帴鍒楄〃]"); + } + + #endregion + + #region StartCode/StartPosition + + var startConnect = exchanger.ConnectList?.GetStartConnect(); + exchanger.StartCode = startConnect?.Id; + if (string.IsNullOrEmpty(exchanger.StartCode)) + { + exchanger.AppendOrUpdatePropStatus(nameof(exchanger.StartCode), ePropStatus.Error, "[涓婃父鏋勪欢]鍙梉杩炴帴鍒楄〃]褰卞搷瑙f瀽閿欒"); + } + exchanger.StartPosition = startConnect?.Position; + if (exchanger.StartPosition == null) + { + exchanger.AppendOrUpdatePropStatus(nameof(exchanger.StartPosition), ePropStatus.Error, "[涓婃父鏋勪欢浣嶇疆]鍙梉杩炴帴鍒楄〃]褰卞搷瑙f瀽閿欒"); + } + + #endregion + + #region EndCode/EndPosition + + var endConnect = exchanger.ConnectList?.GetEndConnect(); + exchanger.EndCode = endConnect?.Id; + if (string.IsNullOrEmpty(exchanger.EndCode)) + { + exchanger.AppendOrUpdatePropStatus(nameof(exchanger.EndCode), ePropStatus.Error, "[涓嬫父鏋勪欢]鍙梉杩炴帴鍒楄〃]褰卞搷瑙f瀽閿欒"); + } + exchanger.EndPosition = endConnect?.Position; + if (exchanger.EndPosition == null) + { + exchanger.AppendOrUpdatePropStatus(nameof(exchanger.EndPosition), ePropStatus.Error, "[涓嬫父鏋勪欢浣嶇疆]鍙梉杩炴帴鍒楄〃]褰卞搷瑙f瀽閿欒"); + } + + #endregion + + #region LinkStatus + + if (jobject.ParseString(RevitJsonProp.LinkStatusPipe, out string linkStatus)) + { + exchanger.LinkStatus = linkStatus; + if (string.IsNullOrEmpty(exchanger.LinkStatus)) + { + exchanger.LinkStatus = PipeStatus.Open; + exchanger.AppendOrUpdatePropStatus(nameof(exchanger.LinkStatus), ePropStatus.Lack, "[绠¢亾鐘舵�乚缂虹渷"); + } + else + { + if (!PipeStatus.Contains(exchanger.LinkStatus)) + { + exchanger.LinkStatus = PipeStatus.Open; + exchanger.AppendOrUpdatePropStatus(nameof(exchanger.LinkStatus), ePropStatus.Abnormal, "[绠¢亾鐘舵�乚璁剧疆閿欒"); + } + } + } + else { exchanger.LinkStatus = PipeStatus.Open; + exchanger.AppendOrUpdatePropStatus(nameof(exchanger.LinkStatus), ePropStatus.Abnormal, "[绠¢亾鐘舵�乚缂哄皯鎴栨牸寮忛敊璇�"); } + + #endregion + + #region StartElev + if (jobject[RevitJsonProp.StartElev].MatchNumeric(out double startElev)) { - exchanger.StartElev = startElev; + exchanger.StartElev = startElev / 1000f; } + else + { + exchanger.AppendOrUpdatePropStatus(nameof(exchanger.StartElev), ePropStatus.Abnormal, "[涓婃父鏍囬珮]缂哄皯鎴栨牸寮忛敊璇�"); + } + if (exchanger.StartElev <= 0) { - exchanger.StartElev = exchanger.StartPosition.Z; + //閫氳繃z杞磋嚜鍔ㄨ绠� + if (exchanger.StartPosition == null) + { + exchanger.AppendOrUpdatePropStatus(nameof(exchanger.StartElev), ePropStatus.Lack, "[涓婃父鏍囬珮]缂虹渷锛屽彈[涓婃父鏋勪欢浣嶇疆]褰卞搷锛屾棤娉曢�氳繃Z杞磋嚜鍔ㄨ绠�"); + } + else + { + exchanger.StartElev = exchanger.StartPosition.Z; + exchanger.AppendOrUpdatePropStatus(nameof(exchanger.StartElev), ePropStatus.Lack, "[涓婃父鏍囬珮]缂虹渷锛岄�氳繃Z杞磋嚜鍔ㄨ绠�"); + } } + + #endregion + + #region EndElev + if (jobject[RevitJsonProp.EndElev].MatchNumeric(out double endElev)) { - exchanger.EndElev = endElev; + exchanger.EndElev = endElev / 1000f; } + else + { + exchanger.AppendOrUpdatePropStatus(nameof(exchanger.EndElev), ePropStatus.Abnormal, "[涓嬫父鏍囬珮]缂哄皯鎴栨牸寮忛敊璇�"); + } + if (exchanger.EndElev <= 0) { - exchanger.EndElev = exchanger.EndPosition.Z; + //閫氳繃z杞磋嚜鍔ㄨ绠� + if (exchanger.EndPosition == null) + { + exchanger.AppendOrUpdatePropStatus(nameof(exchanger.EndElev), ePropStatus.Lack, "[涓嬫父鏍囬珮]缂虹渷锛屽彈[涓嬫父鏋勪欢浣嶇疆]褰卞搷锛屾棤娉曢�氳繃Z杞磋嚜鍔ㄨ绠�"); + } + else + { + exchanger.EndElev = exchanger.EndPosition.Z; + exchanger.AppendOrUpdatePropStatus(nameof(exchanger.EndElev), ePropStatus.Lack, "[涓嬫父鏍囬珮]缂虹渷锛岄�氳繃Z杞磋嚜鍔ㄨ绠�"); + } } + + #endregion + + #region StartQuality + if (jobject[RevitJsonProp.StartQuality].MatchNumeric(out double startQuality)) { exchanger.StartQuality = startQuality; + if (exchanger.StartQuality <= 0) + { + exchanger.AppendOrUpdatePropStatus(nameof(exchanger.StartQuality), ePropStatus.Lack, "[涓婃父鍒濆姘磋川]缂虹渷"); + } } + else + { + exchanger.AppendOrUpdatePropStatus(nameof(exchanger.StartQuality), ePropStatus.Abnormal, "[涓婃父鍒濆姘磋川]缂哄皯鎴栬�呮牸寮忛敊璇�"); + } + + #endregion + + #region EndQuality + if (jobject[RevitJsonProp.EndQuality].MatchNumeric(out double endQuality)) { exchanger.EndQuality = endQuality; + if (exchanger.EndQuality <= 0) + { + exchanger.AppendOrUpdatePropStatus(nameof(exchanger.EndQuality), ePropStatus.Lack, "[涓嬫父鍒濆姘磋川]缂虹渷"); + } + } + else + { + exchanger.AppendOrUpdatePropStatus(nameof(exchanger.EndQuality), ePropStatus.Abnormal, "[涓嬫父鍒濆姘磋川]缂哄皯鎴栬�呮牸寮忛敊璇�"); } - if (jobject[RevitJsonProp.Length].MatchNumeric(out double length)) + #endregion + + #region Material + + if (jobject.ParseString(RevitJsonProp.Material, out string material)) { - exchanger.Length = length / 1000f; + exchanger.Material = material; + if (string.IsNullOrEmpty(exchanger.Material)) + { + exchanger.AppendOrUpdatePropStatus(nameof(exchanger.Material), ePropStatus.Lack, "[鏉愯川]缂虹渷"); + } } - if (exchanger.Length <= 0) + else { - exchanger.Length = exchanger.StartPosition.Distance(exchanger.EndPosition) / 1000f; + exchanger.AppendOrUpdatePropStatus(nameof(exchanger.Material), ePropStatus.Abnormal, "缂哄皯[鏉愯川]"); } + + #endregion + + #region Diameter if (jobject[RevitJsonProp.Diameter].MatchNumeric(out double diameter)) { exchanger.Diameter = diameter; } + else + { + exchanger.AppendOrUpdatePropStatus(nameof(exchanger.Diameter), ePropStatus.Abnormal, "[鐩村緞]缂哄皯鎴栬�呮牸寮忛敊璇�"); + } + if (exchanger.Diameter < 1) { if (jobject[RevitJsonProp.InternalDiameter].MatchNumeric(out double internalDiameter)) { exchanger.Diameter = internalDiameter; + exchanger.AppendOrUpdatePropStatus(nameof(exchanger.Diameter), ePropStatus.Lack, "[鐩村緞]閫氳繃[鍐呭緞]杩涜淇]"); + } + else + { + exchanger.AppendOrUpdatePropStatus(nameof(exchanger.Diameter), ePropStatus.Abnormal, "[鐩村緞]鏃犳硶閫氳繃[鍐呭緞]杩涜淇]"); } } + + if (exchanger.Diameter < 1) + { + if (jobject[RevitJsonProp.DN].MatchNumeric(out double dn)) + { + exchanger.Diameter = dn; + exchanger.AppendOrUpdatePropStatus(nameof(exchanger.Diameter), ePropStatus.Lack, "[鐩村緞]閫氳繃[鍏О鐩村緞]杩涜淇]"); + } + else + { + exchanger.AppendOrUpdatePropStatus(nameof(exchanger.Diameter), ePropStatus.Abnormal, "[鐩村緞]鏃犳硶閫氳繃[鍏О鐩村緞]杩涜淇]"); + } + } + + if (exchanger.Diameter < 1) + { + exchanger.Diameter = 1000; + exchanger.AppendOrUpdatePropStatus(nameof(exchanger.Diameter), ePropStatus.Lack, "[鐩村緞][鍐呭緞]瑙f瀽閿欒锛屼娇鐢ㄩ粯璁ゅ��(1000mm)淇]"); + } + + #endregion + + #region Length + + if (jobject[RevitJsonProp.Length].MatchNumeric(out double length)) + { + exchanger.Length = length / 1000f; + } + else + { + exchanger.AppendOrUpdatePropStatus(nameof(exchanger.Length), ePropStatus.Abnormal, "[闀垮害]缂哄皯鎴栬�呮牸寮忛敊璇�"); + } + if (exchanger.Length <= 0) + { + if (exchanger.StartPosition != null && exchanger.EndPosition != null) + { + exchanger.Length = exchanger.StartPosition.Distance(exchanger.EndPosition); + exchanger.AppendOrUpdatePropStatus(nameof(exchanger.Length), ePropStatus.Lack, "[闀垮害]缂虹渷锛岄�氳繃浣嶇疆鑷姩璁$畻"); + } + else + { + exchanger.AppendOrUpdatePropStatus(nameof(exchanger.Length), ePropStatus.Abnormal, "[闀垮害]鍙梉杩炴帴鍒楄〃]褰卞搷鏃犳硶鑷姩璁$畻"); + } + } + + #endregion + + #region Roughness if (jobject[RevitJsonProp.Roughness].MatchNumeric(out double roughness)) { exchanger.Roughness = roughness; } + else + { + exchanger.AppendOrUpdatePropStatus(nameof(exchanger.Roughness), ePropStatus.Abnormal, "[绮楃硻绯绘暟]缂哄皯鎴栬�呮暟鎹牸寮忛敊璇�"); + } + if (exchanger.Roughness < 0.1) { exchanger.Roughness = 110; + exchanger.AppendOrUpdatePropStatus(nameof(exchanger.Roughness), ePropStatus.Lack, "[绮楃硻绯绘暟]瑙f瀽閿欒锛岄�氳繃榛樿鍊�(110)杩涜淇"); } + + #endregion + + #region MinorLoss + if (jobject[RevitJsonProp.MinorLoss].MatchNumeric(out double minorLoss)) { exchanger.MinorLoss = minorLoss; } - if (exchanger.Diameter <= 0) + else { - exchanger.Diameter = 150; + exchanger.AppendOrUpdatePropStatus(nameof(exchanger.MinorLoss), ePropStatus.Abnormal, "[灞�閮ㄩ樆鍔涚郴鏁癩缂哄皯鎴栬�呮暟鎹牸寮忛敊璇�"); } + + #endregion return exchanger; } @@ -1663,92 +4855,484 @@ return default; } var pump = new Model.RevitPump(); - pump.Id = jobject[RevitJsonProp.Id].ToString(); - pump.Code = jobject[RevitJsonProp.Code].ToString(); - if (string.IsNullOrEmpty(pump.Code)) + + #region Id + + if (jobject.ParseString(RevitJsonProp.Id, out string id)) { - pump.Code = pump.Id; + pump.Id = id; } - pump.Name = jobject[RevitJsonProp.Name].ToString(); - pump.ModelType = jobject[RevitJsonProp.ModelType].ToString(); - pump.Flags = Yw.Untity.FlagsHelper.ToList(jobject[RevitJsonProp.Flags].ToString()); - pump.Description = jobject[RevitJsonProp.Description].ToString(); - var connectList = JsonHelper.Json2Object<List<RevitJsonConnectModel>>(jobject[RevitJsonProp.Connects].ToString()); - pump.ConnectList = connectList?.Select(x => new Model.RevitConnect() + else { - Id = x.ConnectId, - Direction = x.Dirction, - Position = new Model.RevitPosition() + pump.AppendOrUpdatePropStatus(nameof(pump.Id), ePropStatus.Error, "缂哄皯[鏋勪欢缂栫爜]"); + } + + #endregion + + #region Code + + if (jobject.ParseString(RevitJsonProp.Code, out string code)) + { + pump.Code = code; + if (string.IsNullOrEmpty(pump.Code)) { - X = x.Point.X / 1000f, - Y = x.Point.Y / 1000f, - Z = x.Point.Z / 1000f + pump.Code = pump.Id; + pump.AppendOrUpdatePropStatus(nameof(pump.Code), ePropStatus.Lack, "浣跨敤[鏋勪欢缂栫爜]璧嬪��"); } - }).ToList(); - var startConnect = pump.ConnectList.GetStartConnect(); - var endConnect = pump.ConnectList.GetEndConnect(); - pump.StartCode = startConnect.Id; - pump.EndCode = endConnect.Id; - pump.StartPosition = startConnect.Position; - pump.EndPosition = endConnect.Position; - pump.LinkStatus = jobject[RevitJsonProp.LinkStatusPump].ToString(); - if (string.IsNullOrEmpty(pump.LinkStatus)) - { - pump.LinkStatus = PumpStatus.Open; } + else + { + pump.AppendOrUpdatePropStatus(nameof(pump.Code), ePropStatus.Error, "缂哄皯[缂栫爜]"); + } + + #endregion + + #region Name + + if (jobject.ParseString(RevitJsonProp.Name, out string name)) + { + pump.Name = name; + pump.AppendOrUpdatePropStatus(nameof(pump.Name), ePropStatus.Lack, "[鍚嶇О]缂虹渷"); + } + else + { + pump.AppendOrUpdatePropStatus(nameof(pump.Name), ePropStatus.Error, "缂哄皯[鍚嶇О]"); + } + + #endregion + + #region ModelType + + if (jobject.ParseString(RevitJsonProp.ModelType, out string modelType)) + { + pump.ModelType = modelType; + if (string.IsNullOrEmpty(pump.ModelType)) + { + pump.AppendOrUpdatePropStatus(nameof(pump.ModelType), ePropStatus.Lack, "[鍨嬪彿淇℃伅]缂虹渷"); + } + } + else + { + pump.AppendOrUpdatePropStatus(nameof(pump.ModelType), ePropStatus.Error, "缂哄皯[鍨嬪彿淇℃伅]"); + } + + #endregion + + #region Flags + + if (jobject.ParseString(RevitJsonProp.Flags, out string flags)) + { + pump.Flags = Yw.Untity.FlagsHelper.ToList(flags); + if (!string.IsNullOrEmpty(flags)) + { + if (pump.Flags == null || pump.Flags.Count < 1) + { + pump.AppendOrUpdatePropStatus(nameof(pump.Flags), ePropStatus.Abnormal, "[鏍囩]鏍煎紡閿欒"); + } + } + } + else + { + pump.AppendOrUpdatePropStatus(nameof(pump.Flags), ePropStatus.Error, "缂哄皯[鏍囩]"); + } + + #endregion + + #region Description + + if (jobject.ParseString(RevitJsonProp.Description, out string description)) + { + pump.Description = description; + } + else + { + pump.AppendOrUpdatePropStatus(nameof(pump.Description), ePropStatus.Error, "缂哄皯[璇存槑淇℃伅]"); + } + + #endregion + + #region ConnectList + + if (jobject.ParseString(RevitJsonProp.Connects, out string connectString)) + { + var connectList = JsonHelper.Json2Object<List<RevitJsonConnectModel>>(connectString); + pump.ConnectList = connectList?.Select(x => new Model.RevitConnect() + { + Id = x.ConnectId, + Direction = x.Dirction, + Position = new Model.RevitPosition() + { + X = x.Point.X / 1000f, + Y = x.Point.Y / 1000f, + Z = x.Point.Z / 1000f + } + }).ToList(); + if (pump.ConnectList == null || pump.ConnectList.Count < 1) + { + pump.AppendOrUpdatePropStatus(nameof(pump.ConnectList), ePropStatus.Error, "[杩炴帴鍒楄〃]瑙f瀽澶辫触"); + } + } + else + { + pump.AppendOrUpdatePropStatus(nameof(pump.ConnectList), ePropStatus.Error, "缂哄皯[杩炴帴鍒楄〃]"); + } + + #endregion + + #region StartCode/StartPosition + + var startConnect = pump.ConnectList?.GetStartConnect(); + pump.StartCode = startConnect?.Id; + if (string.IsNullOrEmpty(pump.StartCode)) + { + pump.AppendOrUpdatePropStatus(nameof(pump.StartCode), ePropStatus.Error, "[涓婃父鏋勪欢]鍙梉杩炴帴鍒楄〃]褰卞搷瑙f瀽閿欒"); + } + pump.StartPosition = startConnect?.Position; + if (pump.StartPosition == null) + { + pump.AppendOrUpdatePropStatus(nameof(pump.StartPosition), ePropStatus.Error, "[涓婃父鏋勪欢浣嶇疆]鍙梉杩炴帴鍒楄〃]褰卞搷瑙f瀽閿欒"); + } + + #endregion + + #region EndCode/EndPosition + + var endConnect = pump.ConnectList?.GetEndConnect(); + pump.EndCode = endConnect?.Id; + if (string.IsNullOrEmpty(pump.EndCode)) + { + pump.AppendOrUpdatePropStatus(nameof(pump.EndCode), ePropStatus.Error, "[涓嬫父鏋勪欢]鍙梉杩炴帴鍒楄〃]褰卞搷瑙f瀽閿欒"); + } + pump.EndPosition = endConnect?.Position; + if (pump.EndPosition == null) + { + pump.AppendOrUpdatePropStatus(nameof(pump.EndPosition), ePropStatus.Error, "[涓嬫父鏋勪欢浣嶇疆]鍙梉杩炴帴鍒楄〃]褰卞搷瑙f瀽閿欒"); + } + + #endregion + + #region LinkStatus + + if (jobject.ParseString(RevitJsonProp.LinkStatusPump, out string linkStatus)) + { + pump.LinkStatus = linkStatus; + if (string.IsNullOrEmpty(pump.LinkStatus)) + { + pump.LinkStatus = PumpStatus.Open; + pump.AppendOrUpdatePropStatus(nameof(pump.LinkStatus), ePropStatus.Lack, "[姘存车鐘舵�乚缂虹渷"); + } + else + { + if (!PumpStatus.Contains(pump.LinkStatus)) + { + pump.LinkStatus = PipeStatus.Open; + pump.AppendOrUpdatePropStatus(nameof(pump.LinkStatus), ePropStatus.Abnormal, "[姘存车鐘舵�乚璁剧疆閿欒"); + } + } + } + else + { + pump.LinkStatus = PipeStatus.Open; + pump.AppendOrUpdatePropStatus(nameof(pump.LinkStatus), ePropStatus.Abnormal, "[姘存车鐘舵�乚缂哄皯鎴栨牸寮忛敊璇�"); + } + + #endregion + + #region StartElev + if (jobject[RevitJsonProp.StartElev].MatchNumeric(out double startElev)) { - pump.StartElev = startElev; + pump.StartElev = startElev / 1000f; } + else + { + pump.AppendOrUpdatePropStatus(nameof(pump.StartElev), ePropStatus.Abnormal, "[涓婃父鏍囬珮]缂哄皯鎴栨牸寮忛敊璇�"); + } + if (pump.StartElev <= 0) { - pump.StartElev = pump.StartPosition.Z; + //閫氳繃z杞磋嚜鍔ㄨ绠� + if (pump.StartPosition == null) + { + pump.AppendOrUpdatePropStatus(nameof(pump.StartElev), ePropStatus.Lack, "[涓婃父鏍囬珮]缂虹渷锛屽彈[涓婃父鏋勪欢浣嶇疆]褰卞搷锛屾棤娉曢�氳繃Z杞磋嚜鍔ㄨ绠�"); + } + else + { + pump.StartElev = pump.StartPosition.Z; + pump.AppendOrUpdatePropStatus(nameof(pump.StartElev), ePropStatus.Lack, "[涓婃父鏍囬珮]缂虹渷锛岄�氳繃Z杞磋嚜鍔ㄨ绠�"); + } } + + #endregion + + #region EndElev + if (jobject[RevitJsonProp.EndElev].MatchNumeric(out double endElev)) { - pump.EndElev = endElev; + pump.EndElev = endElev / 1000f; } + else + { + pump.AppendOrUpdatePropStatus(nameof(pump.EndElev), ePropStatus.Abnormal, "[涓嬫父鏍囬珮]缂哄皯鎴栨牸寮忛敊璇�"); + } + if (pump.EndElev <= 0) { - pump.EndElev = pump.EndPosition.Z; + //閫氳繃z杞磋嚜鍔ㄨ绠� + if (pump.EndPosition == null) + { + pump.AppendOrUpdatePropStatus(nameof(pump.EndElev), ePropStatus.Lack, "[涓嬫父鏍囬珮]缂虹渷锛屽彈[涓嬫父鏋勪欢浣嶇疆]褰卞搷锛屾棤娉曢�氳繃Z杞磋嚜鍔ㄨ绠�"); + } + else + { + pump.EndElev = pump.EndPosition.Z; + pump.AppendOrUpdatePropStatus(nameof(pump.EndElev), ePropStatus.Lack, "[涓嬫父鏍囬珮]缂虹渷锛岄�氳繃Z杞磋嚜鍔ㄨ绠�"); + } } + + #endregion + + #region StartQuality + if (jobject[RevitJsonProp.StartQuality].MatchNumeric(out double startQuality)) { pump.StartQuality = startQuality; + if (pump.StartQuality <= 0) + { + pump.AppendOrUpdatePropStatus(nameof(pump.StartQuality), ePropStatus.Lack, "[涓婃父鍒濆姘磋川]缂虹渷"); + } } + else + { + pump.AppendOrUpdatePropStatus(nameof(pump.StartQuality), ePropStatus.Abnormal, "[涓婃父鍒濆姘磋川]缂哄皯鎴栬�呮牸寮忛敊璇�"); + } + + #endregion + + #region EndQuality + if (jobject[RevitJsonProp.EndQuality].MatchNumeric(out double endQuality)) { pump.EndQuality = endQuality; + if (pump.EndQuality <= 0) + { + pump.AppendOrUpdatePropStatus(nameof(pump.EndQuality), ePropStatus.Lack, "[涓嬫父鍒濆姘磋川]缂虹渷"); + } } - if (jobject[RevitJsonProp.RatedPower].MatchNumeric(out double ratedPower)) + else { - pump.RatedPower = ratedPower; + pump.AppendOrUpdatePropStatus(nameof(pump.EndQuality), ePropStatus.Abnormal, "[涓嬫父鍒濆姘磋川]缂哄皯鎴栬�呮牸寮忛敊璇�"); } - pump.CurveQH = jobject[RevitJsonProp.CurveQH].ToString(); - pump.CurveQH = "PumpDefault"; + + #endregion + + #region RatedP + + if (jobject[RevitJsonProp.RatedP].MatchNumeric(out double ratedP)) + { + pump.RatedP = ratedP; + if (pump.RatedP < 1) + { + pump.AppendOrUpdatePropStatus(nameof(pump.RatedP), ePropStatus.Lack, "[棰濆畾鍔熺巼]缂虹渷"); + } + } + else + { + pump.AppendOrUpdatePropStatus(nameof(pump.RatedP), ePropStatus.Abnormal, "[棰濆畾鍔熺巼]缂哄皯鎴栬�呮牸寮忛敊璇�"); + } + + #endregion + + #region RatedQ + + if (jobject[RevitJsonProp.RatedQ].MatchNumeric(out double ratedQ)) + { + pump.RatedQ = ratedQ; + if (pump.RatedQ < 1) + { + pump.AppendOrUpdatePropStatus(nameof(pump.RatedQ), ePropStatus.Lack, "[棰濆畾娴侀噺]缂虹渷"); + } + } + else + { + pump.AppendOrUpdatePropStatus(nameof(pump.RatedQ), ePropStatus.Abnormal, "[棰濆畾娴侀噺]缂哄皯鎴栬�呮牸寮忛敊璇�"); + } + + #endregion + + #region RatedH + + if (jobject[RevitJsonProp.RatedH].MatchNumeric(out double ratedH)) + { + pump.RatedH = ratedH; + if (pump.RatedH < 1) + { + pump.AppendOrUpdatePropStatus(nameof(pump.RatedH), ePropStatus.Lack, "[棰濆畾鎵▼]缂虹渷"); + } + } + else + { + pump.AppendOrUpdatePropStatus(nameof(pump.RatedH), ePropStatus.Abnormal, "[棰濆畾鎵▼]缂哄皯鎴栬�呮牸寮忛敊璇�"); + } + + #endregion + + #region RatedN + + if (jobject[RevitJsonProp.RatedN].MatchNumeric(out double ratedN)) + { + pump.RatedN = ratedN; + if (pump.RatedN < 1) + { + pump.AppendOrUpdatePropStatus(nameof(pump.RatedN), ePropStatus.Lack, "[棰濆畾杞�焆缂虹渷"); + } + } + else + { + pump.AppendOrUpdatePropStatus(nameof(pump.RatedN), ePropStatus.Abnormal, "[棰濆畾杞�焆缂哄皯鎴栬�呮牸寮忛敊璇�"); + } + + #endregion + + #region RatedHz + + if (jobject[RevitJsonProp.RatedHz].MatchNumeric(out double ratedHz)) + { + pump.RatedHz = ratedHz; + if (pump.RatedHz < 1) + { + pump.AppendOrUpdatePropStatus(nameof(pump.RatedHz), ePropStatus.Lack, "[棰濆畾棰戠巼]缂虹渷"); + } + } + else + { + pump.AppendOrUpdatePropStatus(nameof(pump.RatedHz), ePropStatus.Abnormal, "[棰濆畾棰戠巼]缂哄皯鎴栬�呮牸寮忛敊璇�"); + } + + if (pump.RatedHz < 1) + { + pump.AppendOrUpdatePropStatus(nameof(pump.RatedHz), ePropStatus.Lack, "[棰濆畾棰戠巼]缂虹渷锛屼娇鐢ㄩ粯璁ゅ��(50Hz)杩涜淇"); + } + + #endregion + + #region CurveQH + + if (jobject.ParseString(RevitJsonProp.CurveQH, out string curveqh)) + { + pump.CurveQH = curveqh; + if (string.IsNullOrEmpty(pump.CurveQH)) + { + pump.AppendOrUpdatePropStatus(nameof(pump.CurveQH), ePropStatus.Lack, "[娴侀噺鎵▼鏇茬嚎]缂虹渷"); + } + } + else + { + pump.AppendOrUpdatePropStatus(nameof(pump.CurveQH), ePropStatus.Abnormal, "缂哄皯[娴侀噺鎵▼鏇茬嚎]"); + } + + if (string.IsNullOrEmpty(pump.CurveQH)) + { + pump.AppendOrUpdatePropStatus(nameof(pump.CurveQH), ePropStatus.Lack, "[娴侀噺鎵▼鏇茬嚎]缂虹渷锛屼娇鐢ㄩ粯璁ゅ��(PumpDefault)杩涜淇"); + } + + #endregion + + #region CurveQP + + if (jobject.ParseString(RevitJsonProp.CurveQP, out string curveqp)) + { + pump.CurveQP = curveqp; + if (string.IsNullOrEmpty(pump.CurveQP)) + { + pump.AppendOrUpdatePropStatus(nameof(pump.CurveQP), ePropStatus.Lack, "[娴侀噺鍔熺巼鏇茬嚎]缂虹渷"); + } + } + else + { + pump.AppendOrUpdatePropStatus(nameof(pump.CurveQP), ePropStatus.Abnormal, "缂哄皯[娴侀噺鍔熺巼鏇茬嚎]"); + } + + #endregion + + #region CurveQE + + if (jobject.ParseString(RevitJsonProp.CurveQE, out string curveqe)) + { + pump.CurveQE = curveqe; + if (string.IsNullOrEmpty(pump.CurveQE)) + { + pump.AppendOrUpdatePropStatus(nameof(pump.CurveQE), ePropStatus.Lack, "[娴侀噺鏁堢巼鏇茬嚎]缂虹渷"); + } + } + else + { + pump.AppendOrUpdatePropStatus(nameof(pump.CurveQE), ePropStatus.Abnormal, "缂哄皯[娴侀噺鏁堢巼鏇茬嚎]"); + } + + #endregion + + #region SpeedRatio + if (jobject[RevitJsonProp.SpeedRatio].MatchNumeric(out double speedRatio)) { pump.SpeedRatio = speedRatio; } - pump.SpeedRatioPattern = jobject[RevitJsonProp.SpeedRatioPattern].ToString(); - if (!string.IsNullOrEmpty(pump.SpeedRatioPattern)) + else { - pump.SpeedRatioPattern = string.Empty; + pump.SpeedRatio = 1; + pump.AppendOrUpdatePropStatus(nameof(pump.SpeedRatio), ePropStatus.Abnormal, "[杞�熸瘮]缂虹渷锛屼娇鐢ㄩ粯璁ゅ��(1)淇"); } + + #endregion + + #region SpeedRatioPattern + + if (jobject.ParseString(RevitJsonProp.SpeedRatioPattern, out string speedRatioPattern)) + { + pump.SpeedRatioPattern = speedRatioPattern; + if (string.IsNullOrEmpty(pump.SpeedRatioPattern)) + { + pump.AppendOrUpdatePropStatus(nameof(pump.SpeedRatioPattern), ePropStatus.Lack, "[杞�熸瘮妯″紡]缂虹渷"); + } + } + else + { + pump.AppendOrUpdatePropStatus(nameof(pump.SpeedRatioPattern), ePropStatus.Abnormal, "缂哄皯[杞�熸瘮妯″紡]"); + } + + #endregion + + #region Price + if (jobject[RevitJsonProp.Price].MatchNumeric(out double price)) { pump.Price = price; } - pump.PricePattern = jobject[RevitJsonProp.PricePattern].ToString(); - if (!string.IsNullOrEmpty(pump.PricePattern)) + else { - pump.PricePattern = string.Empty; + pump.AppendOrUpdatePropStatus(nameof(pump.Price), ePropStatus.Abnormal, "缂哄皯[鑳借�椾环鏍糫"); } - pump.CurveQE = jobject[RevitJsonProp.CurveQE].ToString(); - if (!string.IsNullOrEmpty(pump.CurveQE)) + + #endregion + + #region PricePattern + + if (jobject.ParseString(RevitJsonProp.PricePattern, out string pricePattern)) { - pump.CurveQE = string.Empty; + pump.PricePattern = pricePattern; + if (string.IsNullOrEmpty(pump.PricePattern)) + { + pump.AppendOrUpdatePropStatus(nameof(pump.PricePattern), ePropStatus.Lack, "[浠锋牸妯″紡]缂虹渷"); + } } + else + { + pump.AppendOrUpdatePropStatus(nameof(pump.PricePattern), ePropStatus.Abnormal, "缂哄皯[浠锋牸妯″紡]"); + } + + #endregion + return pump; } @@ -1769,7 +5353,7 @@ } else { - valve.AppendPropStatus(nameof(valve.Id), ePropStatus.Error, "缂哄皯鏋勪欢缂栫爜"); + valve.AppendOrUpdatePropStatus(nameof(valve.Id), ePropStatus.Error, "缂哄皯[鏋勪欢缂栫爜]"); } #endregion @@ -1779,14 +5363,15 @@ if (jobject.ParseString(RevitJsonProp.Code, out string code)) { valve.Code = code; + if (string.IsNullOrEmpty(valve.Code)) + { + valve.Code = valve.Id; + valve.AppendOrUpdatePropStatus(nameof(valve.Code), ePropStatus.Lack, "浣跨敤[鏋勪欢缂栫爜]璧嬪��"); + } } else { - valve.AppendPropStatus(nameof(valve.Code), ePropStatus.Error, "缂哄皯缂栫爜"); - } - if (string.IsNullOrEmpty(valve.Code)) - { - valve.Code = valve.Id; + valve.AppendOrUpdatePropStatus(nameof(valve.Code), ePropStatus.Error, "缂哄皯[缂栫爜]"); } #endregion @@ -1796,10 +5381,11 @@ if (jobject.ParseString(RevitJsonProp.Name, out string name)) { valve.Name = name; + valve.AppendOrUpdatePropStatus(nameof(valve.Name), ePropStatus.Lack, "[鍚嶇О]缂虹渷"); } else { - valve.AppendPropStatus(nameof(valve.Name), ePropStatus.Error, "缂哄皯鍚嶇О"); + valve.AppendOrUpdatePropStatus(nameof(valve.Name), ePropStatus.Error, "缂哄皯[鍚嶇О]"); } #endregion @@ -1809,10 +5395,14 @@ if (jobject.ParseString(RevitJsonProp.ModelType, out string modelType)) { valve.ModelType = modelType; + if (string.IsNullOrEmpty(valve.ModelType)) + { + valve.AppendOrUpdatePropStatus(nameof(valve.ModelType), ePropStatus.Lack, "[鍨嬪彿淇℃伅]缂虹渷"); + } } else { - valve.AppendPropStatus(nameof(valve.ModelType), ePropStatus.Error, "缂哄皯鍨嬪彿淇℃伅"); + valve.AppendOrUpdatePropStatus(nameof(valve.ModelType), ePropStatus.Error, "缂哄皯[鍨嬪彿淇℃伅]"); } #endregion @@ -1822,10 +5412,17 @@ if (jobject.ParseString(RevitJsonProp.Flags, out string flags)) { valve.Flags = Yw.Untity.FlagsHelper.ToList(flags); + if (!string.IsNullOrEmpty(flags)) + { + if (valve.Flags == null || valve.Flags.Count < 1) + { + valve.AppendOrUpdatePropStatus(nameof(valve.Flags), ePropStatus.Abnormal, "[鏍囩]鏍煎紡閿欒"); + } + } } else { - valve.AppendPropStatus(nameof(valve.Flags), ePropStatus.Error, "缂哄皯鏍囩"); + valve.AppendOrUpdatePropStatus(nameof(valve.Flags), ePropStatus.Error, "缂哄皯[鏍囩]"); } #endregion @@ -1838,7 +5435,7 @@ } else { - valve.AppendPropStatus(nameof(valve.Description), ePropStatus.Error, "缂哄皯璇存槑淇℃伅"); + valve.AppendOrUpdatePropStatus(nameof(valve.Description), ePropStatus.Error, "缂哄皯[璇存槑淇℃伅]"); } #endregion @@ -1859,10 +5456,46 @@ Z = x.Point.Z / 1000f } }).ToList(); + if (valve.ConnectList == null || valve.ConnectList.Count < 1) + { + valve.AppendOrUpdatePropStatus(nameof(valve.ConnectList), ePropStatus.Error, "[杩炴帴鍒楄〃]瑙f瀽澶辫触"); + } } else { - valve.AppendPropStatus(nameof(valve.ConnectList), ePropStatus.Error, "缂哄皯杩炴帴鍒楄〃"); + valve.AppendOrUpdatePropStatus(nameof(valve.ConnectList), ePropStatus.Error, "缂哄皯[杩炴帴鍒楄〃]"); + } + + #endregion + + #region StartCode/StartPosition + + var startConnect = valve.ConnectList?.GetStartConnect(); + valve.StartCode = startConnect?.Id; + if (string.IsNullOrEmpty(valve.StartCode)) + { + valve.AppendOrUpdatePropStatus(nameof(valve.StartCode), ePropStatus.Error, "[涓婃父鏋勪欢]鍙梉杩炴帴鍒楄〃]褰卞搷瑙f瀽閿欒"); + } + valve.StartPosition = startConnect?.Position; + if (valve.StartPosition == null) + { + valve.AppendOrUpdatePropStatus(nameof(valve.StartPosition), ePropStatus.Error, "[涓婃父鏋勪欢浣嶇疆]鍙梉杩炴帴鍒楄〃]褰卞搷瑙f瀽閿欒"); + } + + #endregion + + #region EndCode/EndPosition + + var endConnect = valve.ConnectList?.GetEndConnect(); + valve.EndCode = endConnect?.Id; + if (string.IsNullOrEmpty(valve.EndCode)) + { + valve.AppendOrUpdatePropStatus(nameof(valve.EndCode), ePropStatus.Error, "[涓嬫父鏋勪欢]鍙梉杩炴帴鍒楄〃]褰卞搷瑙f瀽閿欒"); + } + valve.EndPosition = endConnect?.Position; + if (valve.EndPosition == null) + { + valve.AppendOrUpdatePropStatus(nameof(valve.EndPosition), ePropStatus.Error, "[涓嬫父鏋勪欢浣嶇疆]鍙梉杩炴帴鍒楄〃]褰卞搷瑙f瀽閿欒"); } #endregion @@ -1871,100 +5504,224 @@ if (jobject.ParseString(RevitJsonProp.LinkStatusValve, out string linkStatus)) { - if (string.IsNullOrEmpty(linkStatus)) + valve.LinkStatus = linkStatus; + if (string.IsNullOrEmpty(valve.LinkStatus)) { valve.LinkStatus = ValveStatus.Open; - valve.AppendPropStatus(nameof(valve.LinkStatus), ePropStatus.Lack, "鏈厤缃榾闂ㄧ姸鎬�"); + valve.AppendOrUpdatePropStatus(nameof(valve.LinkStatus), ePropStatus.Lack, "[闃�闂ㄧ姸鎬乚缂虹渷"); } else { - valve.LinkStatus = linkStatus; - if (linkStatus != ValveStatus.None && linkStatus != ValveStatus.Closed && linkStatus != ValveStatus.Open) + if (!ValveStatus.Contains(valve.LinkStatus)) { - valve.AppendPropStatus(nameof(valve.LinkStatus), ePropStatus.Error, $"闃�闂ㄧ姸鎬侀厤缃敊璇�:{linkStatus}"); + valve.LinkStatus = ValveStatus.Open; + valve.AppendOrUpdatePropStatus(nameof(valve.LinkStatus), ePropStatus.Abnormal, "[闃�闂ㄧ姸鎬乚璁剧疆閿欒"); } } } else { - valve.AppendPropStatus(nameof(valve.LinkStatus), ePropStatus.Error, "缂哄皯闃�闂ㄧ姸鎬�"); + valve.LinkStatus = ValveStatus.Open; + valve.AppendOrUpdatePropStatus(nameof(valve.LinkStatus), ePropStatus.Abnormal, "[闃�闂ㄧ姸鎬乚缂哄皯鎴栨牸寮忛敊璇�"); } #endregion + #region StartElev - - var startConnect = valve.ConnectList.GetStartConnect(); - var endConnect = valve.ConnectList.GetEndConnect(); - valve.StartCode = startConnect.Id; - valve.EndCode = endConnect.Id; - valve.StartPosition = startConnect.Position; - valve.EndPosition = endConnect.Position; - - if (string.IsNullOrEmpty(valve.LinkStatus)) - { - valve.LinkStatus = ValveStatus.Open; - } if (jobject[RevitJsonProp.StartElev].MatchNumeric(out double startElev)) { - valve.StartElev = startElev; + valve.StartElev = startElev / 1000f; } + else + { + valve.AppendOrUpdatePropStatus(nameof(valve.StartElev), ePropStatus.Abnormal, "[涓婃父鏍囬珮]缂哄皯鎴栨牸寮忛敊璇�"); + } + if (valve.StartElev <= 0) { - valve.StartElev = valve.StartPosition.Z; - } - if (jobject[RevitJsonProp.EndElev].MatchNumeric(out double endElev)) - { - valve.EndElev = endElev; - } - if (valve.EndElev <= 0) - { - valve.EndElev = valve.EndPosition.Z; - } - if (jobject[RevitJsonProp.StartQuality].MatchNumeric(out double startQuality)) - { - valve.StartQuality = startQuality; - } - if (jobject[RevitJsonProp.EndQuality].MatchNumeric(out double endQuality)) - { - valve.EndQuality = endQuality; - } - - if (jobject[RevitJsonProp.MinorLoss].MatchNumeric(out double minorLoss)) - { - valve.MinorLoss = minorLoss; - } - - #region 鐩村緞 - - if (jobject[RevitJsonProp.Diameter].MatchNumeric(out double diameter)) - { - valve.Diameter = diameter; - } - if (valve.Diameter <= 0) - { - var jobjectNominalDiameter = jobject[RevitJsonProp.NominalDiameter]; - if (jobjectNominalDiameter != null) + //閫氳繃z杞磋嚜鍔ㄨ绠� + if (valve.StartPosition == null) { - if (jobjectNominalDiameter.MatchNumeric(out double nominalDiameter)) - { - valve.Diameter = nominalDiameter; - } + valve.AppendOrUpdatePropStatus(nameof(valve.StartElev), ePropStatus.Lack, "[涓婃父鏍囬珮]缂虹渷锛屽彈[涓婃父鏋勪欢浣嶇疆]褰卞搷锛屾棤娉曢�氳繃Z杞磋嚜鍔ㄨ绠�"); + } + else + { + valve.StartElev = valve.StartPosition.Z; + valve.AppendOrUpdatePropStatus(nameof(valve.StartElev), ePropStatus.Lack, "[涓婃父鏍囬珮]缂虹渷锛岄�氳繃Z杞磋嚜鍔ㄨ绠�"); } } #endregion - valve.ValveType = jobject[RevitJsonProp.ValveType].ToString(); - if (string.IsNullOrEmpty(valve.ValveType)) + #region EndElev + + if (jobject[RevitJsonProp.EndElev].MatchNumeric(out double endElev)) { - valve.ValveType = Valve.GPV; + valve.EndElev = endElev / 1000f; } - valve.ValveSetting = jobject[RevitJsonProp.ValveSetting].ToString(); + else + { + valve.AppendOrUpdatePropStatus(nameof(valve.EndElev), ePropStatus.Abnormal, "[涓嬫父鏍囬珮]缂哄皯鎴栨牸寮忛敊璇�"); + } + + if (valve.EndElev <= 0) + { + //閫氳繃z杞磋嚜鍔ㄨ绠� + if (valve.EndPosition == null) + { + valve.AppendOrUpdatePropStatus(nameof(valve.EndElev), ePropStatus.Lack, "[涓嬫父鏍囬珮]缂虹渷锛屽彈[涓嬫父鏋勪欢浣嶇疆]褰卞搷锛屾棤娉曢�氳繃Z杞磋嚜鍔ㄨ绠�"); + } + else + { + valve.EndElev = valve.EndPosition.Z; + valve.AppendOrUpdatePropStatus(nameof(valve.EndElev), ePropStatus.Lack, "[涓嬫父鏍囬珮]缂虹渷锛岄�氳繃Z杞磋嚜鍔ㄨ绠�"); + } + } + + #endregion + + #region StartQuality + + if (jobject[RevitJsonProp.StartQuality].MatchNumeric(out double startQuality)) + { + valve.StartQuality = startQuality; + if (valve.StartQuality <= 0) + { + valve.AppendOrUpdatePropStatus(nameof(valve.StartQuality), ePropStatus.Lack, "[涓婃父鍒濆姘磋川]缂虹渷"); + } + } + else + { + valve.AppendOrUpdatePropStatus(nameof(valve.StartQuality), ePropStatus.Abnormal, "[涓婃父鍒濆姘磋川]缂哄皯鎴栬�呮牸寮忛敊璇�"); + } + + #endregion + + #region EndQuality + + if (jobject[RevitJsonProp.EndQuality].MatchNumeric(out double endQuality)) + { + valve.EndQuality = endQuality; + if (valve.EndQuality <= 0) + { + valve.AppendOrUpdatePropStatus(nameof(valve.EndQuality), ePropStatus.Lack, "[涓嬫父鍒濆姘磋川]缂虹渷"); + } + } + else + { + valve.AppendOrUpdatePropStatus(nameof(valve.EndQuality), ePropStatus.Abnormal, "[涓嬫父鍒濆姘磋川]缂哄皯鎴栬�呮牸寮忛敊璇�"); + } + + #endregion + + #region Diameter + + if (jobject[RevitJsonProp.Diameter].MatchNumeric(out double diameter)) + { + valve.Diameter = diameter; + } + else + { + valve.AppendOrUpdatePropStatus(nameof(valve.Diameter), ePropStatus.Abnormal, "[鐩村緞]缂哄皯鎴栬�呮牸寮忛敊璇�"); + } + + if (valve.Diameter < 1) + { + if (jobject[RevitJsonProp.InternalDiameter].MatchNumeric(out double internalDiameter)) + { + valve.Diameter = internalDiameter; + valve.AppendOrUpdatePropStatus(nameof(valve.Diameter), ePropStatus.Lack, "[鐩村緞]閫氳繃[鍐呭緞]杩涜淇]"); + } + else + { + valve.AppendOrUpdatePropStatus(nameof(valve.Diameter), ePropStatus.Abnormal, "[鐩村緞]鏃犳硶閫氳繃[鍐呭緞]杩涜淇]"); + } + } + + if (valve.Diameter < 1) + { + if (jobject[RevitJsonProp.DN].MatchNumeric(out double dn)) + { + valve.Diameter = dn; + valve.AppendOrUpdatePropStatus(nameof(valve.Diameter), ePropStatus.Lack, "[鐩村緞]閫氳繃[鍏О鐩村緞]杩涜淇]"); + } + else + { + valve.AppendOrUpdatePropStatus(nameof(valve.Diameter), ePropStatus.Abnormal, "[鐩村緞]鏃犳硶閫氳繃[鍏О鐩村緞]杩涜淇]"); + } + } + + if (valve.Diameter < 1) + { + valve.Diameter = 500; + valve.AppendOrUpdatePropStatus(nameof(valve.Diameter), ePropStatus.Lack, "[鐩村緞][鍐呭緞]瑙f瀽閿欒锛屼娇鐢ㄩ粯璁ゅ��(500mm)淇]"); + } + + #endregion + + #region MinorLoss + + if (jobject[RevitJsonProp.MinorLoss].MatchNumeric(out double minorLoss)) + { + valve.MinorLoss = minorLoss; + } + else + { + valve.AppendOrUpdatePropStatus(nameof(valve.MinorLoss), ePropStatus.Abnormal, "[灞�閮ㄩ樆鍔涚郴鏁癩缂哄皯鎴栬�呮暟鎹牸寮忛敊璇�"); + } + + #endregion + + #region ValveType + + if (jobject.ParseString(RevitJsonProp.ValveType, out string valveType)) + { + valve.ValveType = valveType; + if (string.IsNullOrEmpty(valve.ValveType)) + { + valve.ValveType = ValveType.GPV; + valve.AppendOrUpdatePropStatus(nameof(valve.ValveType), ePropStatus.Lack, "[闃�闂ㄧ被鍨媇缂虹渷锛屼娇鐢ㄩ粯璁ゅ��(GPV)杩涜淇"); + } + else + { + if (!ValveType.Contains(valve.ValveType)) + { + valve.ValveType = ValveType.GPV; + valve.AppendOrUpdatePropStatus(nameof(valve.ValveType), ePropStatus.Abnormal, "[闃�闂ㄧ被鍨媇璁剧疆閿欒锛屼娇鐢ㄩ粯璁ゅ��(GPV)杩涜淇"); + } + } + } + else + { + valve.ValveType = ValveType.GPV; + valve.AppendOrUpdatePropStatus(nameof(valve.ValveType), ePropStatus.Abnormal, "[闃�闂ㄧ被鍨媇缂哄皯鎴栨牸寮忛敊璇紝浣跨敤榛樿鍊�(GPV)杩涜淇"); + } + + #endregion + + #region ValveSetting + + if (jobject.ParseString(RevitJsonProp.ValveSetting, out string valveSetting)) + { + valve.ValveSetting = valveSetting; + } + else + { + valve.AppendOrUpdatePropStatus(nameof(valve.ValveSetting), ePropStatus.Abnormal, "[闃�闂ㄨ缃甝缂哄皯鎴栨牸寮忛敊璇�"); + } + if (string.IsNullOrEmpty(valve.ValveSetting)) { - valve.ValveSetting = "GPVDefault"; + if (valve.ValveType == ValveType.GPV) + { + valve.ValveSetting = "GPVDefault"; + valve.AppendOrUpdatePropStatus(nameof(valve.ValveSetting), ePropStatus.Lack, "[闃�闂ㄨ缃甝缂虹渷锛屼娇鐢ㄩ粯璁ゅ��(GPVDefault)杩涜淇"); + } } + + #endregion + return valve; } @@ -1977,15 +5734,59 @@ } var decorator = new Model.RevitDecorator(); - decorator.Id = jobject[RevitJsonProp.Id].ToString(); - decorator.Code = jobject[RevitJsonProp.Code].ToString(); + + #region Id + + if (jobject.ParseString(RevitJsonProp.Id, out string id)) + { + decorator.Id = id; + } + + #endregion + + #region Code + + if (jobject.ParseString(RevitJsonProp.Code, out string code)) + { + decorator.Code = code; + } if (string.IsNullOrEmpty(decorator.Code)) { decorator.Code = decorator.Id; } + + #endregion + + #region Name + decorator.Name = string.Empty; - decorator.Category = jobject[RevitJsonProp.ClanAndType][RevitJsonProp.ClanName].ToString(); + + #endregion + + #region Category + + var jobjectClanAndType = jobject[RevitJsonProp.ClanAndType]; + if (jobjectClanAndType != null) + { + var jobjectClanName = jobjectClanAndType[RevitJsonProp.ClanName]; + if (jobjectClanName != null) + { + decorator.Category = jobjectClanName.ToString(); + } + } + if (string.IsNullOrEmpty(decorator.Category)) + { + decorator.Category = "鏈煡"; + } + + #endregion + + #region Decoration + decorator.Decoration = string.Empty; + + #endregion + return decorator; } -- Gitblit v1.9.3