Skip to content
4 changes: 3 additions & 1 deletion src/RevitDeclarations/Models/Configs/CommercialConfig.cs
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ internal class CommercialConfigSettings : DeclarationConfigSettings {
public string BuildingNumberParam { get; set; }
public string ConstrWorksNumberParam { get; set; }
public bool AddPrefixToNumber { get; set; }
public bool AddHyphenToPrefix { get; set; }
public string RoomsHeightParam { get; set; }
public string ParkingSpaceClass { get; set; }
public string ParkingInfo { get; set; }
Expand All @@ -38,7 +39,7 @@ internal class CommercialConfigSettings : DeclarationConfigSettings {
public CommercialConfigSettings GetCompanyConfig() {
return new CommercialConfigSettings() {
FilterRoomsParam = LabelUtils.GetLabelFor(BuiltInParameter.ROOM_DEPARTMENT),
FilterRoomsValues = new[] { "нежилое помещение", "машино-место", "кладовая" },
FilterRoomsValues = ["нежилое помещение", "машино-место", "кладовая"],
GroupingBySectionParam = SharedParamsConfig.Instance.RoomGroupShortName.Name,
GroupingByGroupParam = LabelUtils.GetLabelFor(BuiltInParameter.ROOM_NUMBER),
MultiStoreyParam = SharedParamsConfig.Instance.RoomMultilevelGroup.Name,
Expand All @@ -61,6 +62,7 @@ public CommercialConfigSettings GetCompanyConfig() {
ProjectNameID = "",

AddPrefixToNumber = true,
AddHyphenToPrefix = false,

RoomAreaParam = SharedParamsConfig.Instance.RoomArea.Name,
RoomNameParam = LabelUtils.GetLabelFor(BuiltInParameter.ROOM_NAME),
Expand Down
2 changes: 2 additions & 0 deletions src/RevitDeclarations/Models/Configs/PublicAreasConfig.cs
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ public static PublicAreasConfig GetPluginConfig() {

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

public PublicAreasConfigSettings GetCompanyConfig() {
return new PublicAreasConfigSettings() {
Expand All @@ -45,6 +46,7 @@ public PublicAreasConfigSettings GetCompanyConfig() {
ApartmentNumberParam = SharedParamsConfig.Instance.RoomGroupShortName.Name,

AddPrefixToNumber = true,
AddHyphenToPrefix = false,
ProjectNameID = "",

RoomAreaParam = SharedParamsConfig.Instance.RoomArea.Name,
Expand Down
19 changes: 12 additions & 7 deletions src/RevitDeclarations/Models/RoomParamProvider.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,18 +6,23 @@
namespace RevitDeclarations.Models;
internal class RoomParamProvider {
private readonly DeclarationSettings _settings;
private const string _hyphen = "-";

public RoomParamProvider(DeclarationSettings settings) {
_settings = settings;
}
public string GetTwoParamsWithHyphen(RoomElement room, bool addPrefix) {
public string GetTwoParamsWithHyphen(RoomElement room, bool addPrefix, bool addHyphen) {
string number = room.GetTextParamValue(_settings.RoomNumberParam);
if(addPrefix) {
string group = room.GetTextParamValue(_settings.ApartmentNumberParam);
if(!string.IsNullOrEmpty(group)) {
return $"{group}-{number}";
}
if(!addPrefix) {
return number;
}
string group = room.GetTextParamValue(_settings.ApartmentNumberParam);
if(string.IsNullOrEmpty(group)) {
return number;
}
return number;
return addHyphen
? $"{group}{_hyphen}{number}"
: $"{group}{number}";
}

public string GetDepartment(RoomElement room, string name) {
Expand Down
2 changes: 1 addition & 1 deletion src/RevitDeclarations/Models/Rooms/CommercialRooms.cs
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ public CommercialRooms(IEnumerable<RoomElement> rooms,
public string PositionType => _firstRoom.GetTextParamValue(_settings.PositionType);

public string DeclarationNumber =>
_paramProvider.GetTwoParamsWithHyphen(_firstRoom, _settings.AddPrefixToNumber);
_paramProvider.GetTwoParamsWithHyphen(_firstRoom, _settings.AddPrefixToNumber, _settings.AddHyphenToPrefix);

public override double AreaMain => _isOneRoomGroup ? _firstRoom.Area : base.AreaMain;

Expand Down
2 changes: 1 addition & 1 deletion src/RevitDeclarations/Models/Rooms/PublicArea.cs
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ public PublicArea(IEnumerable<RoomElement> rooms,
}

public string DeclarationNumber =>
_paramProvider.GetTwoParamsWithHyphen(_firstRoom, _settings.AddPrefixToNumber);
_paramProvider.GetTwoParamsWithHyphen(_firstRoom, _settings.AddPrefixToNumber, _settings.AddHyphenToPrefix);

public override string Department => _paramProvider.GetDepartment(_firstRoom, "МОП");
public override double AreaMain => _isOneRoomGroup ? _firstRoom.Area : base.AreaMain;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,5 @@ internal class CommercialSettings : DeclarationSettings {

public Parameter GroupNameParam { get; set; }
public bool AddPrefixToNumber { get; set; }
public bool AddHyphenToPrefix { get; set; }
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
namespace RevitDeclarations.Models;
internal class PublicAreasSettings : DeclarationSettings {
public bool AddPrefixToNumber { get; set; }
public bool AddHyphenToPrefix { get; set; }
}
3 changes: 2 additions & 1 deletion src/RevitDeclarations/Models/UtpCalculator.cs
Original file line number Diff line number Diff line change
Expand Up @@ -133,8 +133,9 @@ public string CalculateBalcony(Apartment apartment) {
public string CalculateExtraSummerRooms(Apartment apartment) {
int balconies = apartment.GetRoomsByPrior(_priorities.Balcony).Count;
int loggies = apartment.GetRoomsByPrior(_priorities.Loggia).Count;
int terraces = apartment.GetRoomsByPrior(_priorities.Terrace).Count;

return balconies + loggies > 1 ? _utpYes : _utpNo;
return balconies + loggies + terraces > 1 ? _utpYes : _utpNo;
}

// УТП Мастер-спальня.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,7 @@ private void SaveConfig() {
if(settings.AddPrefixToNumber) {
configSettings.RoomNumberParam = settings.RoomNumberParam?.Definition.Name;
}
configSettings.AddHyphenToPrefix = settings.AddHyphenToPrefix;

config.SaveProjectConfig();
}
Expand Down Expand Up @@ -143,5 +144,6 @@ private void SetCommSettings() {
_settings.PositionType = commercialParamsVM.SelectedPositionType;
_settings.GroupNameParam = commercialParamsVM.SelectedGroupNameParam;
_settings.AddPrefixToNumber = commercialParamsVM.AddPrefixToNumber;
_settings.AddHyphenToPrefix = commercialParamsVM.AddHyphenToPrefix && commercialParamsVM.AddPrefixToNumber;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,7 @@ private void SaveConfig() {
if(settings.AddPrefixToNumber) {
configSettings.RoomNumberParam = settings.RoomNumberParam?.Definition.Name;
}
configSettings.AddHyphenToPrefix = settings.AddHyphenToPrefix;

config.SaveProjectConfig();
}
Expand All @@ -131,5 +132,6 @@ private void LoadConfig() {
private void SetPublicAreasSettings() {
var publicAreasParamsVM = (PublicAreasParamsVM) _parametersViewModel;
_settings.AddPrefixToNumber = publicAreasParamsVM.AddPrefixToNumber;
_settings.AddHyphenToPrefix = publicAreasParamsVM.AddHyphenToPrefix && publicAreasParamsVM.AddPrefixToNumber;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -147,5 +147,6 @@ public override void SetParametersFromConfig(ProjectSettings configSettings) {
.FirstOrDefault(x => x.Definition.Name == commercialConfigSettings.GroupNameParam);

AddPrefixToNumber = commercialConfigSettings.AddPrefixToNumber;
AddHyphenToPrefix = commercialConfigSettings.AddHyphenToPrefix;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ internal abstract class ParametersViewModel : BaseViewModel {
private Parameter _selectedRoomNameParam;
private Parameter _selectedRoomNumberParam;
private bool _addPrefixToNumber;
private bool _addHyphenToPrefix;

public ParametersViewModel(RevitRepository revitRepository, MainViewModel mainViewModel) {
_mainViewModel = mainViewModel;
Expand Down Expand Up @@ -147,6 +148,11 @@ public bool AddPrefixToNumber {
get => _addPrefixToNumber;
set => RaiseAndSetIfChanged(ref _addPrefixToNumber, value);
}

public bool AddHyphenToPrefix {
get => _addHyphenToPrefix;
set => RaiseAndSetIfChanged(ref _addHyphenToPrefix, value);
}

/// <summary>
/// Список параметров для проверки их заполненности в View
Expand Down
Loading
Loading