From 43bd8ee779a4cca7483bdf73c176b9fb8ebed5e2 Mon Sep 17 00:00:00 2001 From: qin <a@163.com> Date: 星期二, 24 九月 2024 17:24:28 +0800 Subject: [PATCH] 水力计算 --- HStation.RevitDev/RevitDataExport/Utility/WpfBindingUtils.cs | 138 +++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 137 insertions(+), 1 deletions(-) diff --git a/HStation.RevitDev/RevitDataExport/Utility/WpfBindingUtils.cs b/HStation.RevitDev/RevitDataExport/Utility/WpfBindingUtils.cs index 6afbb34..a4760e2 100644 --- a/HStation.RevitDev/RevitDataExport/Utility/WpfBindingUtils.cs +++ b/HStation.RevitDev/RevitDataExport/Utility/WpfBindingUtils.cs @@ -1,9 +1,11 @@ 锘縰sing HStation.RevitDev.Model.ModelEnum; using HStation.RevitDev.RevitDataExport.Entity; +using HStation.RevitDev.RevitDataExport.Entity.ElementModels; using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.ComponentModel; +using System.Linq; using System.Reflection; using System.Windows.Controls; @@ -11,7 +13,7 @@ { public class WpfBindingUtils { - public static Dictionary<RevitType, bool> InitCache { get; set; } = new Dictionary<RevitType, bool>(); + public static Dictionary<RevitType, bool> InitCache { get; set; } = new Dictionary<RevitType, bool>(); public static void Binding(DataGrid dataGrid, RevitType revitType, ObservableCollection<ElementModel> models) { if (!InitCache.ContainsKey(revitType)) @@ -25,6 +27,140 @@ } } + public static void Binding2(DataGrid dataGrid, RevitType revitType, List<string> models) + { + switch (revitType) + { + case RevitType.RFT_Pump: + { + var subModels = ModelFactory.Convert2Sub<PumbModel2>(models); + dataGrid.ItemsSource = subModels; + //HeaderConvertChs<PumbModel2>(dataGrid); + break; + } + case RevitType.RFT_Blocker: + { + var subModels = ModelFactory.Convert2Sub<BlockerModel>(models); + dataGrid.ItemsSource = subModels; + //HeaderConvertChs<BlockerModel>(dataGrid); + break; + } + case RevitType.RFT_Converter: + { + var subModels = ModelFactory.Convert2Sub<ConvertorModel>(models); + dataGrid.ItemsSource = subModels; + //HeaderConvertChs<ConvertorModel>(dataGrid); + break; + } + case RevitType.RFT_Elbow: + { + var subModels = ModelFactory.Convert2Sub<ElbowModel>(models); + dataGrid.ItemsSource = subModels; + //HeaderConvertChs<ElbowModel>(dataGrid); + break; + } + case RevitType.RFT_FourJoint: + { + var subModels = ModelFactory.Convert2Sub<SiTongModel>(models); + dataGrid.ItemsSource = subModels; + //HeaderConvertChs<SiTongModel>(dataGrid); + break; + } + case RevitType.RFT_HeatExchanger: + { + var subModels = ModelFactory.Convert2Sub<HeatExchangerModel>(models); + dataGrid.ItemsSource = subModels; + //HeaderConvertChs<HeatExchangerModel>(dataGrid); + break; + } + + case RevitType.RFT_Pipe: + { + var subModels = ModelFactory.Convert2Sub<PipeModel>(models); + dataGrid.ItemsSource = subModels; + //HeaderConvertChs<PipeModel>(dataGrid); + break; + } + case RevitType.RFT_Shower: + { + var subModels = ModelFactory.Convert2Sub<ShowerModel>(models); + dataGrid.ItemsSource = subModels; + //HeaderConvertChs<ShowerModel>(dataGrid); + break; + } + case RevitType.RFT_ThreeJoint: + { + var subModels = ModelFactory.Convert2Sub<SanTongModel>(models); + dataGrid.ItemsSource = subModels; + //HeaderConvertChs<SanTongModel>(dataGrid); + break; + } + + case RevitType.RFT_Valve: + { + var subModels = ModelFactory.Convert2Sub<ValveModel>(models); + dataGrid.ItemsSource = subModels; + //HeaderConvertChs<ValveModel>(dataGrid); + break; + } + case RevitType.RFT_WaterBox: + { + var subModels = ModelFactory.Convert2Sub<WaterBoxModel>(models); + dataGrid.ItemsSource = subModels; + //HeaderConvertChs<WaterBoxModel>(dataGrid); + break; + } + case RevitType.RFT_WaterMeter: + { + var subModels = ModelFactory.Convert2Sub<WaterMeterModel>(models); + dataGrid.ItemsSource = subModels; + //HeaderConvertChs<WaterMeterModel>(dataGrid); + break; + } + case RevitType.RFT_WaterPool: + { + var subModels = ModelFactory.Convert2Sub<WaterPoolModel>(models); + dataGrid.ItemsSource = subModels; + //HeaderConvertChs<WaterPoolModel>(dataGrid); + break; + } + case RevitType.RFT_FireHydrant: + { + var subModels = ModelFactory.Convert2Sub<FireHydrantModel>(models); + dataGrid.ItemsSource = subModels; + //HeaderConvertChs<FireHydrantModel>(dataGrid); + break; + } + case RevitType.RFT_Unknown: + case RevitType.RFT_Others: + default: + { + var subModels = ModelFactory.Convert2Others(models); + dataGrid.ItemsSource = subModels; + //HeaderConvertChs<OtherModel>(dataGrid); + break; + } + } + } + + private static void HeaderConvertChs<T>(DataGrid dataGrid) where T : ElementModel + { + Type type = typeof(T); + var properties = type.GetProperties(); + foreach (var prop in properties) + { + var descAttr = prop.GetCustomAttribute<DescriptionAttribute>(); + if (descAttr == null) { continue; } + + var propName = prop.Name; + var chsName = descAttr.Description; + var column = dataGrid.Columns.Where(x => x.Header.ToString() == propName)?.FirstOrDefault(); + if (column == null) { continue; } + + column.Header = chsName; + } + } + private static void InitDataGridColumns(DataGrid dataGrid, RevitType revitType) { Type type = RevitTypeExtense.GetElementModelType(revitType); -- Gitblit v1.9.3