Repository navigation
Expand file tree
/
Copy pathRevitCreatingFiltersByValuesCommand.cs
More file actions
59 lines (46 loc) · 2.1 KB
/
Copy pathRevitCreatingFiltersByValuesCommand.cs
File metadata and controls
59 lines (46 loc) · 2.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
using System.Globalization;
using System.Reflection;
using System.Windows;
using Autodesk.Revit.Attributes;
using Autodesk.Revit.DB;
using Autodesk.Revit.UI;
using dosymep.Bim4Everyone;
using dosymep.Bim4Everyone.ProjectConfigs;
using dosymep.Bim4Everyone.SimpleServices;
using dosymep.WpfCore.Ninject;
using dosymep.WpfUI.Core.Ninject;
using Ninject;
using RevitCreatingFiltersByValues.Models;
using RevitCreatingFiltersByValues.ViewModels;
using RevitCreatingFiltersByValues.Views;
namespace RevitCreatingFiltersByValues;
[Transaction(TransactionMode.Manual)]
public class RevitCreatingFiltersByValuesCommand : BasePluginCommand {
public RevitCreatingFiltersByValuesCommand() {
PluginName = "Раскрасить по параметру";
}
protected override void Execute(UIApplication uiApplication) {
using var kernel = uiApplication.CreatePlatformServices();
kernel.Bind<RevitRepository>()
.ToSelf()
.InSingletonScope();
// Настройка конфигурации плагина
kernel.Bind<PluginConfig>()
.ToMethod(c => PluginConfig.GetPluginConfig(c.Kernel.Get<IConfigSerializer>()));
// Используем сервис обновления тем для WinUI
kernel.UseWpfUIThemeUpdater();
// Настройка локализации,
// получение имени сборки откуда брать текст
string assemblyName = Assembly.GetExecutingAssembly().GetName().Name;
// Настройка локализации,
// установка дефолтной локализации "ru-RU"
kernel.UseWpfLocalization($"/{assemblyName};component/assets/localization/Language.xaml",
CultureInfo.GetCultureInfo("ru-RU"));
kernel.Bind<MainViewModel>().ToSelf();
kernel.Bind<MainWindow>().ToSelf()
.WithPropertyValue(nameof(Window.Title), PluginName)
.WithPropertyValue(nameof(Window.DataContext),
c => c.Kernel.Get<MainViewModel>());
Notification(kernel.Get<MainWindow>());
}
}