Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RevitDeclarations: Добавлены декларации нежилых помещений и МОП #121

Merged
merged 137 commits into from
Dec 5, 2024
Merged
Show file tree
Hide file tree
Changes from 126 commits
Commits
Show all changes
137 commits
Select commit Hold shift + click to select a range
7a7bb45
Добавлено окно и VM для скрипта по выгрузке декларации 15.3
sssenya Oct 4, 2024
7d1c92e
Создан базовый класс для групп помещений
sssenya Oct 7, 2024
1b9482f
Добавлен класс для коммерческих помещений
sssenya Oct 7, 2024
3d267fe
Добавлен метод для получения коммерческих помещений
sssenya Oct 7, 2024
d8e00ab
Переименован класс для хранния информации о выгружаемом проекте
sssenya Oct 7, 2024
9d1bcbf
Добавлены классы для разных видов выгружаемых проектов
sssenya Oct 7, 2024
131da72
Изменена структура папок VM
sssenya Oct 7, 2024
ddedc85
Обновление структуры папок
sssenya Oct 7, 2024
2b6d867
Обновлено имя метода
sssenya Oct 7, 2024
bdcbc82
Обновлена структура файлов
sssenya Oct 7, 2024
3c70cb0
Переименован класс VM декларации квартир
sssenya Oct 7, 2024
00dee4e
Добавлен базовый класс для mainVM
sssenya Oct 7, 2024
60f8fb9
Обновлены классы для хранения информации о таблицах
sssenya Oct 8, 2024
988f92a
Обновлены классы экспорта с учетом новых классов таблиц
sssenya Oct 8, 2024
45a8127
Обновлен класс VM экспорта
sssenya Oct 8, 2024
9d9a712
Добавлено поле в интерфейс ITableInfo
sssenya Oct 8, 2024
3cca93c
Обновлено название свойства класса
sssenya Oct 8, 2024
c2650c5
Настроены классы таблиц для коммерческих помещений
sssenya Oct 8, 2024
a884fad
Настроены классы VM для экспорта декларации по коммерческим помещениям
sssenya Oct 8, 2024
c53a244
Переименованы классы
sssenya Oct 8, 2024
f93ba51
Обновлен способ фильтрации помещений
sssenya Oct 8, 2024
c71a728
Исправлена ошибка
sssenya Oct 8, 2024
0b03065
Настроены параметры для заполнения декларации
sssenya Oct 8, 2024
4bd2444
Обновлено название namespace
sssenya Oct 8, 2024
3112a65
Логика классов перенесена в базовый класс
sssenya Oct 8, 2024
0b266fa
Проверка наличия групп помещений перенесена в базовый класс
sssenya Oct 9, 2024
813a6bf
Обновлены проверки
sssenya Oct 9, 2024
c1ee875
Обновлены свойства таблиц для настройки графики excel
sssenya Oct 9, 2024
ff554cf
Метод для конвертации строковых номер в целое число перенесен в отдел…
sssenya Oct 9, 2024
5c7a237
Удален метод конвертации номеров
sssenya Oct 9, 2024
256af2b
Обновлены настройки группировки коммерческих помещений
sssenya Oct 9, 2024
710f44d
Обновлен метод конвертации
sssenya Oct 9, 2024
0a9d160
Обновлены параметры, выводимые в таблицу. Добавлена сортировка
sssenya Oct 9, 2024
b8f08d6
Переименованы файлы команд
sssenya Oct 9, 2024
1c8c00c
Созданы классы для декларации МОП, переименованы окна для других декл…
sssenya Oct 10, 2024
c0d2d9f
Удалены папки
sssenya Oct 10, 2024
87f022a
Обновлены заголовки основных окон
sssenya Oct 10, 2024
184070d
Обновлена структура папок Views
sssenya Oct 10, 2024
ab095d9
Обновлены имена скриптов
sssenya Oct 10, 2024
c31a5f7
Имена классов приведены к общему стандарту
sssenya Oct 10, 2024
6417d7f
Обновено имя класса в параметрах конструктора
sssenya Oct 10, 2024
85c78cb
Обновлен базовый класс MainVM
sssenya Oct 10, 2024
b934b05
Удален старый код
sssenya Oct 10, 2024
fe96df8
Обновлена структура кода
sssenya Oct 10, 2024
7c91e2e
Добавлен метод для получения МОП
sssenya Oct 10, 2024
330ddf5
Добавлены классы для помещений МОП
sssenya Oct 10, 2024
00dd6d0
Добавлены классы для создания таблиц МОП
sssenya Oct 10, 2024
defc91a
Добалвены классы VM экспорта
sssenya Oct 22, 2024
123a53b
Обновлено имя классов VM и view
sssenya Oct 22, 2024
228e9c5
Обновлен конфиг для тестов
sssenya Oct 22, 2024
bd43d72
Обновлены основные VM
sssenya Oct 22, 2024
e054860
Исправлена опечатка
sssenya Oct 25, 2024
7cb50a9
Добавлены новые параметры в GUI (номер здания и номер ОКС)
sssenya Oct 25, 2024
2c158ce
Обновлены размеры окон
sssenya Oct 26, 2024
83c5a5c
Добавлены окна для настройки параметров для коммерческих помещений и МОП
sssenya Oct 26, 2024
cb11f5a
Обновлено окно со списком параметров для МОП
sssenya Oct 28, 2024
f08457a
Добавлены два новых параметру в таблицу квартир. Изменен порядок стол…
sssenya Oct 28, 2024
620160c
Добавлен новый стандартный приоритет
sssenya Oct 28, 2024
d113ec2
Переименованы файлы xaml
sssenya Oct 28, 2024
41202db
Обнолвены классы групп помещений
sssenya Oct 30, 2024
600e744
Обновлена таблица для выгрузки декларации нежилых помещений
sssenya Oct 30, 2024
271a95e
Обнолвены классы для выгрузки декларации
sssenya Oct 30, 2024
47c57df
Добавлены новые параметры для выгрузки для декларации МОП
sssenya Oct 30, 2024
56c846d
Обнолвена настройка параметров для МОП
sssenya Oct 30, 2024
80daff9
Добавлены отдельные классы для конфигураций каждого скрипта
sssenya Nov 1, 2024
95b0738
Созданы отдельные классы настроек для каждого скрипта
sssenya Nov 1, 2024
ccb2955
Заменен класс настроек
sssenya Nov 1, 2024
dff366b
Файл перемещен в папку
sssenya Nov 1, 2024
11b61e9
Свойства классов распределены между родительским и классами наслдениками
sssenya Nov 1, 2024
5a41f83
Обнолвены классы ViewModels в контексте параметров
sssenya Nov 1, 2024
d40283a
Обновлены окна настройки параметров
sssenya Nov 1, 2024
52f1f0e
Обновлены команды
sssenya Nov 1, 2024
57c79e2
В конфиги добавлены два новых параметра
sssenya Nov 1, 2024
601e2f4
Добавлены параметры имени и номера помещения
sssenya Nov 2, 2024
cfda67d
В декларацию квратир добавлены параметры имени и номера помещения
sssenya Nov 2, 2024
f7a3c84
Параметры имя и номер добавлены в декларацию нежилых помещений
sssenya Nov 2, 2024
ff7cb30
Добавлены параметры номер и имя для МОП
sssenya Nov 2, 2024
59d7999
Исправлен код
sssenya Nov 2, 2024
b4af98c
Изменен способ добавления фильтров по назначению помещений
sssenya Nov 2, 2024
4c720ad
Обновлены списки параметров для проверки заполнения в GUI
sssenya Nov 6, 2024
6a691da
Настроены списки параметров в конфигах
sssenya Nov 6, 2024
8fdd989
Обновлены проверки для запуска скрипта
sssenya Nov 6, 2024
be62a6f
Переименован параметр
sssenya Nov 6, 2024
9b72471
Удален лишний код
sssenya Nov 6, 2024
185b726
Обновлено свойство для получения списка всех параметров
sssenya Nov 6, 2024
4df3345
Добавлен комментарий
sssenya Nov 6, 2024
38893a7
Параметр номер и префикс заменены местами
sssenya Nov 6, 2024
b44b170
Добавлены проверки актуальности площадей для коммерции и МОП
sssenya Nov 6, 2024
573a97a
Добавлено сохранение конфигов
sssenya Nov 6, 2024
83f1167
Добавлена загрузка конфига
sssenya Nov 6, 2024
efa0830
Добавлен параметр класса машиноместа
sssenya Nov 6, 2024
24e5661
Обновлены настройки GUI
sssenya Nov 7, 2024
349aebd
Обновлен способ получения значения параметров.
sssenya Nov 7, 2024
fa51a66
Обновлены методы группировки помещений по квартирам, МОП, нежилым гру…
sssenya Nov 8, 2024
189463a
Исправлены ошибки
sssenya Nov 8, 2024
2799ca8
Обновлены настройки графики Excel
sssenya Nov 8, 2024
c4070e1
Добавлен класс для сощлания значений столбцов в Excel
sssenya Nov 10, 2024
ad27130
Обновлены названия скриптов
sssenya Nov 11, 2024
8af8a0e
Добавлен функционал создания дополнительных листов Excel со списком п…
sssenya Nov 11, 2024
d7da671
Обновлена сортировка
sssenya Nov 11, 2024
4c3f21c
Изменен формат вывода названия помещения в заголовок таблицы
sssenya Nov 11, 2024
85c6f6f
Обновлены подсказки к параметрам и названия столбцов в Excel
sssenya Nov 12, 2024
e96e76c
Добавлен метод получения списка уровней
sssenya Nov 12, 2024
75523b5
Удалены лишние комментарии
sssenya Nov 12, 2024
19e7145
Обновлены views
sssenya Nov 14, 2024
2833d78
Обновлены классы
sssenya Nov 14, 2024
7cfe972
Удалены пустые строки
sssenya Nov 14, 2024
428266c
Исправлена опечатка
sssenya Nov 14, 2024
177415a
Обновлены списки параметров
sssenya Nov 14, 2024
76dac68
Обновлен метод
sssenya Nov 14, 2024
d46cbeb
Обновлен метод получения связей
sssenya Nov 14, 2024
eca5a0e
Обновлен класс
sssenya Nov 14, 2024
a672876
Создан абстрактный класс для таблиц декларации
sssenya Nov 14, 2024
7524b3c
Добавлено новое свойство в интерфейс
sssenya Nov 14, 2024
af20fcb
Обновлено наследование для классов
sssenya Nov 14, 2024
f9e45a9
Обновлен класс дополнительных таблиц нежилых помещений
sssenya Nov 14, 2024
f6e34e7
Обновлены методы для назначения типов данных столбцам таблицы
sssenya Nov 14, 2024
abdbebf
Обновлены классы с информацией о таблице деклараций
sssenya Nov 14, 2024
a94d1d3
Обновлены названия полей
sssenya Nov 14, 2024
134765f
Исправлена ошибка расчета УТП
sssenya Nov 14, 2024
f675e9c
Обновлены имена свойств
sssenya Nov 14, 2024
2b983a4
Обновлены названия методов
sssenya Nov 18, 2024
e66584d
Обновлены названия столбцов Excel
sssenya Nov 18, 2024
b3f348d
Обнолвены методы экспорта
sssenya Nov 18, 2024
0c70408
Изменена ширина столбцов
sssenya Nov 18, 2024
3a90f1d
Добавлена активация листа в Excel
sssenya Nov 18, 2024
7da616a
Созданы абстрактные методы в классе DataTable
sssenya Nov 20, 2024
01a5f8c
Обновлен способ получения контуров помещений
sssenya Nov 27, 2024
12e6e9d
Обновлено хранение настроек
sssenya Nov 28, 2024
e53c961
Обновлен метод получения значений параметров
sssenya Nov 29, 2024
fb1ee9e
Подсказки к кнопкам перенесены в словарь ресурсов
sssenya Dec 2, 2024
c5a7294
Обновлены модификаторы доступа
sssenya Dec 2, 2024
54e2442
Обновлена сортировка помещений в финальной декларации
sssenya Dec 2, 2024
7a95a25
Обновлены модификаторы лоступа
sssenya Dec 2, 2024
1e02a13
Проверка на отсутствие значения в строке перенесена в другой класс
sssenya Dec 2, 2024
d747e57
Сделан merge
sssenya Dec 2, 2024
a5a4ec9
Применен шаблонный метод
sssenya Dec 2, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -14,31 +14,35 @@
using Ninject;

using RevitDeclarations.Models;
using RevitDeclarations.Models.Configs;
using RevitDeclarations.ViewModels;
using RevitDeclarations.Views;

namespace RevitDeclarations {
[Transaction(TransactionMode.Manual)]
public class RevitDeclarationsCommand : BasePluginCommand {
public RevitDeclarationsCommand() {
PluginName = "Декларации";
public class ApartmentsDeclarationCommand : BasePluginCommand {
public ApartmentsDeclarationCommand() {
PluginName = "15.2. О характеристиках жилых помещений";
}

protected override void Execute(UIApplication uiApplication) {
using(IKernel kernel = uiApplication.CreatePlatformServices()) {
kernel.Bind<RevitRepository>()
.ToSelf()
.InSingletonScope();

kernel.Bind<PluginConfig>()
.ToMethod(c => PluginConfig.GetPluginConfig());
kernel.Bind<ApartmentsSettings>()
.ToSelf()
.InSingletonScope();

kernel.Bind<ApartmentsConfig>()
.ToMethod(c => ApartmentsConfig.GetPluginConfig());

kernel.Bind<MainViewModel>().ToSelf();
kernel.Bind<MainWindow>().ToSelf()
kernel.Bind<ApartmentsMainVM>().ToSelf();
kernel.Bind<ApartmentsMainWindow>().ToSelf()
.WithPropertyValue(nameof(Window.Title), PluginName)
.WithPropertyValue(nameof(Window.DataContext), c => c.Kernel.Get<MainViewModel>());
.WithPropertyValue(nameof(Window.DataContext), c => c.Kernel.Get<ApartmentsMainVM>());

Notification(kernel.Get<MainWindow>());
Notification(kernel.Get<ApartmentsMainWindow>());
}
}
}
Expand Down
48 changes: 48 additions & 0 deletions src/RevitDeclarations/CommercialDeclarationCommand.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;

using Autodesk.Revit.Attributes;
using Autodesk.Revit.UI;

using dosymep.Bim4Everyone;
using dosymep.Bim4Everyone.SimpleServices;

using Ninject;

using RevitDeclarations.Models;
using RevitDeclarations.ViewModels;
using RevitDeclarations.Views;

namespace RevitDeclarations {
[Transaction(TransactionMode.Manual)]
public class CommercialDeclarationCommand : BasePluginCommand {
public CommercialDeclarationCommand() {
PluginName = "15.3. О характеристиках нежилых помещений";
}

protected override void Execute(UIApplication uiApplication) {
using(IKernel kernel = uiApplication.CreatePlatformServices()) {
kernel.Bind<RevitRepository>()
.ToSelf()
.InSingletonScope();
kernel.Bind<CommercialSettings>()
.ToSelf()
.InSingletonScope();

kernel.Bind<CommercialConfig>()
.ToMethod(c => CommercialConfig.GetPluginConfig());

kernel.Bind<CommercialMainVM>().ToSelf();
kernel.Bind<CommercialMainWindow>().ToSelf()
.WithPropertyValue(nameof(Window.Title), PluginName)
.WithPropertyValue(nameof(Window.DataContext), c => c.Kernel.Get<CommercialMainVM>());

Notification(kernel.Get<CommercialMainWindow>());
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,81 +10,65 @@

using pyRevitLabs.Json;

namespace RevitDeclarations.Models {
internal class PluginConfig : ProjectConfig<RevitSettings> {
namespace RevitDeclarations.Models.Configs {
internal class ApartmentsConfig : ProjectConfig<ApartmnetsConfigSettings> {
[JsonIgnore] public override string ProjectConfigPath { get; set; }

[JsonIgnore] public override IConfigSerializer Serializer { get; set; }

public static PluginConfig GetPluginConfig() {
public static ApartmentsConfig GetPluginConfig() {
return new ProjectConfigBuilder()
.SetSerializer(new ConfigSerializer())
.SetPluginName(nameof(RevitDeclarations))
.SetRevitVersion(ModuleEnvironment.RevitVersion)
.SetProjectConfigName(nameof(PluginConfig) + ".json")
.Build<PluginConfig>();
.SetProjectConfigName(nameof(ApartmentsConfig) + ".json")
.Build<ApartmentsConfig>();
}
}

// Настройки Accuracy и LoadUtp не сохраняются в конфиг
internal class RevitSettings : ProjectSettings {
public override string ProjectName { get; set; }
public string DeclarationName { get; set; }
public string DeclarationPath { get; set; }
public Guid ExportFormat { get; set; }
public string Phase { get; set; }
public List<string> RevitDocuments { get; set; } = new List<string>();

public string FilterRoomsParam { get; set; }
public string FilterRoomsValue { get; set; }
public string GroupingBySectionParam { get; set; }
public string GroupingByGroupParam { get; set; }
public string MultiStoreyParam { get; set; }

internal class ApartmnetsConfigSettings : DeclarationConfigSettings {
public string ApartmentFullNumberParam { get; set; }
public string DepartmentParam { get; set; }
public string LevelParam { get; set; }
public string SectionParam { get; set; }
public string BuildingParam { get; set; }
public string ApartmentNumberParam { get; set; }
public string ApartmentAreaParam { get; set; }

public string BuildingNumberParam { get; set; }
public string ConstrWorksNumberParam { get; set; }
public string ApartmentAreaCoefParam { get; set; }
public string ApartmentAreaLivingParam { get; set; }
public string RoomsAmountParam { get; set; }
public string ProjectNameID { get; set; }
public string ApartmentAreaNonSumParam { get; set; }
public string ApartmentAreaLivingParam { get; set; }
public string RoomsHeightParam { get; set; }

public string RoomAreaParam { get; set; }
public string ApartmentAreaNonSumParam { get; set; }
public string RoomAreaCoefParam { get; set; }

public string PrioritiesFilePath { get; set; }


public RevitSettings GetCompanyConfig() {
return new RevitSettings() {
public ApartmnetsConfigSettings GetCompanyConfig() {
return new ApartmnetsConfigSettings() {
FilterRoomsParam = LabelUtils.GetLabelFor(BuiltInParameter.ROOM_DEPARTMENT),
FilterRoomsValue = "квартира",
FilterRoomsValues = new[] { "квартира" },
GroupingBySectionParam = SharedParamsConfig.Instance.RoomSectionShortName.Name,
GroupingByGroupParam = SharedParamsConfig.Instance.RoomGroupShortName.Name,
GroupingByGroupParam = SharedParamsConfig.Instance.RoomGroupShortName.Name,
MultiStoreyParam = SharedParamsConfig.Instance.RoomMultilevelGroup.Name,

ApartmentFullNumberParam = SharedParamsConfig.Instance.ApartmentNumber.Name,
DepartmentParam = LabelUtils.GetLabelFor(BuiltInParameter.ROOM_DEPARTMENT),
LevelParam = SharedParamsConfig.Instance.Level.Name,
SectionParam = SharedParamsConfig.Instance.RoomSectionShortName.Name,
BuildingParam = SharedParamsConfig.Instance.RoomBuildingShortName.Name,
BuildingNumberParam = SharedParamsConfig.Instance.BuildingNumber.Name,
ConstrWorksNumberParam = SharedParamsConfig.Instance.ConstructionWorksNumber.Name,

ApartmentNumberParam = SharedParamsConfig.Instance.RoomGroupShortName.Name,
ApartmentFullNumberParam = SharedParamsConfig.Instance.ApartmentNumber.Name,
ApartmentAreaParam = SharedParamsConfig.Instance.ApartmentArea.Name,
ApartmentAreaCoefParam = SharedParamsConfig.Instance.ApartmentAreaRatio.Name,
ApartmentAreaLivingParam = SharedParamsConfig.Instance.ApartmentLivingArea.Name,
RoomsAmountParam = SharedParamsConfig.Instance.RoomsCount.Name,
ProjectNameID = "",
ApartmentAreaNonSumParam = SharedParamsConfig.Instance.ApartmentAreaNoBalcony.Name,
RoomsAmountParam = SharedParamsConfig.Instance.RoomsCount.Name,
RoomsHeightParam = LabelUtils.GetLabelFor(BuiltInParameter.ROOM_HEIGHT),

ProjectNameID = "",

RoomAreaParam = SharedParamsConfig.Instance.RoomArea.Name,
RoomAreaCoefParam = SharedParamsConfig.Instance.RoomAreaWithRatio.Name
RoomAreaCoefParam = SharedParamsConfig.Instance.RoomAreaWithRatio.Name,
RoomNameParam = LabelUtils.GetLabelFor(BuiltInParameter.ROOM_NAME),
RoomNumberParam = LabelUtils.GetLabelFor(BuiltInParameter.ROOM_NUMBER)
};
}
}
Expand Down
68 changes: 68 additions & 0 deletions src/RevitDeclarations/Models/Configs/CommercialConfig.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
using System;
using System.Collections.Generic;

using Autodesk.Revit.DB;

using dosymep.Bim4Everyone;
using dosymep.Bim4Everyone.ProjectConfigs;
using dosymep.Bim4Everyone.SharedParams;
using dosymep.Serializers;

using pyRevitLabs.Json;

namespace RevitDeclarations.Models {
internal class CommercialConfig : ProjectConfig<CommercialConfigSettings> {
[JsonIgnore] public override string ProjectConfigPath { get; set; }

[JsonIgnore] public override IConfigSerializer Serializer { get; set; }

public static CommercialConfig GetPluginConfig() {
return new ProjectConfigBuilder()
.SetSerializer(new ConfigSerializer())
.SetPluginName(nameof(RevitDeclarations))
.SetRevitVersion(ModuleEnvironment.RevitVersion)
.SetProjectConfigName(nameof(CommercialConfig) + ".json")
.Build<CommercialConfig>();
}
}

internal class CommercialConfigSettings : DeclarationConfigSettings {
public string BuildingNumberParam { get; set; }
public string ConstrWorksNumberParam { get; set; }
public bool AddPrefixToNumber { get; set; }
public string RoomsHeightParam { get; set; }
public string ParkingSpaceClass { get; set; }
public string GroupNameParam { get; set; }

public CommercialConfigSettings GetCompanyConfig() {
return new CommercialConfigSettings() {
FilterRoomsParam = LabelUtils.GetLabelFor(BuiltInParameter.ROOM_DEPARTMENT),
FilterRoomsValues = new[] { "нежилое помещение", "машино-место", "кладовая" },
GroupingBySectionParam = SharedParamsConfig.Instance.RoomGroupShortName.Name,
GroupingByGroupParam = LabelUtils.GetLabelFor(BuiltInParameter.ROOM_NUMBER),
MultiStoreyParam = SharedParamsConfig.Instance.RoomMultilevelGroup.Name,

DepartmentParam = LabelUtils.GetLabelFor(BuiltInParameter.ROOM_DEPARTMENT),
LevelParam = SharedParamsConfig.Instance.Level.Name,
SectionParam = SharedParamsConfig.Instance.RoomSectionShortName.Name,
BuildingParam = SharedParamsConfig.Instance.RoomBuildingShortName.Name,
BuildingNumberParam = SharedParamsConfig.Instance.BuildingNumber.Name,
ConstrWorksNumberParam = SharedParamsConfig.Instance.ConstructionWorksNumber.Name,

ApartmentNumberParam = SharedParamsConfig.Instance.RoomGroupShortName.Name,
ApartmentAreaParam = SharedParamsConfig.Instance.ApartmentArea.Name,
RoomsHeightParam = LabelUtils.GetLabelFor(BuiltInParameter.ROOM_HEIGHT),
ParkingSpaceClass = SharedParamsConfig.Instance.ParkingSpaceClass.Name,
GroupNameParam = SharedParamsConfig.Instance.ApartmentGroupName.Name,

ProjectNameID = "",

AddPrefixToNumber = true,

RoomAreaParam = SharedParamsConfig.Instance.RoomArea.Name,
RoomNameParam = LabelUtils.GetLabelFor(BuiltInParameter.ROOM_NAME),
RoomNumberParam = LabelUtils.GetLabelFor(BuiltInParameter.ROOM_NUMBER)
};
}
}
}
36 changes: 36 additions & 0 deletions src/RevitDeclarations/Models/Configs/DeclarationConfigSettings.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

using dosymep.Bim4Everyone.ProjectConfigs;

namespace RevitDeclarations.Models {
internal abstract class DeclarationConfigSettings : ProjectSettings {
public override string ProjectName { get; set; }

public string DeclarationName { get; set; }
public string DeclarationPath { get; set; }
public Guid ExportFormat { get; set; }
public string Phase { get; set; }
public List<string> RevitDocuments { get; set; } = new List<string>();

public string FilterRoomsParam { get; set; }
public string[] FilterRoomsValues { get; set; }
public string GroupingBySectionParam { get; set; }
public string GroupingByGroupParam { get; set; }
public string MultiStoreyParam { get; set; }

public string DepartmentParam { get; set; }
public string LevelParam { get; set; }
public string SectionParam { get; set; }
public string BuildingParam { get; set; }
public string RoomNameParam { get; set; }
public string RoomNumberParam { get; set; }
public string RoomAreaParam { get; set; }
public string ApartmentAreaParam { get; set; }
public string ApartmentNumberParam { get; set; }
public string ProjectNameID { get; set; }
}
}
54 changes: 54 additions & 0 deletions src/RevitDeclarations/Models/Configs/PublicAreasConfig.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
using Autodesk.Revit.DB;

using dosymep.Bim4Everyone;
using dosymep.Bim4Everyone.ProjectConfigs;
using dosymep.Bim4Everyone.SharedParams;
using dosymep.Serializers;

using pyRevitLabs.Json;

namespace RevitDeclarations.Models {
internal class PublicAreasConfig : ProjectConfig<PublicAreasConfigSettings> {
[JsonIgnore] public override string ProjectConfigPath { get; set; }

[JsonIgnore] public override IConfigSerializer Serializer { get; set; }

public static PublicAreasConfig GetPluginConfig() {
return new ProjectConfigBuilder()
.SetSerializer(new ConfigSerializer())
.SetPluginName(nameof(RevitDeclarations))
.SetRevitVersion(ModuleEnvironment.RevitVersion)
.SetProjectConfigName(nameof(PublicAreasConfig) + ".json")
.Build<PublicAreasConfig>();
}
}

internal class PublicAreasConfigSettings : DeclarationConfigSettings {
public bool AddPrefixToNumber { get; set; }

public PublicAreasConfigSettings GetCompanyConfig() {
return new PublicAreasConfigSettings() {
FilterRoomsParam = LabelUtils.GetLabelFor(BuiltInParameter.ROOM_DEPARTMENT),
FilterRoomsValues = new[] { "общественное", "техническое" },
GroupingBySectionParam = SharedParamsConfig.Instance.RoomGroupShortName.Name,
GroupingByGroupParam = LabelUtils.GetLabelFor(BuiltInParameter.ROOM_NUMBER),
MultiStoreyParam = SharedParamsConfig.Instance.RoomMultilevelGroup.Name,

DepartmentParam = LabelUtils.GetLabelFor(BuiltInParameter.ROOM_DEPARTMENT),
LevelParam = SharedParamsConfig.Instance.Level.Name,
SectionParam = SharedParamsConfig.Instance.RoomSectionShortName.Name,
BuildingParam = SharedParamsConfig.Instance.RoomBuildingShortName.Name,

ApartmentAreaParam = SharedParamsConfig.Instance.ApartmentArea.Name,
ApartmentNumberParam = SharedParamsConfig.Instance.RoomGroupShortName.Name,

AddPrefixToNumber = true,
ProjectNameID = "",

RoomAreaParam = SharedParamsConfig.Instance.RoomArea.Name,
RoomNameParam = LabelUtils.GetLabelFor(BuiltInParameter.ROOM_NAME),
RoomNumberParam = LabelUtils.GetLabelFor(BuiltInParameter.ROOM_NUMBER),
};
}
}
}
15 changes: 15 additions & 0 deletions src/RevitDeclarations/Models/Converters/ValueConverter.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
using System.Text.RegularExpressions;

namespace RevitDeclarations.Models {
internal class ValueConverter {
public static int ConvertStringToInt(string value) {
if(string.IsNullOrEmpty(value)) {
return 0;
} else {
string resultString = Regex.Match(value, @"\d+").Value;
int.TryParse(resultString, out int result);
return result;
}
}
}
}
Loading
Loading