From a5c91970e4424faa5848d814d671a7534b900d69 Mon Sep 17 00:00:00 2001 From: lixiaojun <1287241240@qq.com> Date: 星期二, 13 八月 2024 09:59:13 +0800 Subject: [PATCH] 新增Revit 水表与换热器 --- Service/HStation.Service.Revit.Core/04-service/01-json/RevitJsonHelper.cs | 108 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 108 insertions(+), 0 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 c386a21..4e47512 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 @@ -320,6 +320,43 @@ model.Fourlinks.Add(fourlink); } break; + case RevitJsonCatalog.Meter: + { + 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(); + if (jobject[RevitJsonProp.Quality].MatchNumeric(out double quality)) + { + meter.Quality = quality; + } + var linkList = JsonHelper.Json2Object<List<RevitJsonLinkerModel>>(jobject[RevitJsonProp.Links].ToString()); + var centerPoint = linkList.GetCenterPoint(); + meter.Position = new Model.RevitPosition() + { + X = centerPoint.X, + Y = centerPoint.Y, + Z = centerPoint.Z + }; + if (jobject[RevitJsonProp.Elev].MatchNumeric(out double elev)) + { + meter.Elev = elev; + } + if (jobject[RevitJsonProp.Demand].MatchNumeric(out double demand)) + { + meter.Demand = demand; + } + meter.DemandPattern = jobject[RevitJsonProp.DemandPattern].ToString(); + model.Meters.Add(meter); + } + break; case RevitJsonCatalog.Flowmeter: { var flowmeter = new Model.RevitFlowmeter(); @@ -655,6 +692,77 @@ model.Translations.Add(translation); } break; + case RevitJsonCatalog.Exchanger: + { + var exchanger = new Model.RevitExchanger(); + exchanger.Id = jobject[RevitJsonProp.Id].ToString(); + exchanger.Code = jobject[RevitJsonProp.Code].ToString(); + if (string.IsNullOrEmpty(exchanger.Code)) + { + exchanger.Code = exchanger.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 linkList = JsonHelper.Json2Object<List<RevitJsonLinkerModel>>(jobject[RevitJsonProp.Links].ToString()); + var startLinker = linkList.GetStartLinker(); + var endLinker = linkList.GetEndLinker(); + exchanger.StartCode = startLinker.ConnectId; + exchanger.EndCode = endLinker.ConnectId; + exchanger.StartPosition = new Model.RevitPosition() + { + X = startLinker.Point.X, + Y = startLinker.Point.Y, + Z = startLinker.Point.Z + }; + exchanger.EndPosition = new Model.RevitPosition() + { + X = endLinker.Point.X, + Y = endLinker.Point.Y, + Z = endLinker.Point.Z + }; + exchanger.LinkStatus = jobject[RevitJsonProp.LinkStatusPipe].ToString(); + if (jobject[RevitJsonProp.StartElev].MatchNumeric(out double startElev)) + { + exchanger.StartElev = startElev; + } + if (jobject[RevitJsonProp.EndElev].MatchNumeric(out double endElev)) + { + exchanger.EndElev = endElev; + } + if (jobject[RevitJsonProp.StartQuality].MatchNumeric(out double startQuality)) + { + exchanger.StartQuality = startQuality; + } + if (jobject[RevitJsonProp.EndQuality].MatchNumeric(out double endQuality)) + { + exchanger.EndQuality = endQuality; + } + + if (jobject[RevitJsonProp.Length].MatchNumeric(out double length)) + { + exchanger.Length = length; + } + if (jobject[RevitJsonProp.Diameter].MatchNumeric(out double diameter)) + { + exchanger.Diameter = diameter; + } + else if (jobject[RevitJsonProp.InternalDiameter].MatchNumeric(out double internalDiameter)) + { + exchanger.Diameter = internalDiameter; + } + if (jobject[RevitJsonProp.MinorLoss].MatchNumeric(out double minorLoss)) + { + exchanger.MinorLoss = minorLoss; + } + if (jobject[RevitJsonProp.Roughness].MatchNumeric(out double roughness)) + { + exchanger.Roughness = roughness; + } + model.Exchangers.Add(exchanger); + } + break; case RevitJsonCatalog.Pump: { var pump = new Model.RevitPump(); -- Gitblit v1.9.3