35 lines
880 B
C#
35 lines
880 B
C#
|
|
using Autodesk.Revit.DB;
|
|||
|
|
using Autodesk.Revit.UI;
|
|||
|
|
|
|||
|
|
using CommunityToolkit.Mvvm.ComponentModel;
|
|||
|
|
using CommunityToolkit.Mvvm.Input;
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
namespace Sai.RvKits.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] private IList<View> views;
|
|||
|
|
|
|||
|
|
|
|||
|
|
[RelayCommand]
|
|||
|
|
private void NavigateView(object obj)
|
|||
|
|
{
|
|||
|
|
if (obj is View view)
|
|||
|
|
{
|
|||
|
|
var uidoc = uiapp.ActiveUIDocument;
|
|||
|
|
uidoc.ActiveView = view;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|