Files
ShrlAlgoToolkit/ShrlAlgoToolkit.RevitAddins/DrawSheet/SystemDisplayViewModel.cs
2026-02-24 11:34:18 +08:00

73 lines
2.2 KiB
C#

using Autodesk.Revit.DB;
using CommunityToolkit.Mvvm.ComponentModel;
using CommunityToolkit.Mvvm.Input;
using ShrlAlgoToolkit.RevitAddins.RvMEP;
namespace ShrlAlgoToolkit.RevitAddins.RvView;
public partial class SystemDisplayViewModel : ObservableRecipient/*, IRecipient<Color>*/
{
//private SystemModel currentModel;
[ObservableProperty]
public partial List<SystemModel> SystemsCollection { get; set; }
public SystemDisplayViewModel(UIApplication uiapp)
{
var doc = uiapp.ActiveUIDocument.Document;
var enumerable = doc.OfClass<MEPSystemType>().Cast<MEPSystemType>();
var systemModels = from mepSystemType in enumerable let model = new SystemModel(mepSystemType) select model;
SystemsCollection = [.. systemModels];
//IsActive = true;
//订阅
//WeakReferenceMessenger.Default.RegisterAll(this);
//WeakReferenceMessenger.Default.Register<SelectedColor>(this);
//WeakReferenceMessenger.Default.Register<SelectedColor>(this, (r, m) =>
//{
// TaskDialog.Show("消息", "收到消息");
//});
//Messenger.Register<SystemDisplayViewModel, ColorPickerViewModel>(this, (r, m) =>
//{
//});
}
//public void Receive(Color message)
//{
// //TaskDialog.Show("消息", "收到颜色消息");
// if (message != null)
// {
// currentModel.FillColor = message;
// currentModel.BackgroundColor = new System.Windows.Media.SolidColorBrush(
// System.Windows.Media.Color.FromRgb(message.Red, message.Green, message.Blue)
// );
// }
//}
//[RelayCommand]
//private void OpenColorPicker(object obj)
//{
// if (obj is SystemModel model)
// {
// currentModel = model;
// var viewModel = model.FillColor.IsValid
// ? new ColorPickerViewModel(
// System.Windows.Media.Color.FromRgb(model.FillColor.Red, model.FillColor.Green, model.FillColor.Blue)
// )
// : new ColorPickerViewModel(System.Windows.Media.Color.FromRgb(0, 0, 0));
// var win = new ColorPickerWin(viewModel);
// win.ShowDialog();
// //WeakReferenceMessenger.Default.Register<SelectedColor>(this, (r, m) =>
// //{
// // color = m;
// //});
// }
//}
[RelayCommand]
private void Save()
{
}
}