Skip to content

Commit 82101cf

Browse files
authored
RevitDeclarations: Добавление условия для расчета параметра, добавления дефиса префикса (#463)
1 parent 7a2bd71 commit 82101cf

16 files changed

Lines changed: 137 additions & 86 deletions

src/RevitDeclarations/Models/Configs/CommercialConfig.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ internal class CommercialConfigSettings : DeclarationConfigSettings {
2929
public string BuildingNumberParam { get; set; }
3030
public string ConstrWorksNumberParam { get; set; }
3131
public bool AddPrefixToNumber { get; set; }
32+
public bool AddHyphenToPrefix { get; set; }
3233
public string RoomsHeightParam { get; set; }
3334
public string ParkingSpaceClass { get; set; }
3435
public string ParkingInfo { get; set; }
@@ -38,7 +39,7 @@ internal class CommercialConfigSettings : DeclarationConfigSettings {
3839
public CommercialConfigSettings GetCompanyConfig() {
3940
return new CommercialConfigSettings() {
4041
FilterRoomsParam = LabelUtils.GetLabelFor(BuiltInParameter.ROOM_DEPARTMENT),
41-
FilterRoomsValues = new[] { "нежилое помещение", "машино-место", "кладовая" },
42+
FilterRoomsValues = ["нежилое помещение", "машино-место", "кладовая"],
4243
GroupingBySectionParam = SharedParamsConfig.Instance.RoomGroupShortName.Name,
4344
GroupingByGroupParam = LabelUtils.GetLabelFor(BuiltInParameter.ROOM_NUMBER),
4445
MultiStoreyParam = SharedParamsConfig.Instance.RoomMultilevelGroup.Name,
@@ -61,6 +62,7 @@ public CommercialConfigSettings GetCompanyConfig() {
6162
ProjectNameID = "",
6263

6364
AddPrefixToNumber = true,
65+
AddHyphenToPrefix = false,
6466

6567
RoomAreaParam = SharedParamsConfig.Instance.RoomArea.Name,
6668
RoomNameParam = LabelUtils.GetLabelFor(BuiltInParameter.ROOM_NAME),

src/RevitDeclarations/Models/Configs/PublicAreasConfig.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ public static PublicAreasConfig GetPluginConfig() {
2727

2828
internal class PublicAreasConfigSettings : DeclarationConfigSettings {
2929
public bool AddPrefixToNumber { get; set; }
30+
public bool AddHyphenToPrefix { get; set; }
3031

3132
public PublicAreasConfigSettings GetCompanyConfig() {
3233
return new PublicAreasConfigSettings() {
@@ -45,6 +46,7 @@ public PublicAreasConfigSettings GetCompanyConfig() {
4546
ApartmentNumberParam = SharedParamsConfig.Instance.RoomGroupShortName.Name,
4647

4748
AddPrefixToNumber = true,
49+
AddHyphenToPrefix = false,
4850
ProjectNameID = "",
4951

5052
RoomAreaParam = SharedParamsConfig.Instance.RoomArea.Name,

src/RevitDeclarations/Models/RoomParamProvider.cs

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,18 +6,23 @@
66
namespace RevitDeclarations.Models;
77
internal class RoomParamProvider {
88
private readonly DeclarationSettings _settings;
9+
private const string _hyphen = "-";
10+
911
public RoomParamProvider(DeclarationSettings settings) {
1012
_settings = settings;
1113
}
12-
public string GetTwoParamsWithHyphen(RoomElement room, bool addPrefix) {
14+
public string GetTwoParamsWithHyphen(RoomElement room, bool addPrefix, bool addHyphen) {
1315
string number = room.GetTextParamValue(_settings.RoomNumberParam);
14-
if(addPrefix) {
15-
string group = room.GetTextParamValue(_settings.ApartmentNumberParam);
16-
if(!string.IsNullOrEmpty(group)) {
17-
return $"{group}-{number}";
18-
}
16+
if(!addPrefix) {
17+
return number;
18+
}
19+
string group = room.GetTextParamValue(_settings.ApartmentNumberParam);
20+
if(string.IsNullOrEmpty(group)) {
21+
return number;
1922
}
20-
return number;
23+
return addHyphen
24+
? $"{group}{_hyphen}{number}"
25+
: $"{group}{number}";
2126
}
2227

2328
public string GetDepartment(RoomElement room, string name) {

src/RevitDeclarations/Models/Rooms/CommercialRooms.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ public CommercialRooms(IEnumerable<RoomElement> rooms,
2929
public string PositionType => _firstRoom.GetTextParamValue(_settings.PositionType);
3030

3131
public string DeclarationNumber =>
32-
_paramProvider.GetTwoParamsWithHyphen(_firstRoom, _settings.AddPrefixToNumber);
32+
_paramProvider.GetTwoParamsWithHyphen(_firstRoom, _settings.AddPrefixToNumber, _settings.AddHyphenToPrefix);
3333

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

src/RevitDeclarations/Models/Rooms/PublicArea.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ public PublicArea(IEnumerable<RoomElement> rooms,
2222
}
2323

2424
public string DeclarationNumber =>
25-
_paramProvider.GetTwoParamsWithHyphen(_firstRoom, _settings.AddPrefixToNumber);
25+
_paramProvider.GetTwoParamsWithHyphen(_firstRoom, _settings.AddPrefixToNumber, _settings.AddHyphenToPrefix);
2626

2727
public override string Department => _paramProvider.GetDepartment(_firstRoom, "МОП");
2828
public override double AreaMain => _isOneRoomGroup ? _firstRoom.Area : base.AreaMain;

src/RevitDeclarations/Models/Settings/CommercialSettings.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,5 @@ internal class CommercialSettings : DeclarationSettings {
1111

1212
public Parameter GroupNameParam { get; set; }
1313
public bool AddPrefixToNumber { get; set; }
14+
public bool AddHyphenToPrefix { get; set; }
1415
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
namespace RevitDeclarations.Models;
22
internal class PublicAreasSettings : DeclarationSettings {
33
public bool AddPrefixToNumber { get; set; }
4+
public bool AddHyphenToPrefix { get; set; }
45
}

src/RevitDeclarations/Models/UtpCalculator.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,8 +133,9 @@ public string CalculateBalcony(Apartment apartment) {
133133
public string CalculateExtraSummerRooms(Apartment apartment) {
134134
int balconies = apartment.GetRoomsByPrior(_priorities.Balcony).Count;
135135
int loggies = apartment.GetRoomsByPrior(_priorities.Loggia).Count;
136+
int terraces = apartment.GetRoomsByPrior(_priorities.Terrace).Count;
136137

137-
return balconies + loggies > 1 ? _utpYes : _utpNo;
138+
return balconies + loggies + terraces > 1 ? _utpYes : _utpNo;
138139
}
139140

140141
// УТП Мастер-спальня.

src/RevitDeclarations/ViewModels/MainViewModels/CommercialMainVM.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,7 @@ private void SaveConfig() {
115115
if(settings.AddPrefixToNumber) {
116116
configSettings.RoomNumberParam = settings.RoomNumberParam?.Definition.Name;
117117
}
118+
configSettings.AddHyphenToPrefix = settings.AddHyphenToPrefix;
118119

119120
config.SaveProjectConfig();
120121
}
@@ -143,5 +144,6 @@ private void SetCommSettings() {
143144
_settings.PositionType = commercialParamsVM.SelectedPositionType;
144145
_settings.GroupNameParam = commercialParamsVM.SelectedGroupNameParam;
145146
_settings.AddPrefixToNumber = commercialParamsVM.AddPrefixToNumber;
147+
_settings.AddHyphenToPrefix = commercialParamsVM.AddHyphenToPrefix && commercialParamsVM.AddPrefixToNumber;
146148
}
147149
}

src/RevitDeclarations/ViewModels/MainViewModels/PublicAreasMainVM.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,7 @@ private void SaveConfig() {
110110
if(settings.AddPrefixToNumber) {
111111
configSettings.RoomNumberParam = settings.RoomNumberParam?.Definition.Name;
112112
}
113+
configSettings.AddHyphenToPrefix = settings.AddHyphenToPrefix;
113114

114115
config.SaveProjectConfig();
115116
}
@@ -131,5 +132,6 @@ private void LoadConfig() {
131132
private void SetPublicAreasSettings() {
132133
var publicAreasParamsVM = (PublicAreasParamsVM) _parametersViewModel;
133134
_settings.AddPrefixToNumber = publicAreasParamsVM.AddPrefixToNumber;
135+
_settings.AddHyphenToPrefix = publicAreasParamsVM.AddHyphenToPrefix && publicAreasParamsVM.AddPrefixToNumber;
134136
}
135137
}

0 commit comments

Comments
 (0)