yangyin
2024-08-20 98e49c0dd42840a094837f7acae532bc237a719a
Hydro/HStation.Hydro.Core/TransferHelper.cs
@@ -1,6 +1,4 @@
using HStation.Model;
namespace HStation.Hydro
namespace HStation.Hydro
{
    /// <summary>
    /// 转换辅助类
@@ -17,7 +15,6 @@
            var hydro = new Yw.Model.HydroModelInfo();
            hydro.Name = revitModel.Name;
            hydro.Code = null;
            hydro.Scene = HStation.Revit.ConstParas.Scene;
            hydro.Paras = null;
            hydro.Flags = null;
            hydro.TagName = null;
@@ -29,18 +26,21 @@
                foreach (var revitReservoir in revitModel.Reservoirs)
                {
                    var reservoir = new Yw.Model.HydroReservoirInfo();
                    reservoir.Catalog = Yw.Hydro.Catalog.Reservoir;
                    reservoir.Catalog = Yw.Hydro.ParterCatalog.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);
                    reservoir.Position3d = new Yw.Model.Hydro.Position3d(revitReservoir.Position.X, revitReservoir.Position.Y, revitReservoir.Position.Z);
                    reservoir.ScenePropValueList = revitReservoir.PropValueList?.Select(x => new Yw.Model.HydroParterScenePropValuePureInfo()
                    {
                        Scene = HStation.Revit.ConstParas.Scene,
                        PropName = x.PropName,
                        PropValue = x.PropValue
                    }).ToList();
@@ -54,9 +54,10 @@
                foreach (var revitTank in revitModel.Tanks)
                {
                    var tank = new Yw.Model.HydroTankInfo();
                    tank.Catalog = Yw.Hydro.Catalog.Tank;
                    tank.Catalog = Yw.Hydro.ParterCatalog.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;
@@ -71,6 +72,7 @@
                    tank.Position3d = new Yw.Model.Hydro.Position3d(revitTank.Position.X, revitTank.Position.Y, revitTank.Position.Z);
                    tank.ScenePropValueList = revitTank.PropValueList?.Select(x => new Yw.Model.HydroParterScenePropValuePureInfo()
                    {
                        Scene = HStation.Revit.ConstParas.Scene,
                        PropName = x.PropName,
                        PropValue = x.PropValue
                    }).ToList();
@@ -83,28 +85,30 @@
            {
                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.ParterCatalog.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()
                    {
                        Scene = HStation.Revit.ConstParas.Scene,
                        PropName = x.PropName,
                        PropValue = x.PropValue
                    }).ToList();
                    hydro.Waterboxs.Add(waberbox);
                    hydro.Waterboxs.Add(waterbox);
                }
            }
@@ -114,9 +118,10 @@
                foreach (var revitJunction in revitModel.Junctions)
                {
                    var junction = new Yw.Model.HydroJunctionInfo();
                    junction.Catalog = Yw.Hydro.Catalog.Junction;
                    junction.Catalog = Yw.Hydro.ParterCatalog.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;
@@ -127,6 +132,7 @@
                    junction.Position3d = new Yw.Model.Hydro.Position3d(revitJunction.Position.X, revitJunction.Position.Y, revitJunction.Position.Z);
                    junction.ScenePropValueList = revitJunction.PropValueList?.Select(x => new Yw.Model.HydroParterScenePropValuePureInfo()
                    {
                        Scene = HStation.Revit.ConstParas.Scene,
                        PropName = x.PropName,
                        PropValue = x.PropValue
                    }).ToList();
@@ -140,9 +146,10 @@
                foreach (var revitElbow in revitModel.Elbows)
                {
                    var elbow = new Yw.Model.HydroElbowInfo();
                    elbow.Catalog = Yw.Hydro.Catalog.Elbow;
                    elbow.Catalog = Yw.Hydro.ParterCatalog.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;
@@ -153,6 +160,7 @@
                    elbow.Position3d = new Yw.Model.Hydro.Position3d(revitElbow.Position.X, revitElbow.Position.Y, revitElbow.Position.Z);
                    elbow.ScenePropValueList = revitElbow.PropValueList?.Select(x => new Yw.Model.HydroParterScenePropValuePureInfo()
                    {
                        Scene = HStation.Revit.ConstParas.Scene,
                        PropName = x.PropName,
                        PropValue = x.PropValue
                    }).ToList();
@@ -166,9 +174,10 @@
                foreach (var revitThreelink in revitModel.Threelinks)
                {
                    var threelink = new Yw.Model.HydroThreelinkInfo();
                    threelink.Catalog = Yw.Hydro.Catalog.Threelink;
                    threelink.Catalog = Yw.Hydro.ParterCatalog.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;
@@ -179,6 +188,7 @@
                    threelink.Position3d = new Yw.Model.Hydro.Position3d(revitThreelink.Position.X, revitThreelink.Position.Y, revitThreelink.Position.Z);
                    threelink.ScenePropValueList = revitThreelink.PropValueList?.Select(x => new Yw.Model.HydroParterScenePropValuePureInfo()
                    {
                        Scene = HStation.Revit.ConstParas.Scene,
                        PropName = x.PropName,
                        PropValue = x.PropValue
                    }).ToList();
@@ -192,9 +202,10 @@
                foreach (var revitFourlink in revitModel.Fourlinks)
                {
                    var fourlink = new Yw.Model.HydroFourlinkInfo();
                    fourlink.Catalog = Yw.Hydro.Catalog.Fourlink;
                    fourlink.Catalog = Yw.Hydro.ParterCatalog.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;
@@ -205,6 +216,7 @@
                    fourlink.Position3d = new Yw.Model.Hydro.Position3d(revitFourlink.Position.X, revitFourlink.Position.Y, revitFourlink.Position.Z);
                    fourlink.ScenePropValueList = revitFourlink.PropValueList?.Select(x => new Yw.Model.HydroParterScenePropValuePureInfo()
                    {
                        Scene = HStation.Revit.ConstParas.Scene,
                        PropName = x.PropName,
                        PropValue = x.PropValue
                    }).ToList();
@@ -218,9 +230,10 @@
                foreach (var revitNozzle in revitModel.Nozzles)
                {
                    var nozzle = new Yw.Model.HydroNozzleInfo();
                    nozzle.Catalog = Yw.Hydro.Catalog.Nozzle;
                    nozzle.Catalog = Yw.Hydro.ParterCatalog.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;
@@ -232,6 +245,7 @@
                    nozzle.Position3d = new Yw.Model.Hydro.Position3d(revitNozzle.Position.X, revitNozzle.Position.Y, revitNozzle.Position.Z);
                    nozzle.ScenePropValueList = revitNozzle.PropValueList?.Select(x => new Yw.Model.HydroParterScenePropValuePureInfo()
                    {
                        Scene = HStation.Revit.ConstParas.Scene,
                        PropName = x.PropName,
                        PropValue = x.PropValue
                    }).ToList();
@@ -245,9 +259,10 @@
                foreach (var revitHydrant in revitModel.Hydrants)
                {
                    var hydrant = new Yw.Model.HydroHydrantInfo();
                    hydrant.Catalog = Yw.Hydro.Catalog.Hydrant;
                    hydrant.Catalog = Yw.Hydro.ParterCatalog.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;
@@ -259,10 +274,39 @@
                    hydrant.Position3d = new Yw.Model.Hydro.Position3d(revitHydrant.Position.X, revitHydrant.Position.Y, revitHydrant.Position.Z);
                    hydrant.ScenePropValueList = revitHydrant.PropValueList?.Select(x => new Yw.Model.HydroParterScenePropValuePureInfo()
                    {
                        Scene = HStation.Revit.ConstParas.Scene,
                        PropName = x.PropName,
                        PropValue = x.PropValue
                    }).ToList();
                    hydro.Hydrants.Add(hydrant);
                }
            }
            //水表
            if (revitModel.Meters != null && revitModel.Meters.Count > 0)
            {
                foreach (var revitMeter in revitModel.Meters)
                {
                    var meter = new Yw.Model.HydroMeterInfo();
                    meter.Catalog = Yw.Hydro.ParterCatalog.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()
                    {
                        Scene = HStation.Revit.ConstParas.Scene,
                        PropName = x.PropName,
                        PropValue = x.PropValue
                    }).ToList();
                    hydro.Meters.Add(meter);
                }
            }
@@ -272,9 +316,10 @@
                foreach (var revitFlowmeter in revitModel.Flowmeters)
                {
                    var flowmeter = new Yw.Model.HydroFlowmeterInfo();
                    flowmeter.Catalog = Yw.Hydro.Catalog.Flowmeter;
                    flowmeter.Catalog = Yw.Hydro.ParterCatalog.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;
@@ -285,6 +330,7 @@
                    flowmeter.Position3d = new Yw.Model.Hydro.Position3d(revitFlowmeter.Position.X, revitFlowmeter.Position.Y, revitFlowmeter.Position.Z);
                    flowmeter.ScenePropValueList = revitFlowmeter.PropValueList?.Select(x => new Yw.Model.HydroParterScenePropValuePureInfo()
                    {
                        Scene = HStation.Revit.ConstParas.Scene,
                        PropName = x.PropName,
                        PropValue = x.PropValue
                    }).ToList();
@@ -298,9 +344,10 @@
                foreach (var revitPressmeter in revitModel.Pressmeters)
                {
                    var pressmeter = new Yw.Model.HydroPressmeterInfo();
                    pressmeter.Catalog = Yw.Hydro.Catalog.Pressmeter;
                    pressmeter.Catalog = Yw.Hydro.ParterCatalog.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;
@@ -311,6 +358,7 @@
                    pressmeter.Position3d = new Yw.Model.Hydro.Position3d(revitPressmeter.Position.X, revitPressmeter.Position.Y, revitPressmeter.Position.Z);
                    pressmeter.ScenePropValueList = revitPressmeter.PropValueList?.Select(x => new Yw.Model.HydroParterScenePropValuePureInfo()
                    {
                        Scene = HStation.Revit.ConstParas.Scene,
                        PropName = x.PropName,
                        PropValue = x.PropValue
                    }).ToList();
@@ -324,9 +372,10 @@
                foreach (var revitBlunthead in revitModel.Bluntheads)
                {
                    var blunthead = new Yw.Model.HydroBluntheadInfo();
                    blunthead.Catalog = Yw.Hydro.Catalog.Blunthead;
                    blunthead.Catalog = Yw.Hydro.ParterCatalog.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;
@@ -337,6 +386,7 @@
                    blunthead.Position3d = new Yw.Model.Hydro.Position3d(revitBlunthead.Position.X, revitBlunthead.Position.Y, revitBlunthead.Position.Z);
                    blunthead.ScenePropValueList = revitBlunthead.PropValueList?.Select(x => new Yw.Model.HydroParterScenePropValuePureInfo()
                    {
                        Scene = HStation.Revit.ConstParas.Scene,
                        PropName = x.PropName,
                        PropValue = x.PropValue
                    }).ToList();
@@ -350,9 +400,10 @@
                foreach (var revitPump in revitModel.Pumps)
                {
                    var pump = new Yw.Model.HydroPumpInfo();
                    pump.Catalog = Yw.Hydro.Catalog.Pump;
                    pump.Catalog = Yw.Hydro.ParterCatalog.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;
@@ -365,6 +416,7 @@
                    pump.CurveQE = revitPump.CurveQE;
                    pump.ScenePropValueList = revitPump.PropValueList?.Select(x => new Yw.Model.HydroParterScenePropValuePureInfo()
                    {
                        Scene = HStation.Revit.ConstParas.Scene,
                        PropName = x.PropName,
                        PropValue = x.PropValue
                    }).ToList();
@@ -378,9 +430,10 @@
                foreach (var revitValve in revitModel.Valves)
                {
                    var valve = new Yw.Model.HydroValveInfo();
                    valve.Catalog = Yw.Hydro.Catalog.Valve;
                    valve.Catalog = Yw.Hydro.ParterCatalog.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;
@@ -392,6 +445,7 @@
                    valve.ValveSetting = revitValve.ValveSetting;
                    valve.ScenePropValueList = revitValve.PropValueList?.Select(x => new Yw.Model.HydroParterScenePropValuePureInfo()
                    {
                        Scene = HStation.Revit.ConstParas.Scene,
                        PropName = x.PropName,
                        PropValue = x.PropValue
                    }).ToList();
@@ -405,9 +459,10 @@
                foreach (var revitPipe in revitModel.Pipes)
                {
                    var pipe = new Yw.Model.HydroPipeInfo();
                    pipe.Catalog = Yw.Hydro.Catalog.Pipe;
                    pipe.Catalog = Yw.Hydro.ParterCatalog.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;
@@ -419,10 +474,69 @@
                    pipe.MinorLoss = revitPipe.MinorLoss;
                    pipe.ScenePropValueList = revitPipe.PropValueList?.Select(x => new Yw.Model.HydroParterScenePropValuePureInfo()
                    {
                        Scene = HStation.Revit.ConstParas.Scene,
                        PropName = x.PropName,
                        PropValue = x.PropValue
                    }).ToList();
                    hydro.Pipes.Add(pipe);
                }
            }
            //过渡件
            if (revitModel.Translations != null && revitModel.Translations.Count > 0)
            {
                foreach (var revitTranslation in revitModel.Translations)
                {
                    var translation = new Yw.Model.HydroPipeInfo();
                    translation.Catalog = Yw.Hydro.ParterCatalog.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()
                    {
                        Scene = HStation.Revit.ConstParas.Scene,
                        PropName = x.PropName,
                        PropValue = x.PropValue
                    }).ToList();
                    hydro.Pipes.Add(translation);
                }
            }
            //换热器
            if (revitModel.Exchangers != null && revitModel.Exchangers.Count > 0)
            {
                foreach (var revitExchanger in revitModel.Exchangers)
                {
                    var exchanger = new Yw.Model.HydroExchangerInfo();
                    exchanger.Catalog = Yw.Hydro.ParterCatalog.Exchanger;
                    exchanger.Name = revitExchanger.Name;
                    exchanger.Code = revitExchanger.Code;
                    exchanger.ModelType = revitExchanger.ModelType;
                    exchanger.Flags = revitExchanger.Flags;
                    exchanger.Description = revitExchanger.Description;
                    exchanger.StartCode = revitExchanger.StartCode;
                    exchanger.EndCode = revitExchanger.EndCode;
                    exchanger.LinkStatus = revitExchanger.LinkStatus;
                    exchanger.Diameter = revitExchanger.Diameter;
                    exchanger.Length = revitExchanger.Length;
                    exchanger.Roughness = revitExchanger.Roughness;
                    exchanger.MinorLoss = revitExchanger.MinorLoss;
                    exchanger.ScenePropValueList = revitExchanger.PropValueList?.Select(x => new Yw.Model.HydroParterScenePropValuePureInfo()
                    {
                        Scene = HStation.Revit.ConstParas.Scene,
                        PropName = x.PropName,
                        PropValue = x.PropValue
                    }).ToList();
                    hydro.Exchangers.Add(exchanger);
                }
            }
@@ -433,6 +547,7 @@
                foreach (var revitDecorator in revitModel.Decorators)
                {
                    var decorator = new Yw.Model.HydroDecoratorInfo();
                    decorator.Scene = HStation.Revit.ConstParas.Scene;
                    decorator.Name = revitDecorator.Name;
                    decorator.Category = revitDecorator.Category;
                    decorator.Decoration = revitDecorator.Decoration;