namespace HStation.Hydro { /// /// 转换辅助类 /// public class TransferHelper { /// /// 从Revit转换 /// public static Yw.Model.HydroModelInfo FromRevit ( HStation.Model.RevitModel revitModel, out List allPropStatusList, out List allScenePropValueList, out List allDecoratorList, out string msg ) { msg = string.Empty; var hydroInfo = new Yw.Model.HydroModelInfo(); hydroInfo.Name = revitModel.Name; hydroInfo.Code = null; hydroInfo.Paras = null; hydroInfo.Flags = new List(); hydroInfo.TagName = null; hydroInfo.Description = revitModel.Description; var propStatusHelper = new PropStatusHelper(hydroInfo); allScenePropValueList = new List();//场景属性列表 //水库 if (revitModel.Reservoirs != null && revitModel.Reservoirs.Count > 0) { if (hydroInfo.Reservoirs == null) { hydroInfo.Reservoirs = new List(); } foreach (var revitReservoir in revitModel.Reservoirs) { var reservoir = FromRevit(revitReservoir, propStatusHelper, ref allScenePropValueList); hydroInfo.Reservoirs.Add(reservoir); } } //水池 if (revitModel.Tanks != null && revitModel.Tanks.Count > 0) { if (hydroInfo.Tanks == null) { hydroInfo.Tanks = new List(); } foreach (var revitTank in revitModel.Tanks) { var tank = FromRevit(revitTank, propStatusHelper, ref allScenePropValueList); hydroInfo.Tanks.Add(tank); } } //水箱 if (revitModel.Waterboxs != null && revitModel.Waterboxs.Count > 0) { if (hydroInfo.Waterboxs == null) { hydroInfo.Waterboxs = new List(); } foreach (var revitWaterbox in revitModel.Waterboxs) { var waterbox = FromRevit(revitWaterbox, propStatusHelper, ref allScenePropValueList); hydroInfo.Waterboxs.Add(waterbox); } } //连接节点 if (revitModel.Junctions != null && revitModel.Junctions.Count > 0) { if (hydroInfo.Junctions == null) { hydroInfo.Junctions = new List(); } foreach (var revitJunction in revitModel.Junctions) { var junction = FromRevit(revitJunction, propStatusHelper, ref allScenePropValueList); hydroInfo.Junctions.Add(junction); } } //闷头 if (revitModel.Bluntheads != null && revitModel.Bluntheads.Count > 0) { if (hydroInfo.Bluntheads == null) { hydroInfo.Bluntheads = new List(); } foreach (var revitBlunthead in revitModel.Bluntheads) { var blunthead = FromRevit(revitBlunthead, propStatusHelper, ref allScenePropValueList); hydroInfo.Bluntheads.Add(blunthead); } } //弯头 if (revitModel.Elbows != null && revitModel.Elbows.Count > 0) { if (hydroInfo.Elbows == null) { hydroInfo.Elbows = new List(); } foreach (var revitElbow in revitModel.Elbows) { var elbow = FromRevit(revitElbow, propStatusHelper, ref allScenePropValueList); hydroInfo.Elbows.Add(elbow); } } //三通 if (revitModel.Threelinks != null && revitModel.Threelinks.Count > 0) { if (hydroInfo.Threelinks == null) { hydroInfo.Threelinks = new List(); } foreach (var revitThreelink in revitModel.Threelinks) { var threelink = FromRevit(revitThreelink, propStatusHelper, ref allScenePropValueList); hydroInfo.Threelinks.Add(threelink); } } //四通 if (revitModel.Fourlinks != null && revitModel.Fourlinks.Count > 0) { if (hydroInfo.Fourlinks == null) { hydroInfo.Fourlinks = new List(); } foreach (var revitFourlink in revitModel.Fourlinks) { var fourlink = FromRevit(revitFourlink, propStatusHelper, ref allScenePropValueList); hydroInfo.Fourlinks.Add(fourlink); } } //消火栓 if (revitModel.Hydrants != null && revitModel.Hydrants.Count > 0) { if (hydroInfo.Hydrants == null) { hydroInfo.Hydrants = new List(); } foreach (var revitHydrant in revitModel.Hydrants) { var hydrant = FromRevit(revitHydrant, propStatusHelper, ref allScenePropValueList); hydroInfo.Hydrants.Add(hydrant); } } //喷嘴 if (revitModel.Nozzles != null && revitModel.Nozzles.Count > 0) { if (hydroInfo.Nozzles == null) { hydroInfo.Nozzles = new List(); } foreach (var revitNozzle in revitModel.Nozzles) { var nozzle = FromRevit(revitNozzle, propStatusHelper, ref allScenePropValueList); hydroInfo.Nozzles.Add(nozzle); } } //冷却塔 if (revitModel.Coolings != null && revitModel.Coolings.Count > 0) { if (hydroInfo.Coolings == null) { hydroInfo.Coolings = new List(); } foreach (var revitCooling in revitModel.Coolings) { var cooling = FromRevit(revitCooling, propStatusHelper, ref allScenePropValueList); hydroInfo.Coolings.Add(cooling); } } //水表 if (revitModel.Meters != null && revitModel.Meters.Count > 0) { if (hydroInfo.Meters == null) { hydroInfo.Meters = new List(); } foreach (var revitMeter in revitModel.Meters) { var meter = FromRevit(revitMeter, propStatusHelper, ref allScenePropValueList); hydroInfo.Meters.Add(meter); } } //流量计 if (revitModel.Flowmeters != null && revitModel.Flowmeters.Count > 0) { if (hydroInfo.Flowmeters == null) { hydroInfo.Flowmeters = new List(); } foreach (var revitFlowmeter in revitModel.Flowmeters) { var flowmeter = FromRevit(revitFlowmeter, propStatusHelper, ref allScenePropValueList); hydroInfo.Flowmeters.Add(flowmeter); } } //压力表 if (revitModel.Pressmeters != null && revitModel.Pressmeters.Count > 0) { if (hydroInfo.Pressmeters == null) { hydroInfo.Pressmeters = new List(); } foreach (var revitPressmeter in revitModel.Pressmeters) { var pressmeter = FromRevit(revitPressmeter, propStatusHelper, ref allScenePropValueList); hydroInfo.Pressmeters.Add(pressmeter); } } //管道 if (revitModel.Pipes != null && revitModel.Pipes.Count > 0) { if (hydroInfo.Pipes == null) { hydroInfo.Pipes = new List(); } foreach (var revitPipe in revitModel.Pipes) { var pipe = FromRevit(revitPipe, propStatusHelper, ref allScenePropValueList); hydroInfo.Pipes.Add(pipe); } } //过渡件 if (revitModel.Translations != null && revitModel.Translations.Count > 0) { if (hydroInfo.Translations == null) { hydroInfo.Translations = new List(); } foreach (var revitTranslation in revitModel.Translations) { var translation = FromRevit(revitTranslation, propStatusHelper, ref allScenePropValueList); hydroInfo.Translations.Add(translation); } } //水泵 if (revitModel.Pumps != null && revitModel.Pumps.Count > 0) { if (hydroInfo.Pumps == null) { hydroInfo.Pumps = new List(); } foreach (var revitPump in revitModel.Pumps) { var pump = FromRevit(revitPump, propStatusHelper, ref allScenePropValueList); hydroInfo.Pumps.Add(pump); } } //阀门 if (revitModel.Valves != null && revitModel.Valves.Count > 0) { if (hydroInfo.Valves == null) { hydroInfo.Valves = new List(); } foreach (var revitValve in revitModel.Valves) { var valve = FromRevit(revitValve, propStatusHelper, ref allScenePropValueList); hydroInfo.Valves.Add(valve); } } //换热器 if (revitModel.Exchangers != null && revitModel.Exchangers.Count > 0) { if (hydroInfo.Exchangers == null) { hydroInfo.Exchangers = new List(); } foreach (var revitExchanger in revitModel.Exchangers) { var exchanger = FromRevit(revitExchanger, propStatusHelper, ref allScenePropValueList); hydroInfo.Exchangers.Add(exchanger); } } //空压机 if (revitModel.Compressors != null && revitModel.Compressors.Count > 0) { if (hydroInfo.Compressors == null) { hydroInfo.Compressors = new List(); } foreach (var revitCompressor in revitModel.Compressors) { var compressor = FromRevit(revitCompressor, propStatusHelper, ref allScenePropValueList); hydroInfo.Compressors.Add(compressor); } } //装饰件 allDecoratorList = new List(); if (revitModel.Decorators != null && revitModel.Decorators.Count > 0) { foreach (var revitDecorator in revitModel.Decorators) { var decorator = new Yw.Model.HydroDecoratorInfo(); decorator.Scene = HStation.Revit.ConstParas.Scene; decorator.Name = revitDecorator.Name; decorator.Code = revitDecorator.Id; decorator.Category = revitDecorator.Category; decorator.Decoration = revitDecorator.Decoration; decorator.Description = revitDecorator.Description; allDecoratorList.Add(decorator); } } allPropStatusList = propStatusHelper.GetPropStatusDbList(); return hydroInfo; } //水库 private static Yw.Model.HydroReservoirInfo FromRevit ( HStation.Model.RevitReservoir revitReservoir, PropStatusHelper propStatusHelper, ref List allScenePropValueList ) { if (revitReservoir == null) { return default; } var reservoir = new Yw.Model.HydroReservoirInfo(); reservoir.Catalog = Yw.Hydro.ParterCatalog.Reservoir; reservoir.Name = revitReservoir.Name; propStatusHelper.UpdatePropStatusInfo(revitReservoir.Id, nameof(reservoir.Name), revitReservoir, nameof(revitReservoir.Name)); reservoir.Code = revitReservoir.Id; propStatusHelper.UpdatePropStatusInfo(revitReservoir.Id, nameof(reservoir.Code), revitReservoir, nameof(revitReservoir.Id)); reservoir.ModelType = revitReservoir.ModelType; propStatusHelper.UpdatePropStatusInfo(revitReservoir.Id, nameof(reservoir.ModelType), revitReservoir, nameof(revitReservoir.ModelType)); reservoir.Flags = revitReservoir.Flags; if (reservoir.Flags == null) { reservoir.Flags = new List(); } propStatusHelper.UpdatePropStatusInfo(revitReservoir.Id, nameof(reservoir.Flags), revitReservoir, nameof(revitReservoir.Flags)); reservoir.Description = revitReservoir.Description; propStatusHelper.UpdatePropStatusInfo(revitReservoir.Id, nameof(reservoir.Description), revitReservoir, nameof(revitReservoir.Description)); reservoir.PoolElev = revitReservoir.PoolElev; propStatusHelper.UpdatePropStatusInfo(revitReservoir.Id, nameof(reservoir.PoolElev), revitReservoir, nameof(revitReservoir.PoolElev)); reservoir.Head = revitReservoir.Head; propStatusHelper.UpdatePropStatusInfo(revitReservoir.Id, nameof(reservoir.Head), revitReservoir, nameof(revitReservoir.Head)); reservoir.Position2d = new Yw.Model.Hydro.Position2d(revitReservoir.Position.X, revitReservoir.Position.Y); propStatusHelper.UpdatePropStatusInfo(revitReservoir.Id, nameof(reservoir.Position2d), revitReservoir, nameof(revitReservoir.Position)); reservoir.Position3d = new Yw.Model.Hydro.Position3d(revitReservoir.Position.X, revitReservoir.Position.Y, revitReservoir.Position.Z); propStatusHelper.UpdatePropStatusInfo(revitReservoir.Id, nameof(reservoir.Position3d), revitReservoir, nameof(revitReservoir.Position)); reservoir.FlowDirectionX = Yw.Hydro.FlowDirection.None; reservoir.FlowDirectionY = Yw.Hydro.FlowDirection.Positive; if (allScenePropValueList == null) { allScenePropValueList = new List(); } var scenePropValueList = revitReservoir.PropValueList?.Select(x => new Yw.Model.HydroParterScenePropValueInfo() { Parter = revitReservoir.Id, Scene = HStation.Revit.ConstParas.Scene, PropName = x.PropName, PropValue = x.PropValue }).ToList(); if (scenePropValueList != null && scenePropValueList.Count > 0) { allScenePropValueList.AddRange(scenePropValueList); } return reservoir; } //水池 private static Yw.Model.HydroTankInfo FromRevit ( HStation.Model.RevitTank revitTank, PropStatusHelper propStatusHelper, ref List allScenePropValueList ) { if (revitTank == null) { return default; } var tank = new Yw.Model.HydroTankInfo(); tank.Catalog = Yw.Hydro.ParterCatalog.Tank; tank.Name = revitTank.Name; propStatusHelper.UpdatePropStatusInfo(revitTank.Id, nameof(tank.Name), revitTank, nameof(revitTank.Name)); tank.Code = revitTank.Id; propStatusHelper.UpdatePropStatusInfo(revitTank.Id, nameof(tank.Code), revitTank, nameof(revitTank.Id)); tank.ModelType = revitTank.ModelType; propStatusHelper.UpdatePropStatusInfo(revitTank.Id, nameof(tank.ModelType), revitTank, nameof(revitTank.ModelType)); tank.Flags = revitTank.Flags; if (tank.Flags == null) { tank.Flags = new List(); } propStatusHelper.UpdatePropStatusInfo(revitTank.Id, nameof(tank.Flags), revitTank, nameof(revitTank.Flags)); tank.Description = revitTank.Description; propStatusHelper.UpdatePropStatusInfo(revitTank.Id, nameof(tank.Description), revitTank, nameof(revitTank.Description)); tank.PoolElev = revitTank.PoolElev; propStatusHelper.UpdatePropStatusInfo(revitTank.Id, nameof(tank.PoolElev), revitTank, nameof(revitTank.PoolElev)); tank.InitLevel = revitTank.InitLevel; propStatusHelper.UpdatePropStatusInfo(revitTank.Id, nameof(tank.InitLevel), revitTank, nameof(revitTank.InitLevel)); tank.MinLevel = revitTank.MinLevel; propStatusHelper.UpdatePropStatusInfo(revitTank.Id, nameof(tank.MinLevel), revitTank, nameof(revitTank.MinLevel)); tank.MaxLevel = revitTank.MaxLevel; propStatusHelper.UpdatePropStatusInfo(revitTank.Id, nameof(tank.MaxLevel), revitTank, nameof(revitTank.MaxLevel)); tank.DN = revitTank.DN; propStatusHelper.UpdatePropStatusInfo(revitTank.Id, nameof(tank.DN), revitTank, nameof(revitTank.DN)); tank.MinVol = revitTank.MinVol; propStatusHelper.UpdatePropStatusInfo(revitTank.Id, nameof(tank.MinVol), revitTank, nameof(revitTank.MinVol)); tank.VolCurve = revitTank.VolCurve; propStatusHelper.UpdatePropStatusInfo(revitTank.Id, nameof(tank.VolCurve), revitTank, nameof(revitTank.VolCurve)); tank.OverFlow = revitTank.OverFlow; propStatusHelper.UpdatePropStatusInfo(revitTank.Id, nameof(tank.OverFlow), revitTank, nameof(revitTank.OverFlow)); tank.Position2d = new Yw.Model.Hydro.Position2d(revitTank.Position.X, revitTank.Position.Y); propStatusHelper.UpdatePropStatusInfo(revitTank.Id, nameof(tank.Position2d), revitTank, nameof(revitTank.Position)); tank.Position3d = new Yw.Model.Hydro.Position3d(revitTank.Position.X, revitTank.Position.Y, revitTank.Position.Z); propStatusHelper.UpdatePropStatusInfo(revitTank.Id, nameof(tank.Position3d), revitTank, nameof(revitTank.Position)); tank.FlowDirectionX = Yw.Hydro.FlowDirection.None; tank.FlowDirectionY = Yw.Hydro.FlowDirection.Positive; if (allScenePropValueList == null) { allScenePropValueList = new List(); } var scenePropValueList = revitTank.PropValueList?.Select(x => new Yw.Model.HydroParterScenePropValueInfo() { Parter = revitTank.Id, Scene = HStation.Revit.ConstParas.Scene, PropName = x.PropName, PropValue = x.PropValue }).ToList(); if (scenePropValueList != null && scenePropValueList.Count > 0) { allScenePropValueList.AddRange(scenePropValueList); } return tank; } //水箱 private static Yw.Model.HydroWaterboxInfo FromRevit ( HStation.Model.RevitWaterbox revitWaterbox, PropStatusHelper propStatusHelper, ref List allScenePropValueList ) { if (revitWaterbox == null) { return default; } var waterbox = new Yw.Model.HydroWaterboxInfo(); waterbox.Catalog = Yw.Hydro.ParterCatalog.Waterbox; waterbox.Name = revitWaterbox.Name; propStatusHelper.UpdatePropStatusInfo(revitWaterbox.Id, nameof(waterbox.Name), revitWaterbox, nameof(revitWaterbox.Name)); waterbox.Code = revitWaterbox.Id; propStatusHelper.UpdatePropStatusInfo(revitWaterbox.Id, nameof(waterbox.Code), revitWaterbox, nameof(revitWaterbox.Id)); waterbox.ModelType = revitWaterbox.ModelType; propStatusHelper.UpdatePropStatusInfo(revitWaterbox.Id, nameof(waterbox.ModelType), revitWaterbox, nameof(revitWaterbox.ModelType)); waterbox.Flags = revitWaterbox.Flags; if (waterbox.Flags == null) { waterbox.Flags = new List(); } propStatusHelper.UpdatePropStatusInfo(revitWaterbox.Id, nameof(waterbox.Flags), revitWaterbox, nameof(revitWaterbox.Flags)); waterbox.Description = revitWaterbox.Description; propStatusHelper.UpdatePropStatusInfo(revitWaterbox.Id, nameof(waterbox.Description), revitWaterbox, nameof(revitWaterbox.Description)); waterbox.PoolElev = revitWaterbox.PoolElev; propStatusHelper.UpdatePropStatusInfo(revitWaterbox.Id, nameof(waterbox.PoolElev), revitWaterbox, nameof(revitWaterbox.PoolElev)); waterbox.InitLevel = revitWaterbox.InitLevel; propStatusHelper.UpdatePropStatusInfo(revitWaterbox.Id, nameof(waterbox.InitLevel), revitWaterbox, nameof(revitWaterbox.InitLevel)); waterbox.MinLevel = revitWaterbox.MinLevel; propStatusHelper.UpdatePropStatusInfo(revitWaterbox.Id, nameof(waterbox.MinLevel), revitWaterbox, nameof(revitWaterbox.MinLevel)); waterbox.MaxLevel = revitWaterbox.MaxLevel; propStatusHelper.UpdatePropStatusInfo(revitWaterbox.Id, nameof(waterbox.MaxLevel), revitWaterbox, nameof(revitWaterbox.MaxLevel)); waterbox.DN = revitWaterbox.DN; propStatusHelper.UpdatePropStatusInfo(revitWaterbox.Id, nameof(waterbox.DN), revitWaterbox, nameof(revitWaterbox.DN)); waterbox.MinVol = revitWaterbox.MinVol; propStatusHelper.UpdatePropStatusInfo(revitWaterbox.Id, nameof(waterbox.MinVol), revitWaterbox, nameof(revitWaterbox.MinVol)); waterbox.VolCurve = revitWaterbox.VolCurve; propStatusHelper.UpdatePropStatusInfo(revitWaterbox.Id, nameof(waterbox.VolCurve), revitWaterbox, nameof(revitWaterbox.VolCurve)); waterbox.OverFlow = revitWaterbox.OverFlow; propStatusHelper.UpdatePropStatusInfo(revitWaterbox.Id, nameof(waterbox.OverFlow), revitWaterbox, nameof(revitWaterbox.OverFlow)); waterbox.Position2d = new Yw.Model.Hydro.Position2d(revitWaterbox.Position.X, revitWaterbox.Position.Y); propStatusHelper.UpdatePropStatusInfo(revitWaterbox.Id, nameof(waterbox.Position2d), revitWaterbox, nameof(revitWaterbox.Position)); waterbox.Position3d = new Yw.Model.Hydro.Position3d(revitWaterbox.Position.X, revitWaterbox.Position.Y, revitWaterbox.Position.Z); propStatusHelper.UpdatePropStatusInfo(revitWaterbox.Id, nameof(waterbox.Position3d), revitWaterbox, nameof(revitWaterbox.Position)); waterbox.FlowDirectionX = Yw.Hydro.FlowDirection.None; waterbox.FlowDirectionY = Yw.Hydro.FlowDirection.Positive; if (allScenePropValueList == null) { allScenePropValueList = new List(); } var scenePropValueList = revitWaterbox.PropValueList?.Select(x => new Yw.Model.HydroParterScenePropValueInfo() { Parter = revitWaterbox.Id, Scene = HStation.Revit.ConstParas.Scene, PropName = x.PropName, PropValue = x.PropValue }).ToList(); if (scenePropValueList != null && scenePropValueList.Count > 0) { allScenePropValueList.AddRange(scenePropValueList); } return waterbox; } //连接节点 private static Yw.Model.HydroJunctionInfo FromRevit ( HStation.Model.RevitJunction revitJunction, PropStatusHelper propStatusHelper, ref List allScenePropValueList ) { if (revitJunction == null) { return default; } var junction = new Yw.Model.HydroJunctionInfo(); junction.Catalog = Yw.Hydro.ParterCatalog.Junction; junction.Name = revitJunction.Name; propStatusHelper.UpdatePropStatusInfo(revitJunction.Id, nameof(junction.Name), revitJunction, nameof(revitJunction.Name)); junction.Code = revitJunction.Id; propStatusHelper.UpdatePropStatusInfo(revitJunction.Id, nameof(junction.Code), revitJunction, nameof(revitJunction.Id)); junction.ModelType = revitJunction.ModelType; propStatusHelper.UpdatePropStatusInfo(revitJunction.Id, nameof(junction.ModelType), revitJunction, nameof(revitJunction.ModelType)); junction.Flags = revitJunction.Flags; if (junction.Flags == null) { junction.Flags = new List(); } propStatusHelper.UpdatePropStatusInfo(revitJunction.Id, nameof(junction.Flags), revitJunction, nameof(revitJunction.Flags)); junction.Description = revitJunction.Description; propStatusHelper.UpdatePropStatusInfo(revitJunction.Id, nameof(junction.Description), revitJunction, nameof(revitJunction.Description)); junction.Elev = revitJunction.Elev; propStatusHelper.UpdatePropStatusInfo(revitJunction.Id, nameof(junction.Elev), revitJunction, nameof(revitJunction.Elev)); junction.MinorLoss = revitJunction.MinorLoss; propStatusHelper.UpdatePropStatusInfo(revitJunction.Id, nameof(junction.MinorLoss), revitJunction, nameof(revitJunction.MinorLoss)); junction.Position2d = new Yw.Model.Hydro.Position2d(revitJunction.Position.X, revitJunction.Position.Y); propStatusHelper.UpdatePropStatusInfo(revitJunction.Id, nameof(junction.Position2d), revitJunction, nameof(revitJunction.Position)); junction.Position3d = new Yw.Model.Hydro.Position3d(revitJunction.Position.X, revitJunction.Position.Y, revitJunction.Position.Z); propStatusHelper.UpdatePropStatusInfo(revitJunction.Id, nameof(junction.Position3d), revitJunction, nameof(revitJunction.Position)); junction.FlowDirectionX = Yw.Hydro.FlowDirection.None; junction.FlowDirectionY = Yw.Hydro.FlowDirection.Positive; if (allScenePropValueList == null) { allScenePropValueList = new List(); } var scenePropValueList = revitJunction.PropValueList?.Select(x => new Yw.Model.HydroParterScenePropValueInfo() { Parter = revitJunction.Id, Scene = HStation.Revit.ConstParas.Scene, PropName = x.PropName, PropValue = x.PropValue }).ToList(); if (scenePropValueList != null && scenePropValueList.Count > 0) { allScenePropValueList.AddRange(scenePropValueList); } return junction; } //闷头 private static Yw.Model.HydroBluntheadInfo FromRevit ( HStation.Model.RevitBlunthead revitBlunthead, PropStatusHelper propStatusHelper, ref List allScenePropValueList ) { if (revitBlunthead == null) { return default; } var blunthead = new Yw.Model.HydroBluntheadInfo(); blunthead.Catalog = Yw.Hydro.ParterCatalog.Blunthead; blunthead.Name = revitBlunthead.Name; propStatusHelper.UpdatePropStatusInfo(revitBlunthead.Id, nameof(blunthead.Name), revitBlunthead, nameof(revitBlunthead.Name)); blunthead.Code = revitBlunthead.Id; propStatusHelper.UpdatePropStatusInfo(revitBlunthead.Id, nameof(blunthead.Code), revitBlunthead, nameof(revitBlunthead.Id)); blunthead.ModelType = revitBlunthead.ModelType; propStatusHelper.UpdatePropStatusInfo(revitBlunthead.Id, nameof(blunthead.ModelType), revitBlunthead, nameof(revitBlunthead.ModelType)); blunthead.Flags = revitBlunthead.Flags; if (blunthead.Flags == null) { blunthead.Flags = new List(); } propStatusHelper.UpdatePropStatusInfo(revitBlunthead.Id, nameof(blunthead.Flags), revitBlunthead, nameof(revitBlunthead.Flags)); blunthead.Description = revitBlunthead.Description; propStatusHelper.UpdatePropStatusInfo(revitBlunthead.Id, nameof(blunthead.Description), revitBlunthead, nameof(revitBlunthead.Description)); blunthead.Elev = revitBlunthead.Elev; propStatusHelper.UpdatePropStatusInfo(revitBlunthead.Id, nameof(blunthead.Elev), revitBlunthead, nameof(revitBlunthead.Elev)); blunthead.MinorLoss = revitBlunthead.MinorLoss; propStatusHelper.UpdatePropStatusInfo(revitBlunthead.Id, nameof(blunthead.MinorLoss), revitBlunthead, nameof(revitBlunthead.MinorLoss)); blunthead.Position2d = new Yw.Model.Hydro.Position2d(revitBlunthead.Position.X, revitBlunthead.Position.Y); propStatusHelper.UpdatePropStatusInfo(revitBlunthead.Id, nameof(blunthead.Position2d), revitBlunthead, nameof(revitBlunthead.Position)); blunthead.Position3d = new Yw.Model.Hydro.Position3d(revitBlunthead.Position.X, revitBlunthead.Position.Y, revitBlunthead.Position.Z); propStatusHelper.UpdatePropStatusInfo(revitBlunthead.Id, nameof(blunthead.Position3d), revitBlunthead, nameof(revitBlunthead.Position)); blunthead.Material = revitBlunthead.Material; propStatusHelper.UpdatePropStatusInfo(revitBlunthead.Id, nameof(blunthead.Material), revitBlunthead, nameof(revitBlunthead.Material)); blunthead.Caliber = revitBlunthead.Caliber; propStatusHelper.UpdatePropStatusInfo(revitBlunthead.Id, nameof(blunthead.Caliber), revitBlunthead, nameof(revitBlunthead.Caliber)); blunthead.FlowDirectionX = Yw.Hydro.FlowDirection.None; blunthead.FlowDirectionY = Yw.Hydro.FlowDirection.Positive; if (allScenePropValueList == null) { allScenePropValueList = new List(); } var scenePropValueList = revitBlunthead.PropValueList?.Select(x => new Yw.Model.HydroParterScenePropValueInfo() { Parter = revitBlunthead.Id, Scene = HStation.Revit.ConstParas.Scene, PropName = x.PropName, PropValue = x.PropValue }).ToList(); if (scenePropValueList != null && scenePropValueList.Count > 0) { allScenePropValueList.AddRange(scenePropValueList); } return blunthead; } //弯头 private static Yw.Model.HydroElbowInfo FromRevit ( HStation.Model.RevitElbow revitElbow, PropStatusHelper propStatusHelper, ref List allScenePropValueList ) { if (revitElbow == null) { return default; } var elbow = new Yw.Model.HydroElbowInfo(); elbow.Catalog = Yw.Hydro.ParterCatalog.Elbow; elbow.Name = revitElbow.Name; propStatusHelper.UpdatePropStatusInfo(revitElbow.Id, nameof(elbow.Name), revitElbow, nameof(revitElbow.Name)); elbow.Code = revitElbow.Id; propStatusHelper.UpdatePropStatusInfo(revitElbow.Id, nameof(elbow.Code), revitElbow, nameof(revitElbow.Id)); elbow.ModelType = revitElbow.ModelType; propStatusHelper.UpdatePropStatusInfo(revitElbow.Id, nameof(elbow.ModelType), revitElbow, nameof(revitElbow.ModelType)); elbow.Flags = revitElbow.Flags; if (elbow.Flags == null) { elbow.Flags = new List(); } propStatusHelper.UpdatePropStatusInfo(revitElbow.Id, nameof(elbow.Flags), revitElbow, nameof(revitElbow.Flags)); elbow.Description = revitElbow.Description; propStatusHelper.UpdatePropStatusInfo(revitElbow.Id, nameof(elbow.Description), revitElbow, nameof(revitElbow.Description)); elbow.Elev = revitElbow.Elev; propStatusHelper.UpdatePropStatusInfo(revitElbow.Id, nameof(elbow.Elev), revitElbow, nameof(revitElbow.Elev)); elbow.MinorLoss = revitElbow.MinorLoss; propStatusHelper.UpdatePropStatusInfo(revitElbow.Id, nameof(elbow.MinorLoss), revitElbow, nameof(revitElbow.MinorLoss)); elbow.Position2d = new Yw.Model.Hydro.Position2d(revitElbow.Position.X, revitElbow.Position.Y); propStatusHelper.UpdatePropStatusInfo(revitElbow.Id, nameof(elbow.Position2d), revitElbow, nameof(revitElbow.Position)); elbow.Position3d = new Yw.Model.Hydro.Position3d(revitElbow.Position.X, revitElbow.Position.Y, revitElbow.Position.Z); propStatusHelper.UpdatePropStatusInfo(revitElbow.Id, nameof(elbow.Position3d), revitElbow, nameof(revitElbow.Position)); elbow.Material = revitElbow.Material; propStatusHelper.UpdatePropStatusInfo(revitElbow.Id, nameof(elbow.Material), revitElbow, nameof(revitElbow.Material)); elbow.Caliber = revitElbow.Caliber; propStatusHelper.UpdatePropStatusInfo(revitElbow.Id, nameof(elbow.Caliber), revitElbow, nameof(revitElbow.Caliber)); elbow.BendingAngle = revitElbow.BendingAngle; propStatusHelper.UpdatePropStatusInfo(revitElbow.Id, nameof(elbow.BendingAngle), revitElbow, nameof(revitElbow.BendingAngle)); elbow.ElbowType = revitElbow.ElbowType; propStatusHelper.UpdatePropStatusInfo(revitElbow.Id, nameof(elbow.ElbowType), revitElbow, nameof(revitElbow.ElbowType)); elbow.FlowDirectionX = Yw.Hydro.FlowDirection.None; elbow.FlowDirectionY = Yw.Hydro.FlowDirection.Positive; if (allScenePropValueList == null) { allScenePropValueList = new List(); } var scenePropValueList = revitElbow.PropValueList?.Select(x => new Yw.Model.HydroParterScenePropValueInfo() { Parter = revitElbow.Id, Scene = HStation.Revit.ConstParas.Scene, PropName = x.PropName, PropValue = x.PropValue }).ToList(); if (scenePropValueList != null && scenePropValueList.Count > 0) { allScenePropValueList.AddRange(scenePropValueList); } return elbow; } //三通 private static Yw.Model.HydroThreelinkInfo FromRevit ( HStation.Model.RevitThreelink revitThreelink, PropStatusHelper propStatusHelper, ref List allScenePropValueList ) { if (revitThreelink == null) { return default; } var threelink = new Yw.Model.HydroThreelinkInfo(); threelink.Catalog = Yw.Hydro.ParterCatalog.Threelink; threelink.Name = revitThreelink.Name; propStatusHelper.UpdatePropStatusInfo(revitThreelink.Id, nameof(threelink.Name), revitThreelink, nameof(revitThreelink.Name)); threelink.Code = revitThreelink.Id; propStatusHelper.UpdatePropStatusInfo(revitThreelink.Id, nameof(threelink.Code), revitThreelink, nameof(revitThreelink.Id)); threelink.ModelType = revitThreelink.ModelType; propStatusHelper.UpdatePropStatusInfo(revitThreelink.Id, nameof(threelink.ModelType), revitThreelink, nameof(revitThreelink.ModelType)); threelink.Flags = revitThreelink.Flags; if (threelink.Flags == null) { threelink.Flags = new List(); } propStatusHelper.UpdatePropStatusInfo(revitThreelink.Id, nameof(threelink.Flags), revitThreelink, nameof(revitThreelink.Flags)); threelink.Description = revitThreelink.Description; propStatusHelper.UpdatePropStatusInfo(revitThreelink.Id, nameof(threelink.Description), revitThreelink, nameof(revitThreelink.Description)); threelink.Elev = revitThreelink.Elev; propStatusHelper.UpdatePropStatusInfo(revitThreelink.Id, nameof(threelink.Elev), revitThreelink, nameof(revitThreelink.Elev)); threelink.MinorLoss = revitThreelink.MinorLoss; propStatusHelper.UpdatePropStatusInfo(revitThreelink.Id, nameof(threelink.MinorLoss), revitThreelink, nameof(revitThreelink.MinorLoss)); threelink.Position2d = new Yw.Model.Hydro.Position2d(revitThreelink.Position.X, revitThreelink.Position.Y); propStatusHelper.UpdatePropStatusInfo(revitThreelink.Id, nameof(threelink.Position2d), revitThreelink, nameof(revitThreelink.Position)); threelink.Position3d = new Yw.Model.Hydro.Position3d(revitThreelink.Position.X, revitThreelink.Position.Y, revitThreelink.Position.Z); propStatusHelper.UpdatePropStatusInfo(revitThreelink.Id, nameof(threelink.Position3d), revitThreelink, nameof(revitThreelink.Position)); threelink.Material = revitThreelink.Material; propStatusHelper.UpdatePropStatusInfo(revitThreelink.Id, nameof(threelink.Material), revitThreelink, nameof(revitThreelink.Material)); threelink.Caliber = revitThreelink.Caliber; propStatusHelper.UpdatePropStatusInfo(revitThreelink.Id, nameof(threelink.Caliber), revitThreelink, nameof(revitThreelink.Caliber)); threelink.RunningThroughLoss = revitThreelink.RunningThroughLoss; propStatusHelper.UpdatePropStatusInfo(revitThreelink.Id, nameof(threelink.RunningThroughLoss), revitThreelink, nameof(revitThreelink.RunningThroughLoss)); threelink.BranchThroughLoss = revitThreelink.BranchThroughLoss; propStatusHelper.UpdatePropStatusInfo(revitThreelink.Id, nameof(threelink.BranchThroughLoss), revitThreelink, nameof(revitThreelink.BranchThroughLoss)); threelink.FlowDirectionX = Yw.Hydro.FlowDirection.None; threelink.FlowDirectionY = Yw.Hydro.FlowDirection.Positive; if (allScenePropValueList == null) { allScenePropValueList = new List(); } var scenePropValueList = revitThreelink.PropValueList?.Select(x => new Yw.Model.HydroParterScenePropValueInfo() { Parter = revitThreelink.Id, Scene = HStation.Revit.ConstParas.Scene, PropName = x.PropName, PropValue = x.PropValue }).ToList(); if (scenePropValueList != null && scenePropValueList.Count > 0) { allScenePropValueList.AddRange(scenePropValueList); } return threelink; } //四通 private static Yw.Model.HydroFourlinkInfo FromRevit ( HStation.Model.RevitFourlink revitFourlink, PropStatusHelper propStatusHelper, ref List allScenePropValueList ) { if (revitFourlink == null) { return default; } var fourlink = new Yw.Model.HydroFourlinkInfo(); fourlink.Catalog = Yw.Hydro.ParterCatalog.Fourlink; fourlink.Name = revitFourlink.Name; propStatusHelper.UpdatePropStatusInfo(revitFourlink.Id, nameof(fourlink.Name), revitFourlink, nameof(revitFourlink.Name)); fourlink.Code = revitFourlink.Id; propStatusHelper.UpdatePropStatusInfo(revitFourlink.Id, nameof(fourlink.Code), revitFourlink, nameof(revitFourlink.Id)); fourlink.ModelType = revitFourlink.ModelType; propStatusHelper.UpdatePropStatusInfo(revitFourlink.Id, nameof(fourlink.ModelType), revitFourlink, nameof(revitFourlink.ModelType)); fourlink.Flags = revitFourlink.Flags; if (fourlink.Flags == null) { fourlink.Flags = new List(); } propStatusHelper.UpdatePropStatusInfo(revitFourlink.Id, nameof(fourlink.Flags), revitFourlink, nameof(revitFourlink.Flags)); fourlink.Description = revitFourlink.Description; propStatusHelper.UpdatePropStatusInfo(revitFourlink.Id, nameof(fourlink.Description), revitFourlink, nameof(revitFourlink.Description)); fourlink.Elev = revitFourlink.Elev; propStatusHelper.UpdatePropStatusInfo(revitFourlink.Id, nameof(fourlink.Elev), revitFourlink, nameof(revitFourlink.Elev)); fourlink.MinorLoss = revitFourlink.MinorLoss; propStatusHelper.UpdatePropStatusInfo(revitFourlink.Id, nameof(fourlink.MinorLoss), revitFourlink, nameof(revitFourlink.MinorLoss)); fourlink.Position2d = new Yw.Model.Hydro.Position2d(revitFourlink.Position.X, revitFourlink.Position.Y); propStatusHelper.UpdatePropStatusInfo(revitFourlink.Id, nameof(fourlink.Position2d), revitFourlink, nameof(revitFourlink.Position)); fourlink.Position3d = new Yw.Model.Hydro.Position3d(revitFourlink.Position.X, revitFourlink.Position.Y, revitFourlink.Position.Z); propStatusHelper.UpdatePropStatusInfo(revitFourlink.Id, nameof(fourlink.Position3d), revitFourlink, nameof(revitFourlink.Position)); fourlink.Material = revitFourlink.Material; propStatusHelper.UpdatePropStatusInfo(revitFourlink.Id, nameof(fourlink.Material), revitFourlink, nameof(revitFourlink.Material)); fourlink.Caliber = revitFourlink.Caliber; propStatusHelper.UpdatePropStatusInfo(revitFourlink.Id, nameof(fourlink.Caliber), revitFourlink, nameof(revitFourlink.Caliber)); fourlink.FlowDirectionX = Yw.Hydro.FlowDirection.None; fourlink.FlowDirectionY = Yw.Hydro.FlowDirection.Positive; if (allScenePropValueList == null) { allScenePropValueList = new List(); } var scenePropValueList = revitFourlink.PropValueList?.Select(x => new Yw.Model.HydroParterScenePropValueInfo() { Parter = revitFourlink.Id, Scene = HStation.Revit.ConstParas.Scene, PropName = x.PropName, PropValue = x.PropValue }).ToList(); if (scenePropValueList != null && scenePropValueList.Count > 0) { allScenePropValueList.AddRange(scenePropValueList); } return fourlink; } //喷嘴 private static Yw.Model.HydroNozzleInfo FromRevit ( HStation.Model.RevitNozzle revitNozzle, PropStatusHelper propStatusHelper, ref List allScenePropValueList ) { if (revitNozzle == null) { return default; } var nozzle = new Yw.Model.HydroNozzleInfo(); nozzle.Catalog = Yw.Hydro.ParterCatalog.Nozzle; nozzle.Name = revitNozzle.Name; propStatusHelper.UpdatePropStatusInfo(revitNozzle.Id, nameof(nozzle.Name), revitNozzle, nameof(revitNozzle.Name)); nozzle.Code = revitNozzle.Id; propStatusHelper.UpdatePropStatusInfo(revitNozzle.Id, nameof(nozzle.Code), revitNozzle, nameof(revitNozzle.Id)); nozzle.ModelType = revitNozzle.ModelType; propStatusHelper.UpdatePropStatusInfo(revitNozzle.Id, nameof(nozzle.ModelType), revitNozzle, nameof(revitNozzle.ModelType)); nozzle.Flags = revitNozzle.Flags; if (nozzle.Flags == null) { nozzle.Flags = new List(); } propStatusHelper.UpdatePropStatusInfo(revitNozzle.Id, nameof(nozzle.Flags), revitNozzle, nameof(revitNozzle.Flags)); nozzle.Description = revitNozzle.Description; propStatusHelper.UpdatePropStatusInfo(revitNozzle.Id, nameof(nozzle.Description), revitNozzle, nameof(revitNozzle.Description)); nozzle.Elev = revitNozzle.Elev; propStatusHelper.UpdatePropStatusInfo(revitNozzle.Id, nameof(nozzle.Elev), revitNozzle, nameof(revitNozzle.Elev)); nozzle.MinorLoss = revitNozzle.MinorLoss; propStatusHelper.UpdatePropStatusInfo(revitNozzle.Id, nameof(nozzle.MinorLoss), revitNozzle, nameof(revitNozzle.MinorLoss)); nozzle.Position2d = new Yw.Model.Hydro.Position2d(revitNozzle.Position.X, revitNozzle.Position.Y); propStatusHelper.UpdatePropStatusInfo(revitNozzle.Id, nameof(nozzle.Position2d), revitNozzle, nameof(revitNozzle.Position)); nozzle.Position3d = new Yw.Model.Hydro.Position3d(revitNozzle.Position.X, revitNozzle.Position.Y, revitNozzle.Position.Z); propStatusHelper.UpdatePropStatusInfo(revitNozzle.Id, nameof(nozzle.Position3d), revitNozzle, nameof(revitNozzle.Position)); nozzle.Material = revitNozzle.Material; propStatusHelper.UpdatePropStatusInfo(revitNozzle.Id, nameof(nozzle.Material), revitNozzle, nameof(revitNozzle.Material)); nozzle.Caliber = revitNozzle.Caliber; propStatusHelper.UpdatePropStatusInfo(revitNozzle.Id, nameof(nozzle.Caliber), revitNozzle, nameof(revitNozzle.Caliber)); nozzle.Coefficient = revitNozzle.Coefficient; propStatusHelper.UpdatePropStatusInfo(revitNozzle.Id, nameof(nozzle.Coefficient), revitNozzle, nameof(revitNozzle.Coefficient)); nozzle.FlowDirectionX = Yw.Hydro.FlowDirection.None; nozzle.FlowDirectionY = Yw.Hydro.FlowDirection.Positive; if (allScenePropValueList == null) { allScenePropValueList = new List(); } var scenePropValueList = revitNozzle.PropValueList?.Select(x => new Yw.Model.HydroParterScenePropValueInfo() { Parter = revitNozzle.Id, Scene = HStation.Revit.ConstParas.Scene, PropName = x.PropName, PropValue = x.PropValue }).ToList(); if (scenePropValueList != null && scenePropValueList.Count > 0) { allScenePropValueList.AddRange(scenePropValueList); } return nozzle; } //消火栓 private static Yw.Model.HydroHydrantInfo FromRevit ( HStation.Model.RevitHydrant revitHydrant, PropStatusHelper propStatusHelper, ref List allScenePropValueList ) { if (revitHydrant == null) { return default; } var hydrant = new Yw.Model.HydroHydrantInfo(); hydrant.Catalog = Yw.Hydro.ParterCatalog.Hydrant; hydrant.Name = revitHydrant.Name; propStatusHelper.UpdatePropStatusInfo(revitHydrant.Id, nameof(hydrant.Name), revitHydrant, nameof(revitHydrant.Name)); hydrant.Code = revitHydrant.Id; propStatusHelper.UpdatePropStatusInfo(revitHydrant.Id, nameof(hydrant.Code), revitHydrant, nameof(revitHydrant.Id)); hydrant.ModelType = revitHydrant.ModelType; propStatusHelper.UpdatePropStatusInfo(revitHydrant.Id, nameof(hydrant.ModelType), revitHydrant, nameof(revitHydrant.ModelType)); hydrant.Flags = revitHydrant.Flags; if (hydrant.Flags == null) { hydrant.Flags = new List(); } propStatusHelper.UpdatePropStatusInfo(revitHydrant.Id, nameof(hydrant.Flags), revitHydrant, nameof(revitHydrant.Flags)); hydrant.Description = revitHydrant.Description; propStatusHelper.UpdatePropStatusInfo(revitHydrant.Id, nameof(hydrant.Description), revitHydrant, nameof(revitHydrant.Description)); hydrant.Elev = revitHydrant.Elev; propStatusHelper.UpdatePropStatusInfo(revitHydrant.Id, nameof(hydrant.Elev), revitHydrant, nameof(revitHydrant.Elev)); hydrant.MinorLoss = revitHydrant.MinorLoss; propStatusHelper.UpdatePropStatusInfo(revitHydrant.Id, nameof(hydrant.MinorLoss), revitHydrant, nameof(revitHydrant.MinorLoss)); hydrant.Position2d = new Yw.Model.Hydro.Position2d(revitHydrant.Position.X, revitHydrant.Position.Y); propStatusHelper.UpdatePropStatusInfo(revitHydrant.Id, nameof(hydrant.Position2d), revitHydrant, nameof(revitHydrant.Position)); hydrant.Position3d = new Yw.Model.Hydro.Position3d(revitHydrant.Position.X, revitHydrant.Position.Y, revitHydrant.Position.Z); propStatusHelper.UpdatePropStatusInfo(revitHydrant.Id, nameof(hydrant.Position3d), revitHydrant, nameof(revitHydrant.Position)); hydrant.Material = revitHydrant.Material; propStatusHelper.UpdatePropStatusInfo(revitHydrant.Id, nameof(hydrant.Material), revitHydrant, nameof(revitHydrant.Material)); hydrant.Caliber = revitHydrant.Caliber; propStatusHelper.UpdatePropStatusInfo(revitHydrant.Id, nameof(hydrant.Caliber), revitHydrant, nameof(revitHydrant.Caliber)); hydrant.Coefficient = revitHydrant.Coefficient; propStatusHelper.UpdatePropStatusInfo(revitHydrant.Id, nameof(hydrant.Coefficient), revitHydrant, nameof(revitHydrant.Coefficient)); hydrant.FlowDirectionX = Yw.Hydro.FlowDirection.None; hydrant.FlowDirectionY = Yw.Hydro.FlowDirection.Positive; if (allScenePropValueList == null) { allScenePropValueList = new List(); } var scenePropValueList = revitHydrant.PropValueList?.Select(x => new Yw.Model.HydroParterScenePropValueInfo() { Parter = revitHydrant.Id, Scene = HStation.Revit.ConstParas.Scene, PropName = x.PropName, PropValue = x.PropValue }).ToList(); if (scenePropValueList != null && scenePropValueList.Count > 0) { allScenePropValueList.AddRange(scenePropValueList); } return hydrant; } //冷却塔 private static Yw.Model.HydroCoolingInfo FromRevit ( HStation.Model.RevitCooling revitCooling, PropStatusHelper propStatusHelper, ref List allScenePropValueList ) { if (revitCooling == null) { return default; } var cooling = new Yw.Model.HydroCoolingInfo(); cooling.Catalog = Yw.Hydro.ParterCatalog.Cooling; cooling.Name = revitCooling.Name; propStatusHelper.UpdatePropStatusInfo(revitCooling.Id, nameof(cooling.Name), revitCooling, nameof(revitCooling.Name)); cooling.Code = revitCooling.Id; propStatusHelper.UpdatePropStatusInfo(revitCooling.Id, nameof(cooling.Code), revitCooling, nameof(revitCooling.Id)); cooling.ModelType = revitCooling.ModelType; propStatusHelper.UpdatePropStatusInfo(revitCooling.Id, nameof(cooling.ModelType), revitCooling, nameof(revitCooling.ModelType)); cooling.Flags = revitCooling.Flags; if (cooling.Flags == null) { cooling.Flags = new List(); } propStatusHelper.UpdatePropStatusInfo(revitCooling.Id, nameof(cooling.Flags), revitCooling, nameof(revitCooling.Flags)); cooling.Description = revitCooling.Description; propStatusHelper.UpdatePropStatusInfo(revitCooling.Id, nameof(cooling.Description), revitCooling, nameof(revitCooling.Description)); cooling.Elev = revitCooling.Elev; propStatusHelper.UpdatePropStatusInfo(revitCooling.Id, nameof(cooling.Elev), revitCooling, nameof(revitCooling.Elev)); cooling.MinorLoss = revitCooling.MinorLoss; propStatusHelper.UpdatePropStatusInfo(revitCooling.Id, nameof(cooling.MinorLoss), revitCooling, nameof(revitCooling.MinorLoss)); cooling.Position2d = new Yw.Model.Hydro.Position2d(revitCooling.Position.X, revitCooling.Position.Y); propStatusHelper.UpdatePropStatusInfo(revitCooling.Id, nameof(cooling.Position2d), revitCooling, nameof(revitCooling.Position)); cooling.Position3d = new Yw.Model.Hydro.Position3d(revitCooling.Position.X, revitCooling.Position.Y, revitCooling.Position.Z); propStatusHelper.UpdatePropStatusInfo(revitCooling.Id, nameof(cooling.Position3d), revitCooling, nameof(revitCooling.Position)); cooling.Material = revitCooling.Material; propStatusHelper.UpdatePropStatusInfo(revitCooling.Id, nameof(cooling.Material), revitCooling, nameof(revitCooling.Material)); cooling.Caliber = revitCooling.Caliber; propStatusHelper.UpdatePropStatusInfo(revitCooling.Id, nameof(cooling.Caliber), revitCooling, nameof(revitCooling.Caliber)); cooling.Coefficient = revitCooling.Coefficient; propStatusHelper.UpdatePropStatusInfo(revitCooling.Id, nameof(cooling.Coefficient), revitCooling, nameof(revitCooling.Coefficient)); cooling.LowerLimit = revitCooling.LowerLimit; propStatusHelper.UpdatePropStatusInfo(revitCooling.Id, nameof(cooling.LowerLimit), revitCooling, nameof(revitCooling.LowerLimit)); cooling.FlowDirectionX = Yw.Hydro.FlowDirection.None; cooling.FlowDirectionY = Yw.Hydro.FlowDirection.Positive; if (allScenePropValueList == null) { allScenePropValueList = new List(); } var scenePropValueList = revitCooling.PropValueList?.Select(x => new Yw.Model.HydroParterScenePropValueInfo() { Parter = revitCooling.Id, Scene = HStation.Revit.ConstParas.Scene, PropName = x.PropName, PropValue = x.PropValue }).ToList(); if (scenePropValueList != null && scenePropValueList.Count > 0) { allScenePropValueList.AddRange(scenePropValueList); } return cooling; } //水表 private static Yw.Model.HydroMeterInfo FromRevit ( HStation.Model.RevitMeter revitMeter, PropStatusHelper propStatusHelper, ref List allScenePropValueList ) { if (revitMeter == null) { return default; } var meter = new Yw.Model.HydroMeterInfo(); meter.Catalog = Yw.Hydro.ParterCatalog.Meter; meter.Name = revitMeter.Name; propStatusHelper.UpdatePropStatusInfo(revitMeter.Id, nameof(meter.Name), revitMeter, nameof(revitMeter.Name)); meter.Code = revitMeter.Id; propStatusHelper.UpdatePropStatusInfo(revitMeter.Id, nameof(meter.Code), revitMeter, nameof(revitMeter.Id)); meter.ModelType = revitMeter.ModelType; propStatusHelper.UpdatePropStatusInfo(revitMeter.Id, nameof(meter.ModelType), revitMeter, nameof(revitMeter.ModelType)); meter.Flags = revitMeter.Flags; if (meter.Flags == null) { meter.Flags = new List(); } propStatusHelper.UpdatePropStatusInfo(revitMeter.Id, nameof(meter.Flags), revitMeter, nameof(revitMeter.Flags)); meter.Description = revitMeter.Description; propStatusHelper.UpdatePropStatusInfo(revitMeter.Id, nameof(meter.Description), revitMeter, nameof(revitMeter.Description)); meter.Elev = revitMeter.Elev; propStatusHelper.UpdatePropStatusInfo(revitMeter.Id, nameof(meter.Elev), revitMeter, nameof(revitMeter.Elev)); meter.MinorLoss = revitMeter.MinorLoss; propStatusHelper.UpdatePropStatusInfo(revitMeter.Id, nameof(meter.MinorLoss), revitMeter, nameof(revitMeter.MinorLoss)); meter.Demand = revitMeter.Demand; propStatusHelper.UpdatePropStatusInfo(revitMeter.Id, nameof(meter.Demand), revitMeter, nameof(revitMeter.Demand)); meter.Position2d = new Yw.Model.Hydro.Position2d(revitMeter.Position.X, revitMeter.Position.Y); propStatusHelper.UpdatePropStatusInfo(revitMeter.Id, nameof(meter.Position2d), revitMeter, nameof(revitMeter.Position)); meter.Position3d = new Yw.Model.Hydro.Position3d(revitMeter.Position.X, revitMeter.Position.Y, revitMeter.Position.Z); propStatusHelper.UpdatePropStatusInfo(revitMeter.Id, nameof(meter.Position3d), revitMeter, nameof(revitMeter.Position)); meter.FlowDirectionX = Yw.Hydro.FlowDirection.None; meter.FlowDirectionY = Yw.Hydro.FlowDirection.Positive; if (allScenePropValueList == null) { allScenePropValueList = new List(); } var scenePropValueList = revitMeter.PropValueList?.Select(x => new Yw.Model.HydroParterScenePropValueInfo() { Parter = revitMeter.Id, Scene = HStation.Revit.ConstParas.Scene, PropName = x.PropName, PropValue = x.PropValue }).ToList(); if (scenePropValueList != null && scenePropValueList.Count > 0) { allScenePropValueList.AddRange(scenePropValueList); } return meter; } //流量计 private static Yw.Model.HydroFlowmeterInfo FromRevit ( HStation.Model.RevitFlowmeter revitFlowmeter, PropStatusHelper propStatusHelper, ref List allScenePropValueList ) { if (revitFlowmeter == null) { return default; } var flowmeter = new Yw.Model.HydroFlowmeterInfo(); flowmeter.Catalog = Yw.Hydro.ParterCatalog.Flowmeter; flowmeter.Name = revitFlowmeter.Name; propStatusHelper.UpdatePropStatusInfo(revitFlowmeter.Id, nameof(flowmeter.Name), revitFlowmeter, nameof(revitFlowmeter.Name)); flowmeter.Code = revitFlowmeter.Id; propStatusHelper.UpdatePropStatusInfo(revitFlowmeter.Id, nameof(flowmeter.Code), revitFlowmeter, nameof(revitFlowmeter.Id)); flowmeter.ModelType = revitFlowmeter.ModelType; propStatusHelper.UpdatePropStatusInfo(revitFlowmeter.Id, nameof(flowmeter.ModelType), revitFlowmeter, nameof(revitFlowmeter.ModelType)); flowmeter.Flags = revitFlowmeter.Flags; if (flowmeter.Flags == null) { flowmeter.Flags = new List(); } propStatusHelper.UpdatePropStatusInfo(revitFlowmeter.Id, nameof(flowmeter.Flags), revitFlowmeter, nameof(revitFlowmeter.Flags)); flowmeter.Description = revitFlowmeter.Description; propStatusHelper.UpdatePropStatusInfo(revitFlowmeter.Id, nameof(flowmeter.Description), revitFlowmeter, nameof(revitFlowmeter.Description)); flowmeter.Elev = revitFlowmeter.Elev; propStatusHelper.UpdatePropStatusInfo(revitFlowmeter.Id, nameof(flowmeter.Elev), revitFlowmeter, nameof(revitFlowmeter.Elev)); flowmeter.MinorLoss = revitFlowmeter.MinorLoss; propStatusHelper.UpdatePropStatusInfo(revitFlowmeter.Id, nameof(flowmeter.MinorLoss), revitFlowmeter, nameof(revitFlowmeter.MinorLoss)); flowmeter.Position2d = new Yw.Model.Hydro.Position2d(revitFlowmeter.Position.X, revitFlowmeter.Position.Y); propStatusHelper.UpdatePropStatusInfo(revitFlowmeter.Id, nameof(flowmeter.Position2d), revitFlowmeter, nameof(revitFlowmeter.Position)); flowmeter.Position3d = new Yw.Model.Hydro.Position3d(revitFlowmeter.Position.X, revitFlowmeter.Position.Y, revitFlowmeter.Position.Z); propStatusHelper.UpdatePropStatusInfo(revitFlowmeter.Id, nameof(flowmeter.Position3d), revitFlowmeter, nameof(revitFlowmeter.Position)); flowmeter.FlowDirectionX = Yw.Hydro.FlowDirection.None; flowmeter.FlowDirectionY = Yw.Hydro.FlowDirection.Positive; if (allScenePropValueList == null) { allScenePropValueList = new List(); } var scenePropValueList = revitFlowmeter.PropValueList?.Select(x => new Yw.Model.HydroParterScenePropValueInfo() { Parter = revitFlowmeter.Id, Scene = HStation.Revit.ConstParas.Scene, PropName = x.PropName, PropValue = x.PropValue }).ToList(); if (scenePropValueList != null && scenePropValueList.Count > 0) { allScenePropValueList.AddRange(scenePropValueList); } return flowmeter; } //压力表 private static Yw.Model.HydroPressmeterInfo FromRevit ( HStation.Model.RevitPressmeter revitPressmeter, PropStatusHelper propStatusHelper, ref List allScenePropValueList ) { if (revitPressmeter == null) { return default; } var pressmeter = new Yw.Model.HydroPressmeterInfo(); pressmeter.Catalog = Yw.Hydro.ParterCatalog.Pressmeter; pressmeter.Name = revitPressmeter.Name; propStatusHelper.UpdatePropStatusInfo(revitPressmeter.Id, nameof(pressmeter.Name), revitPressmeter, nameof(revitPressmeter.Name)); pressmeter.Code = revitPressmeter.Id; propStatusHelper.UpdatePropStatusInfo(revitPressmeter.Id, nameof(pressmeter.Code), revitPressmeter, nameof(revitPressmeter.Id)); pressmeter.ModelType = revitPressmeter.ModelType; propStatusHelper.UpdatePropStatusInfo(revitPressmeter.Id, nameof(pressmeter.ModelType), revitPressmeter, nameof(revitPressmeter.ModelType)); pressmeter.Flags = revitPressmeter.Flags; if (pressmeter.Flags == null) { pressmeter.Flags = new List(); } propStatusHelper.UpdatePropStatusInfo(revitPressmeter.Id, nameof(pressmeter.Flags), revitPressmeter, nameof(revitPressmeter.Flags)); pressmeter.Description = revitPressmeter.Description; propStatusHelper.UpdatePropStatusInfo(revitPressmeter.Id, nameof(pressmeter.Description), revitPressmeter, nameof(revitPressmeter.Description)); pressmeter.Elev = revitPressmeter.Elev; propStatusHelper.UpdatePropStatusInfo(revitPressmeter.Id, nameof(pressmeter.Elev), revitPressmeter, nameof(revitPressmeter.Elev)); pressmeter.MinorLoss = revitPressmeter.MinorLoss; propStatusHelper.UpdatePropStatusInfo(revitPressmeter.Id, nameof(pressmeter.MinorLoss), revitPressmeter, nameof(revitPressmeter.MinorLoss)); pressmeter.Position2d = new Yw.Model.Hydro.Position2d(revitPressmeter.Position.X, revitPressmeter.Position.Y); propStatusHelper.UpdatePropStatusInfo(revitPressmeter.Id, nameof(pressmeter.Position2d), revitPressmeter, nameof(revitPressmeter.Position)); pressmeter.Position3d = new Yw.Model.Hydro.Position3d(revitPressmeter.Position.X, revitPressmeter.Position.Y, revitPressmeter.Position.Z); propStatusHelper.UpdatePropStatusInfo(revitPressmeter.Id, nameof(pressmeter.Position3d), revitPressmeter, nameof(revitPressmeter.Position)); pressmeter.FlowDirectionX = Yw.Hydro.FlowDirection.None; pressmeter.FlowDirectionY = Yw.Hydro.FlowDirection.Positive; if (allScenePropValueList == null) { allScenePropValueList = new List(); } var scenePropValueList = revitPressmeter.PropValueList?.Select(x => new Yw.Model.HydroParterScenePropValueInfo() { Parter = revitPressmeter.Id, Scene = HStation.Revit.ConstParas.Scene, PropName = x.PropName, PropValue = x.PropValue }).ToList(); if (scenePropValueList != null && scenePropValueList.Count > 0) { allScenePropValueList.AddRange(scenePropValueList); } return pressmeter; } //管道 private static Yw.Model.HydroPipeInfo FromRevit ( HStation.Model.RevitPipe revitPipe, PropStatusHelper propStatusHelper, ref List allScenePropValueList ) { if (revitPipe == null) { return default; } var pipe = new Yw.Model.HydroPipeInfo(); pipe.Catalog = Yw.Hydro.ParterCatalog.Pipe; pipe.Name = revitPipe.Name; propStatusHelper.UpdatePropStatusInfo(revitPipe.Id, nameof(pipe.Name), revitPipe, nameof(revitPipe.Name)); pipe.Code = revitPipe.Id; propStatusHelper.UpdatePropStatusInfo(revitPipe.Id, nameof(pipe.Code), revitPipe, nameof(revitPipe.Id)); pipe.ModelType = revitPipe.ModelType; propStatusHelper.UpdatePropStatusInfo(revitPipe.Id, nameof(pipe.ModelType), revitPipe, nameof(revitPipe.ModelType)); pipe.Flags = revitPipe.Flags; if (pipe.Flags == null) { pipe.Flags = new List(); } propStatusHelper.UpdatePropStatusInfo(revitPipe.Id, nameof(pipe.Flags), revitPipe, nameof(revitPipe.Flags)); pipe.Description = revitPipe.Description; propStatusHelper.UpdatePropStatusInfo(revitPipe.Id, nameof(pipe.Description), revitPipe, nameof(revitPipe.Description)); pipe.StartCode = revitPipe.StartCode; propStatusHelper.UpdatePropStatusInfo(revitPipe.Id, nameof(pipe.StartCode), revitPipe, nameof(revitPipe.StartCode)); pipe.EndCode = revitPipe.EndCode; propStatusHelper.UpdatePropStatusInfo(revitPipe.Id, nameof(pipe.EndCode), revitPipe, nameof(revitPipe.EndCode)); pipe.Material = revitPipe.Material; propStatusHelper.UpdatePropStatusInfo(revitPipe.Id, nameof(pipe.Material), revitPipe, nameof(revitPipe.Material)); pipe.Diameter = revitPipe.Diameter; propStatusHelper.UpdatePropStatusInfo(revitPipe.Id, nameof(pipe.Diameter), revitPipe, nameof(revitPipe.Diameter)); pipe.Length = revitPipe.Length; propStatusHelper.UpdatePropStatusInfo(revitPipe.Id, nameof(pipe.Length), revitPipe, nameof(revitPipe.Length)); pipe.Roughness = revitPipe.Roughness; propStatusHelper.UpdatePropStatusInfo(revitPipe.Id, nameof(pipe.Roughness), revitPipe, nameof(revitPipe.Roughness)); pipe.FlowDirectionX = Yw.Hydro.FlowDirection.Positive; pipe.FlowDirectionY = Yw.Hydro.FlowDirection.None; if (allScenePropValueList == null) { allScenePropValueList = new List(); } var scenePropValueList = revitPipe.PropValueList?.Select(x => new Yw.Model.HydroParterScenePropValueInfo() { Parter = revitPipe.Id, Scene = HStation.Revit.ConstParas.Scene, PropName = x.PropName, PropValue = x.PropValue }).ToList(); if (scenePropValueList != null && scenePropValueList.Count > 0) { allScenePropValueList.AddRange(scenePropValueList); } return pipe; } //过渡件 private static Yw.Model.HydroTranslationInfo FromRevit ( HStation.Model.RevitTranslation revitTranslation, PropStatusHelper propStatusHelper, ref List allScenePropValueList ) { if (revitTranslation == null) { return default; } var translation = new Yw.Model.HydroTranslationInfo(); translation.Catalog = Yw.Hydro.ParterCatalog.Translation; translation.Name = revitTranslation.Name; propStatusHelper.UpdatePropStatusInfo(revitTranslation.Id, nameof(translation.Name), revitTranslation, nameof(revitTranslation.Name)); translation.Code = revitTranslation.Id; propStatusHelper.UpdatePropStatusInfo(revitTranslation.Id, nameof(translation.Code), revitTranslation, nameof(revitTranslation.Id)); translation.ModelType = revitTranslation.ModelType; propStatusHelper.UpdatePropStatusInfo(revitTranslation.Id, nameof(translation.ModelType), revitTranslation, nameof(revitTranslation.ModelType)); translation.Flags = revitTranslation.Flags; if (translation.Flags == null) { translation.Flags = new List(); } propStatusHelper.UpdatePropStatusInfo(revitTranslation.Id, nameof(translation.Flags), revitTranslation, nameof(revitTranslation.Flags)); translation.Description = revitTranslation.Description; propStatusHelper.UpdatePropStatusInfo(revitTranslation.Id, nameof(translation.Description), revitTranslation, nameof(revitTranslation.Description)); translation.Elev = revitTranslation.Elev; propStatusHelper.UpdatePropStatusInfo(revitTranslation.Id, nameof(translation.Elev), revitTranslation, nameof(revitTranslation.Elev)); translation.StartCode = revitTranslation.StartCode; propStatusHelper.UpdatePropStatusInfo(revitTranslation.Id, nameof(translation.StartCode), revitTranslation, nameof(revitTranslation.StartCode)); translation.EndCode = revitTranslation.EndCode; propStatusHelper.UpdatePropStatusInfo(revitTranslation.Id, nameof(translation.EndCode), revitTranslation, nameof(revitTranslation.EndCode)); translation.Material = revitTranslation.Material; propStatusHelper.UpdatePropStatusInfo(revitTranslation.Id, nameof(translation.Material), revitTranslation, nameof(revitTranslation.Material)); translation.MinorLoss = revitTranslation.MinorLoss; propStatusHelper.UpdatePropStatusInfo(revitTranslation.Id, nameof(translation.MinorLoss), revitTranslation, nameof(revitTranslation.MinorLoss)); translation.StartDiameter = revitTranslation.StartDiameter; propStatusHelper.UpdatePropStatusInfo(revitTranslation.Id, nameof(translation.StartDiameter), revitTranslation, nameof(revitTranslation.StartDiameter)); translation.EndDiameter = revitTranslation.EndDiameter; propStatusHelper.UpdatePropStatusInfo(revitTranslation.Id, nameof(translation.EndDiameter), revitTranslation, nameof(revitTranslation.EndDiameter)); translation.FlowDirectionX = Yw.Hydro.FlowDirection.Positive; translation.FlowDirectionY = Yw.Hydro.FlowDirection.None; if (allScenePropValueList == null) { allScenePropValueList = new List(); } var scenePropValueList = revitTranslation.PropValueList?.Select(x => new Yw.Model.HydroParterScenePropValueInfo() { Parter = revitTranslation.Id, Scene = HStation.Revit.ConstParas.Scene, PropName = x.PropName, PropValue = x.PropValue }).ToList(); if (scenePropValueList != null && scenePropValueList.Count > 0) { allScenePropValueList.AddRange(scenePropValueList); } return translation; } //水泵 private static Yw.Model.HydroPumpInfo FromRevit ( HStation.Model.RevitPump revitPump, PropStatusHelper propStatusHelper, ref List allScenePropValueList ) { if (revitPump == null) { return default; } var pump = new Yw.Model.HydroPumpInfo(); pump.Catalog = Yw.Hydro.ParterCatalog.Pump; pump.Name = revitPump.Name; propStatusHelper.UpdatePropStatusInfo(revitPump.Id, nameof(pump.Name), revitPump, nameof(revitPump.Name)); pump.Code = revitPump.Id; propStatusHelper.UpdatePropStatusInfo(revitPump.Id, nameof(pump.Code), revitPump, nameof(revitPump.Id)); pump.ModelType = revitPump.ModelType; propStatusHelper.UpdatePropStatusInfo(revitPump.Id, nameof(pump.ModelType), revitPump, nameof(revitPump.ModelType)); pump.Flags = revitPump.Flags; if (pump.Flags == null) { pump.Flags = new List(); } propStatusHelper.UpdatePropStatusInfo(revitPump.Id, nameof(pump.Flags), revitPump, nameof(revitPump.Flags)); pump.Description = revitPump.Description; propStatusHelper.UpdatePropStatusInfo(revitPump.Id, nameof(pump.Description), revitPump, nameof(revitPump.Description)); pump.Elev = revitPump.Elev; propStatusHelper.UpdatePropStatusInfo(revitPump.Id, nameof(pump.Elev), revitPump, nameof(revitPump.Elev)); pump.StartCode = revitPump.StartCode; propStatusHelper.UpdatePropStatusInfo(revitPump.Id, nameof(pump.StartCode), revitPump, nameof(revitPump.StartCode)); pump.EndCode = revitPump.EndCode; propStatusHelper.UpdatePropStatusInfo(revitPump.Id, nameof(pump.EndCode), revitPump, nameof(revitPump.EndCode)); pump.LinkStatus = revitPump.LinkStatus; propStatusHelper.UpdatePropStatusInfo(revitPump.Id, nameof(pump.LinkStatus), revitPump, nameof(revitPump.LinkStatus)); pump.RatedQ = revitPump.RatedQ; propStatusHelper.UpdatePropStatusInfo(revitPump.Id, nameof(pump.RatedQ), revitPump, nameof(revitPump.RatedQ)); pump.RatedH = revitPump.RatedH; propStatusHelper.UpdatePropStatusInfo(revitPump.Id, nameof(pump.RatedH), revitPump, nameof(revitPump.RatedH)); pump.RatedP = revitPump.RatedP; propStatusHelper.UpdatePropStatusInfo(revitPump.Id, nameof(pump.RatedP), revitPump, nameof(revitPump.RatedP)); pump.RatedN = revitPump.RatedN; propStatusHelper.UpdatePropStatusInfo(revitPump.Id, nameof(pump.RatedN), revitPump, nameof(revitPump.RatedN)); pump.RatedHz = revitPump.RatedHz; propStatusHelper.UpdatePropStatusInfo(revitPump.Id, nameof(pump.RatedHz), revitPump, nameof(revitPump.RatedHz)); pump.SpeedRatio = revitPump.SpeedRatio; propStatusHelper.UpdatePropStatusInfo(revitPump.Id, nameof(pump.SpeedRatio), revitPump, nameof(revitPump.SpeedRatio)); pump.SpeedRatioPattern = revitPump.SpeedRatioPattern; propStatusHelper.UpdatePropStatusInfo(revitPump.Id, nameof(pump.SpeedRatioPattern), revitPump, nameof(revitPump.SpeedRatioPattern)); pump.CurveQH = revitPump.CurveQH; propStatusHelper.UpdatePropStatusInfo(revitPump.Id, nameof(pump.CurveQH), revitPump, nameof(revitPump.CurveQH)); pump.CurveQP = revitPump.CurveQP; propStatusHelper.UpdatePropStatusInfo(revitPump.Id, nameof(pump.CurveQP), revitPump, nameof(revitPump.CurveQP)); pump.CurveQE = revitPump.CurveQE; propStatusHelper.UpdatePropStatusInfo(revitPump.Id, nameof(pump.CurveQE), revitPump, nameof(revitPump.CurveQE)); pump.FlowDirectionX = Yw.Hydro.FlowDirection.Positive; pump.FlowDirectionY = Yw.Hydro.FlowDirection.Positive; if (allScenePropValueList == null) { allScenePropValueList = new List(); } var scenePropValueList = revitPump.PropValueList?.Select(x => new Yw.Model.HydroParterScenePropValueInfo() { Parter = revitPump.Id, Scene = HStation.Revit.ConstParas.Scene, PropName = x.PropName, PropValue = x.PropValue }).ToList(); if (scenePropValueList != null && scenePropValueList.Count > 0) { allScenePropValueList.AddRange(scenePropValueList); } return pump; } //阀门 private static Yw.Model.HydroValveInfo FromRevit ( HStation.Model.RevitValve revitValve, PropStatusHelper propStatusHelper, ref List allScenePropValueList ) { if (revitValve == null) { return default; } var valve = new Yw.Model.HydroValveInfo(); valve.Catalog = Yw.Hydro.ParterCatalog.Valve; valve.Name = revitValve.Name; propStatusHelper.UpdatePropStatusInfo(revitValve.Id, nameof(valve.Name), revitValve, nameof(revitValve.Name)); valve.Code = revitValve.Id; propStatusHelper.UpdatePropStatusInfo(revitValve.Id, nameof(valve.Code), revitValve, nameof(revitValve.Id)); valve.ModelType = revitValve.ModelType; propStatusHelper.UpdatePropStatusInfo(revitValve.Id, nameof(valve.ModelType), revitValve, nameof(revitValve.ModelType)); valve.Flags = revitValve.Flags; if (valve.Flags == null) { valve.Flags = new List(); } propStatusHelper.UpdatePropStatusInfo(revitValve.Id, nameof(valve.Flags), revitValve, nameof(revitValve.Flags)); valve.Description = revitValve.Description; propStatusHelper.UpdatePropStatusInfo(revitValve.Id, nameof(valve.Description), revitValve, nameof(revitValve.Description)); valve.Elev = revitValve.Elev; propStatusHelper.UpdatePropStatusInfo(revitValve.Id, nameof(valve.Elev), revitValve, nameof(revitValve.Elev)); valve.StartCode = revitValve.StartCode; propStatusHelper.UpdatePropStatusInfo(revitValve.Id, nameof(valve.StartCode), revitValve, nameof(revitValve.StartCode)); valve.EndCode = revitValve.EndCode; propStatusHelper.UpdatePropStatusInfo(revitValve.Id, nameof(valve.EndCode), revitValve, nameof(revitValve.EndCode)); valve.LinkStatus = revitValve.LinkStatus; propStatusHelper.UpdatePropStatusInfo(revitValve.Id, nameof(valve.LinkStatus), revitValve, nameof(revitValve.LinkStatus)); valve.ValveType = revitValve.ValveType; propStatusHelper.UpdatePropStatusInfo(revitValve.Id, nameof(valve.ValveType), revitValve, nameof(revitValve.ValveType)); valve.Material = revitValve.Material; propStatusHelper.UpdatePropStatusInfo(revitValve.Id, nameof(valve.Material), revitValve, nameof(revitValve.Material)); valve.Diameter = revitValve.Diameter; propStatusHelper.UpdatePropStatusInfo(revitValve.Id, nameof(valve.Diameter), revitValve, nameof(revitValve.Diameter)); valve.MinorLoss = revitValve.MinorLoss; propStatusHelper.UpdatePropStatusInfo(revitValve.Id, nameof(valve.MinorLoss), revitValve, nameof(revitValve.MinorLoss)); valve.OpeningDegree = revitValve.OpeningDegree; propStatusHelper.UpdatePropStatusInfo(revitValve.Id, nameof(valve.OpeningDegree), revitValve, nameof(revitValve.OpeningDegree)); valve.FlowDirectionX = Yw.Hydro.FlowDirection.Positive; valve.FlowDirectionY = Yw.Hydro.FlowDirection.Positive; if (allScenePropValueList == null) { allScenePropValueList = new List(); } var scenePropValueList = revitValve.PropValueList?.Select(x => new Yw.Model.HydroParterScenePropValueInfo() { Parter = revitValve.Id, Scene = HStation.Revit.ConstParas.Scene, PropName = x.PropName, PropValue = x.PropValue }).ToList(); if (scenePropValueList != null && scenePropValueList.Count > 0) { allScenePropValueList.AddRange(scenePropValueList); } return valve; } //换热器 private static Yw.Model.HydroExchangerInfo FromRevit ( HStation.Model.RevitExchanger revitExchanger, PropStatusHelper propStatusHelper, ref List allScenePropValueList ) { if (revitExchanger == null) { return default; } var exchanger = new Yw.Model.HydroExchangerInfo(); exchanger.Catalog = Yw.Hydro.ParterCatalog.Exchanger; exchanger.Name = revitExchanger.Name; propStatusHelper.UpdatePropStatusInfo(revitExchanger.Id, nameof(exchanger.Name), revitExchanger, nameof(revitExchanger.Name)); exchanger.Code = revitExchanger.Id; propStatusHelper.UpdatePropStatusInfo(revitExchanger.Id, nameof(exchanger.Code), revitExchanger, nameof(revitExchanger.Id)); exchanger.ModelType = revitExchanger.ModelType; propStatusHelper.UpdatePropStatusInfo(revitExchanger.Id, nameof(exchanger.ModelType), revitExchanger, nameof(revitExchanger.ModelType)); exchanger.Flags = revitExchanger.Flags; if (exchanger.Flags == null) { exchanger.Flags = new List(); } propStatusHelper.UpdatePropStatusInfo(revitExchanger.Id, nameof(exchanger.Flags), revitExchanger, nameof(revitExchanger.Flags)); exchanger.Description = revitExchanger.Description; propStatusHelper.UpdatePropStatusInfo(revitExchanger.Id, nameof(exchanger.Description), revitExchanger, nameof(revitExchanger.Description)); exchanger.Elev = revitExchanger.Elev; propStatusHelper.UpdatePropStatusInfo(revitExchanger.Id, nameof(exchanger.Elev), revitExchanger, nameof(revitExchanger.Elev)); exchanger.StartCode = revitExchanger.StartCode; propStatusHelper.UpdatePropStatusInfo(revitExchanger.Id, nameof(exchanger.StartCode), revitExchanger, nameof(revitExchanger.StartCode)); exchanger.EndCode = revitExchanger.EndCode; propStatusHelper.UpdatePropStatusInfo(revitExchanger.Id, nameof(exchanger.EndCode), revitExchanger, nameof(revitExchanger.EndCode)); exchanger.LinkStatus = revitExchanger.LinkStatus; propStatusHelper.UpdatePropStatusInfo(revitExchanger.Id, nameof(exchanger.LinkStatus), revitExchanger, nameof(revitExchanger.LinkStatus)); exchanger.Material = revitExchanger.Material; propStatusHelper.UpdatePropStatusInfo(revitExchanger.Id, nameof(exchanger.Material), revitExchanger, nameof(revitExchanger.Material)); exchanger.Diameter = revitExchanger.Diameter; propStatusHelper.UpdatePropStatusInfo(revitExchanger.Id, nameof(exchanger.Diameter), revitExchanger, nameof(revitExchanger.Diameter)); exchanger.MinorLoss = revitExchanger.MinorLoss; propStatusHelper.UpdatePropStatusInfo(revitExchanger.Id, nameof(exchanger.MinorLoss), revitExchanger, nameof(revitExchanger.MinorLoss)); exchanger.CurveQL = revitExchanger.CurveQL; propStatusHelper.UpdatePropStatusInfo(revitExchanger.Id, nameof(exchanger.CurveQL), revitExchanger, nameof(revitExchanger.CurveQL)); exchanger.FlowDirectionX = Yw.Hydro.FlowDirection.Positive; exchanger.FlowDirectionY = Yw.Hydro.FlowDirection.Positive; if (allScenePropValueList == null) { allScenePropValueList = new List(); } var scenePropValueList = revitExchanger.PropValueList?.Select(x => new Yw.Model.HydroParterScenePropValueInfo() { Parter = revitExchanger.Id, Scene = HStation.Revit.ConstParas.Scene, PropName = x.PropName, PropValue = x.PropValue }).ToList(); if (scenePropValueList != null && scenePropValueList.Count > 0) { allScenePropValueList.AddRange(scenePropValueList); } return exchanger; } //空压机 private static Yw.Model.HydroCompressorInfo FromRevit ( HStation.Model.RevitCompressor revitCompressor, PropStatusHelper propStatusHelper, ref List allScenePropValueList ) { if (revitCompressor == null) { return default; } var compressor = new Yw.Model.HydroCompressorInfo(); compressor.Catalog = Yw.Hydro.ParterCatalog.Compressor; compressor.Name = revitCompressor.Name; propStatusHelper.UpdatePropStatusInfo(revitCompressor.Id, nameof(compressor.Name), revitCompressor, nameof(revitCompressor.Name)); compressor.Code = revitCompressor.Id; propStatusHelper.UpdatePropStatusInfo(revitCompressor.Id, nameof(compressor.Code), revitCompressor, nameof(revitCompressor.Id)); compressor.ModelType = revitCompressor.ModelType; propStatusHelper.UpdatePropStatusInfo(revitCompressor.Id, nameof(compressor.ModelType), revitCompressor, nameof(revitCompressor.ModelType)); compressor.Flags = revitCompressor.Flags; if (compressor.Flags == null) { compressor.Flags = new List(); } propStatusHelper.UpdatePropStatusInfo(revitCompressor.Id, nameof(compressor.Flags), revitCompressor, nameof(revitCompressor.Flags)); compressor.Description = revitCompressor.Description; propStatusHelper.UpdatePropStatusInfo(revitCompressor.Id, nameof(compressor.Description), revitCompressor, nameof(revitCompressor.Description)); compressor.Elev = revitCompressor.Elev; propStatusHelper.UpdatePropStatusInfo(revitCompressor.Id, nameof(compressor.Elev), revitCompressor, nameof(revitCompressor.Elev)); compressor.StartCode = revitCompressor.StartCode; propStatusHelper.UpdatePropStatusInfo(revitCompressor.Id, nameof(compressor.StartCode), revitCompressor, nameof(revitCompressor.StartCode)); compressor.EndCode = revitCompressor.EndCode; propStatusHelper.UpdatePropStatusInfo(revitCompressor.Id, nameof(compressor.EndCode), revitCompressor, nameof(revitCompressor.EndCode)); compressor.LinkStatus = revitCompressor.LinkStatus; propStatusHelper.UpdatePropStatusInfo(revitCompressor.Id, nameof(compressor.LinkStatus), revitCompressor, nameof(revitCompressor.LinkStatus)); compressor.Material = revitCompressor.Material; propStatusHelper.UpdatePropStatusInfo(revitCompressor.Id, nameof(compressor.Material), revitCompressor, nameof(revitCompressor.Material)); compressor.Diameter = revitCompressor.Diameter; propStatusHelper.UpdatePropStatusInfo(revitCompressor.Id, nameof(compressor.Diameter), revitCompressor, nameof(revitCompressor.Diameter)); compressor.MinorLoss = revitCompressor.MinorLoss; propStatusHelper.UpdatePropStatusInfo(revitCompressor.Id, nameof(compressor.MinorLoss), revitCompressor, nameof(revitCompressor.MinorLoss)); compressor.CurveQL = revitCompressor.CurveQL; propStatusHelper.UpdatePropStatusInfo(revitCompressor.Id, nameof(compressor.CurveQL), revitCompressor, nameof(revitCompressor.CurveQL)); compressor.FlowDirectionX = Yw.Hydro.FlowDirection.Positive; compressor.FlowDirectionY = Yw.Hydro.FlowDirection.Positive; if (allScenePropValueList == null) { allScenePropValueList = new List(); } var scenePropValueList = revitCompressor.PropValueList?.Select(x => new Yw.Model.HydroParterScenePropValueInfo() { Parter = revitCompressor.Id, Scene = HStation.Revit.ConstParas.Scene, PropName = x.PropName, PropValue = x.PropValue }).ToList(); if (scenePropValueList != null && scenePropValueList.Count > 0) { allScenePropValueList.AddRange(scenePropValueList); } return compressor; } } }