73 lines
2.2 KiB
C#
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()
|
|
{
|
|
|
|
}
|
|
}
|