Skip to content

Commit bab5e59

Browse files
committed
Обновлен конструктор класса
1 parent 172310f commit bab5e59

3 files changed

Lines changed: 25 additions & 16 deletions

File tree

src/RevitMarkAllDocuments/Services/FiltrationService.cs

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
using Autodesk.Revit.DB;
55

6+
using Bim4Everyone.RevitFiltration;
67
using Bim4Everyone.RevitFiltration.Controls;
78

89
using dosymep.Revit;
@@ -13,27 +14,32 @@ namespace RevitMarkAllDocuments.Services;
1314

1415
internal class FiltrationService {
1516
private readonly bool _isMarkForTypes;
17+
private readonly Category _category;
18+
private readonly DocumentService _docService;
19+
private readonly ILogicalFilter _logicalFilter;
1620
private readonly FilterOptions _filterOptions;
1721

18-
public FiltrationService(bool isMarkForTypes) {
22+
public FiltrationService(bool isMarkForTypes,
23+
Category category,
24+
DocumentService docService,
25+
ILogicalFilterContext logicalFilterContext) {
1926
_isMarkForTypes = isMarkForTypes;
27+
_category = category;
2028
_filterOptions = new FilterOptions() { Tolerance = 0 };
29+
_docService = docService;
30+
_logicalFilter = logicalFilterContext.GetFilter();
2131
}
2232

23-
public MarkData FilterElements(MarkData markData,
24-
Category category,
25-
IReadOnlyList<Document> documents,
26-
DocumentService docService,
27-
ILogicalFilterProvider filterProvider) {
33+
public MarkData FilterElements(MarkData markData, IReadOnlyList<Document> documents) {
2834
foreach(var document in documents) {
2935
var marksByDocument = new MarkDataByDocument() {
30-
DocumentName = docService.GetDocumentFullName(document)
36+
DocumentName = _docService.GetDocumentFullName(document)
3137
};
3238

33-
var filter = filterProvider.GetFilter().GetFilter().Build(document, _filterOptions);
39+
var filter = _logicalFilter.Build(document, _filterOptions);
3440

3541
var elements = new FilteredElementCollector(document)
36-
.OfCategory(category.GetBuiltInCategory())
42+
.OfCategory(_category.GetBuiltInCategory())
3743
.WhereElementIsNotElementType()
3844
.WherePasses(filter)
3945
.ToElements();

src/RevitMarkAllDocuments/Services/ParamValidationService.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ namespace RevitMarkAllDocuments.Services;
1010

1111
internal class ParamValidationService {
1212
public IList<WarningElement> CheckAreExistParams(bool isForTypes,
13-
IReadOnlyList<FilterableParam> paramsToCheck,
14-
IReadOnlyList<MarkedElement> elementsToCheck) {
13+
IReadOnlyList<FilterableParam> paramsToCheck,
14+
IReadOnlyList<MarkedElement> elementsToCheck) {
1515
var elementsWithError = new List<WarningElement>();
1616

1717
foreach(var param in paramsToCheck) {
@@ -25,8 +25,8 @@ public IList<WarningElement> CheckAreExistParams(bool isForTypes,
2525
}
2626

2727
public IList<WarningElement> CheckIsExistParam(bool isForTypes,
28-
FilterableParam paramToCheck,
29-
IReadOnlyList<MarkedElement> elementsToCheck) {
28+
FilterableParam paramToCheck,
29+
IReadOnlyList<MarkedElement> elementsToCheck) {
3030
if(isForTypes) {
3131
return elementsToCheck
3232
.Where(x => !x.RevitElement.IsExistsParam(paramToCheck.RevitParam))

src/RevitMarkAllDocuments/ViewModels/MainViewModel.cs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -122,9 +122,12 @@ private void AcceptView() {
122122
var markData = new MarkData() {
123123
MarkRevitParam = selectedMarkParam.RevitParam,
124124
};
125-
var filtrationService = new FiltrationService(_isMarkForTypes);
126-
markData = filtrationService.FilterElements(markData, _selectedCategory,
127-
checkedDocuments, _documentService, FilterPageViewModel.FilterProvider);
125+
var logicalFilterContext = FilterPageViewModel.FilterProvider.GetFilter();
126+
var filtrationService = new FiltrationService(_isMarkForTypes,
127+
_selectedCategory,
128+
_documentService,
129+
logicalFilterContext);
130+
markData = filtrationService.FilterElements(markData, checkedDocuments);
128131

129132
var sortParams = SortPageViewModel.SelectedParams
130133
.Select(x => x.FilterableParam)

0 commit comments

Comments
 (0)