Shuxia Ning
2024-08-14 9407658b38b9925685e9e47c89491edf2ebdd15b
Hydro/HStation.Hydro.Core/TransferHelper.cs
@@ -1,4 +1,5 @@
using HStation.Model;
using SqlSugar.Extensions;
namespace HStation.Hydro
{
@@ -32,9 +33,11 @@
                    reservoir.Catalog = Yw.Hydro.Catalog.Reservoir;
                    reservoir.Name = revitReservoir.Name;
                    reservoir.Code = revitReservoir.Code;
                    reservoir.ModelType = revitReservoir.ModelType;
                    reservoir.Flags = revitReservoir.Flags;
                    reservoir.Description = revitReservoir.Description;
                    reservoir.Quality = revitReservoir.Quality;
                    reservoir.PoolElev = revitReservoir.PoolElev;
                    reservoir.Head = revitReservoir.Head;
                    reservoir.HeadPattern = revitReservoir.HeadPattern;
                    reservoir.Position2d = new Yw.Model.Hydro.Position2d(revitReservoir.Position.X, revitReservoir.Position.Y);
@@ -57,6 +60,7 @@
                    tank.Catalog = Yw.Hydro.Catalog.Tank;
                    tank.Name = revitTank.Name;
                    tank.Code = revitTank.Code;
                    tank.ModelType = revitTank.ModelType;
                    tank.Flags = revitTank.Flags;
                    tank.Description = revitTank.Description;
                    tank.Quality = revitTank.Quality;
@@ -83,28 +87,29 @@
            {
                foreach (var revitWaterbox in revitModel.Waterboxs)
                {
                    var waberbox = new Yw.Model.HydroWaterboxInfo();
                    waberbox.Catalog = Yw.Hydro.Catalog.Waterbox;
                    waberbox.Name = revitWaterbox.Name;
                    waberbox.Code = revitWaterbox.Code;
                    waberbox.Flags = revitWaterbox.Flags;
                    waberbox.Description = revitWaterbox.Description;
                    waberbox.Quality = revitWaterbox.Quality;
                    waberbox.PoolElev = revitWaterbox.PoolElev;
                    waberbox.InitLevel = revitWaterbox.InitLevel;
                    waberbox.MinLevel = revitWaterbox.MinLevel;
                    waberbox.MaxLevel = revitWaterbox.MaxLevel;
                    waberbox.Diameter = revitWaterbox.Diameter;
                    waberbox.MinVol = revitWaterbox.MinVol;
                    waberbox.VolCurve = revitWaterbox.VolCurve;
                    waberbox.Position2d = new Yw.Model.Hydro.Position2d(revitWaterbox.Position.X, revitWaterbox.Position.Y);
                    waberbox.Position3d = new Yw.Model.Hydro.Position3d(revitWaterbox.Position.X, revitWaterbox.Position.Y, revitWaterbox.Position.Z);
                    waberbox.ScenePropValueList = revitWaterbox.PropValueList?.Select(x => new Yw.Model.HydroParterScenePropValuePureInfo()
                    var waterbox = new Yw.Model.HydroWaterboxInfo();
                    waterbox.Catalog = Yw.Hydro.Catalog.Waterbox;
                    waterbox.Name = revitWaterbox.Name;
                    waterbox.Code = revitWaterbox.Code;
                    waterbox.ModelType = revitWaterbox.ModelType;
                    waterbox.Flags = revitWaterbox.Flags;
                    waterbox.Description = revitWaterbox.Description;
                    waterbox.Quality = revitWaterbox.Quality;
                    waterbox.PoolElev = revitWaterbox.PoolElev;
                    waterbox.InitLevel = revitWaterbox.InitLevel;
                    waterbox.MinLevel = revitWaterbox.MinLevel;
                    waterbox.MaxLevel = revitWaterbox.MaxLevel;
                    waterbox.Diameter = revitWaterbox.Diameter;
                    waterbox.MinVol = revitWaterbox.MinVol;
                    waterbox.VolCurve = revitWaterbox.VolCurve;
                    waterbox.Position2d = new Yw.Model.Hydro.Position2d(revitWaterbox.Position.X, revitWaterbox.Position.Y);
                    waterbox.Position3d = new Yw.Model.Hydro.Position3d(revitWaterbox.Position.X, revitWaterbox.Position.Y, revitWaterbox.Position.Z);
                    waterbox.ScenePropValueList = revitWaterbox.PropValueList?.Select(x => new Yw.Model.HydroParterScenePropValuePureInfo()
                    {
                        PropName = x.PropName,
                        PropValue = x.PropValue
                    }).ToList();
                    hydro.Waterboxs.Add(waberbox);
                    hydro.Waterboxs.Add(waterbox);
                }
            }
@@ -117,6 +122,7 @@
                    junction.Catalog = Yw.Hydro.Catalog.Junction;
                    junction.Name = revitJunction.Name;
                    junction.Code = revitJunction.Code;
                    junction.ModelType = revitJunction.ModelType;
                    junction.Flags = revitJunction.Flags;
                    junction.Description = revitJunction.Description;
                    junction.Quality = revitJunction.Quality;
@@ -143,6 +149,7 @@
                    elbow.Catalog = Yw.Hydro.Catalog.Elbow;
                    elbow.Name = revitElbow.Name;
                    elbow.Code = revitElbow.Code;
                    elbow.ModelType = revitElbow.ModelType;
                    elbow.Flags = revitElbow.Flags;
                    elbow.Description = revitElbow.Description;
                    elbow.Quality = revitElbow.Quality;
@@ -169,6 +176,7 @@
                    threelink.Catalog = Yw.Hydro.Catalog.Threelink;
                    threelink.Name = revitThreelink.Name;
                    threelink.Code = revitThreelink.Code;
                    threelink.ModelType = revitThreelink.ModelType;
                    threelink.Flags = revitThreelink.Flags;
                    threelink.Description = revitThreelink.Description;
                    threelink.Quality = revitThreelink.Quality;
@@ -195,6 +203,7 @@
                    fourlink.Catalog = Yw.Hydro.Catalog.Fourlink;
                    fourlink.Name = revitFourlink.Name;
                    fourlink.Code = revitFourlink.Code;
                    fourlink.ModelType = revitFourlink.ModelType;
                    fourlink.Flags = revitFourlink.Flags;
                    fourlink.Description = revitFourlink.Description;
                    fourlink.Quality = revitFourlink.Quality;
@@ -221,6 +230,7 @@
                    nozzle.Catalog = Yw.Hydro.Catalog.Nozzle;
                    nozzle.Name = revitNozzle.Name;
                    nozzle.Code = revitNozzle.Code;
                    nozzle.ModelType = revitNozzle.ModelType;
                    nozzle.Flags = revitNozzle.Flags;
                    nozzle.Description = revitNozzle.Description;
                    nozzle.Quality = revitNozzle.Quality;
@@ -248,6 +258,7 @@
                    hydrant.Catalog = Yw.Hydro.Catalog.Hydrant;
                    hydrant.Name = revitHydrant.Name;
                    hydrant.Code = revitHydrant.Code;
                    hydrant.ModelType = revitHydrant.ModelType;
                    hydrant.Flags = revitHydrant.Flags;
                    hydrant.Description = revitHydrant.Description;
                    hydrant.Quality = revitHydrant.Quality;
@@ -266,6 +277,33 @@
                }
            }
            //仪表
            if (revitModel.Meters != null && revitModel.Meters.Count > 0)
            {
                foreach (var revitMeter in revitModel.Meters)
                {
                    var meter = new Yw.Model.HydroMeterInfo();
                    meter.Catalog = Yw.Hydro.Catalog.Meter;
                    meter.Name = revitMeter.Name;
                    meter.Code = revitMeter.Code;
                    meter.ModelType = revitMeter.ModelType;
                    meter.Flags = revitMeter.Flags;
                    meter.Description = revitMeter.Description;
                    meter.Quality = revitMeter.Quality;
                    meter.Elev = revitMeter.Elev;
                    meter.Demand = revitMeter.Demand;
                    meter.DemandPattern = revitMeter.DemandPattern;
                    meter.Position2d = new Yw.Model.Hydro.Position2d(revitMeter.Position.X, revitMeter.Position.Y);
                    meter.Position3d = new Yw.Model.Hydro.Position3d(revitMeter.Position.X, revitMeter.Position.Y, revitMeter.Position.Z);
                    meter.ScenePropValueList = revitMeter.PropValueList?.Select(x => new Yw.Model.HydroParterScenePropValuePureInfo()
                    {
                        PropName = x.PropName,
                        PropValue = x.PropValue
                    }).ToList();
                    hydro.Meters.Add(meter);
                }
            }
            //流量计
            if (revitModel.Flowmeters != null && revitModel.Flowmeters.Count > 0)
            {
@@ -275,6 +313,7 @@
                    flowmeter.Catalog = Yw.Hydro.Catalog.Flowmeter;
                    flowmeter.Name = revitFlowmeter.Name;
                    flowmeter.Code = revitFlowmeter.Code;
                    flowmeter.ModelType = revitFlowmeter.ModelType;
                    flowmeter.Flags = revitFlowmeter.Flags;
                    flowmeter.Description = revitFlowmeter.Description;
                    flowmeter.Quality = revitFlowmeter.Quality;
@@ -301,6 +340,7 @@
                    pressmeter.Catalog = Yw.Hydro.Catalog.Pressmeter;
                    pressmeter.Name = revitPressmeter.Name;
                    pressmeter.Code = revitPressmeter.Code;
                    pressmeter.ModelType = revitPressmeter.ModelType;
                    pressmeter.Flags = revitPressmeter.Flags;
                    pressmeter.Description = revitPressmeter.Description;
                    pressmeter.Quality = revitPressmeter.Quality;
@@ -327,6 +367,7 @@
                    blunthead.Catalog = Yw.Hydro.Catalog.Blunthead;
                    blunthead.Name = revitBlunthead.Name;
                    blunthead.Code = revitBlunthead.Code;
                    blunthead.ModelType = revitBlunthead.ModelType;
                    blunthead.Flags = revitBlunthead.Flags;
                    blunthead.Description = revitBlunthead.Description;
                    blunthead.Quality = revitBlunthead.Quality;
@@ -344,6 +385,33 @@
                }
            }
            //换热器
            if (revitModel.Exchangers != null && revitModel.Exchangers.Count > 0)
            {
                foreach (var revitExchanger in revitModel.Exchangers)
                {
                    var exchanger = new Yw.Model.HydroExchangerInfo();
                    exchanger.Catalog = Yw.Hydro.Catalog.Exchanger;
                    exchanger.Name = revitExchanger.Name;
                    exchanger.Code = revitExchanger.Code;
                    exchanger.ModelType = revitExchanger.ModelType;
                    exchanger.Flags = revitExchanger.Flags;
                    exchanger.Description = revitExchanger.Description;
                    exchanger.Quality = revitExchanger.Quality;
                    exchanger.Elev = revitExchanger.Elev;
                    exchanger.Demand = revitExchanger.Demand;
                    exchanger.DemandPattern = revitExchanger.DemandPattern;
                    exchanger.Position2d = new Yw.Model.Hydro.Position2d(revitExchanger.Position.X, revitExchanger.Position.Y);
                    exchanger.Position3d = new Yw.Model.Hydro.Position3d(revitExchanger.Position.X, revitExchanger.Position.Y, revitExchanger.Position.Z);
                    exchanger.ScenePropValueList = revitExchanger.PropValueList?.Select(x => new Yw.Model.HydroParterScenePropValuePureInfo()
                    {
                        PropName = x.PropName,
                        PropValue = x.PropValue
                    }).ToList();
                    hydro.Exchangers.Add(exchanger);
                }
            }
            //水泵
            if (revitModel.Pumps != null && revitModel.Pumps.Count > 0)
            {
@@ -353,6 +421,7 @@
                    pump.Catalog = Yw.Hydro.Catalog.Pump;
                    pump.Name = revitPump.Name;
                    pump.Code = revitPump.Code;
                    pump.ModelType = revitPump.ModelType;
                    pump.Flags = revitPump.Flags;
                    pump.Description = revitPump.Description;
                    pump.StartCode = revitPump.StartCode;
@@ -381,6 +450,7 @@
                    valve.Catalog = Yw.Hydro.Catalog.Valve;
                    valve.Name = revitValve.Name;
                    valve.Code = revitValve.Code;
                    valve.ModelType = revitValve.ModelType;
                    valve.Flags = revitValve.Flags;
                    valve.Description = revitValve.Description;
                    valve.StartCode = revitValve.StartCode;
@@ -408,6 +478,7 @@
                    pipe.Catalog = Yw.Hydro.Catalog.Pipe;
                    pipe.Name = revitPipe.Name;
                    pipe.Code = revitPipe.Code;
                    pipe.ModelType = revitPipe.ModelType;
                    pipe.Flags = revitPipe.Flags;
                    pipe.Description = revitPipe.Description;
                    pipe.StartCode = revitPipe.StartCode;
@@ -426,6 +497,34 @@
                }
            }
            //过渡件
            if (revitModel.Translations != null && revitModel.Translations.Count > 0)
            {
                foreach (var revitTranslation in revitModel.Translations)
                {
                    var translation = new Yw.Model.HydroPipeInfo();
                    translation.Catalog = Yw.Hydro.Catalog.Translation;
                    translation.Name = revitTranslation.Name;
                    translation.Code = revitTranslation.Code;
                    translation.ModelType = revitTranslation.ModelType;
                    translation.Flags = revitTranslation.Flags;
                    translation.Description = revitTranslation.Description;
                    translation.StartCode = revitTranslation.StartCode;
                    translation.EndCode = revitTranslation.EndCode;
                    translation.LinkStatus = revitTranslation.LinkStatus;
                    translation.Diameter = revitTranslation.Diameter;
                    translation.Length = revitTranslation.Length;
                    translation.Roughness = revitTranslation.Roughness;
                    translation.MinorLoss = revitTranslation.MinorLoss;
                    translation.ScenePropValueList = revitTranslation.PropValueList?.Select(x => new Yw.Model.HydroParterScenePropValuePureInfo()
                    {
                        PropName = x.PropName,
                        PropValue = x.PropValue
                    }).ToList();
                    hydro.Pipes.Add(translation);
                }
            }
            //装饰件
            if (revitModel.Decorators != null && revitModel.Decorators.Count > 0)
            {