-
Notifications
You must be signed in to change notification settings - Fork 17
Expand file tree
/
Copy pathRevitCreatingARDocsCommand.cs
More file actions
75 lines (59 loc) · 2.53 KB
/
Copy pathRevitCreatingARDocsCommand.cs
File metadata and controls
75 lines (59 loc) · 2.53 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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
using System.Globalization;
using System.Reflection;
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 RevitArchitecturalDocumentation.Models;
using RevitArchitecturalDocumentation.Models.Options;
using RevitArchitecturalDocumentation.Models.Services;
using RevitArchitecturalDocumentation.ViewModels;
using RevitArchitecturalDocumentation.Views;
namespace RevitArchitecturalDocumentation;
[Transaction(TransactionMode.Manual)]
public class RevitCreatingARDocsCommand : BasePluginCommand {
public RevitCreatingARDocsCommand() {
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();
// Настройка запуска окна
kernel.BindMainWindow<CreatingARDocsVM, CreatingARDocsV>();
// Настройка локализации,
// получение имени сборки откуда брать текст
string assemblyName = Assembly.GetExecutingAssembly().GetName().Name;
// Настройка локализации,
// установка дефолтной локализации "ru-RU"
kernel.UseWpfLocalization(
$"/{assemblyName};component/assets/localization/Language.xaml",
CultureInfo.GetCultureInfo("ru-RU"));
kernel.Bind<MainOptions>()
.ToSelf();
kernel.Bind<SheetOptions>()
.ToSelf();
kernel.Bind<ViewOptions>()
.ToSelf();
kernel.Bind<SpecOptions>()
.ToSelf();
// Регистрируем сервис второстепенных окон
kernel.Bind<IWindowService>()
.To<WindowService>()
.InSingletonScope();
// Регистрируем окно отчета
kernel.Bind<TreeReportV>()
.ToSelf();
Notification(kernel.Get<CreatingARDocsV>());
}
}