Files
ShrlAlgoToolkit/ShrlAlgoToolkit.RevitAddins/Windows/NavigateViewViewModel.cs
2025-10-04 08:52:23 +08:00

33 lines
922 B
C#

using Autodesk.Revit.DB;
using Autodesk.Revit.UI;
using CommunityToolkit.Mvvm.ComponentModel;
using CommunityToolkit.Mvvm.Input;
namespace ShrlAlgoToolkit.RevitAddins.Windows
{
public partial class NavigateViewViewModel : ObservableObject
{
public NavigateViewViewModel(UIApplication uiapp, params Type[] viewTypes)
{
var doc = uiapp.ActiveUIDocument.Document;
Views = doc.OfClasses(viewTypes).Cast<View>().Where(v => !v.IsTemplate).ToList();
this.uiapp = uiapp;
}
private readonly UIApplication uiapp;
[ObservableProperty]
public partial IList<View> Views { get; set; }
[RelayCommand]
private void NavigateView(object obj)
{
if (obj is View view)
{
var uidoc = uiapp.ActiveUIDocument;
uidoc.ActiveView = view;
}
}
}
}