ADN Club > Revit API
Подсчёт кол-ва одинаковых типоразмеров на виде
(1/1)
DilLemon:
Привет всем!
Есть задача небольшая, не выходит решить.
Хочу посчитать кол-во типоразмеров семейства с одинаковым именем, и записать получившееся число в параметр другого семейства
Есть такой кусок кода, но он не видит ничего, и постоянно выводит условие в else
Надо чтоб в метки a,b,c,d записались кол-ва посчитанные
Надеюсь понятно объяснил проблему
--- Код - C# [Выбрать] --- FilteredElementCollector collector = new FilteredElementCollector(Doc, view.Id); List<Element> elementsOnSheet = collector.ToElements().ToList(); List<FamilyInstance> familyInstancesOnSheet = new List<FamilyInstance>(); foreach (Element element in elementsOnSheet) { FamilyInstance familyInstance = element as FamilyInstance; if (familyInstance != null) { familyInstancesOnSheet.Add(familyInstance); } } Dictionary<string, int> familyCounts = new Dictionary<string, int>(); foreach (FamilyInstance familyInstance in familyInstancesOnSheet) { string familyName = familyInstance.Symbol.Family.Name; if (familyCounts.ContainsKey(AI)) { familyCounts[familyName]++; a = a + 1; Autodesk.Revit.DB.Parameter Analog_In = familyInstance.LookupParameter("Кол-во AI"); Analog_In.Set(a); } else if (familyCounts.ContainsKey(DI)) { familyCounts[familyName]++; b = b + 1; Autodesk.Revit.DB.Parameter Discrete_In = familyInstance.LookupParameter("Кол-во DI"); Discrete_In.Set(b); } else if (familyCounts.ContainsKey(DO)) { familyCounts[familyName]++; c = c + 1; Autodesk.Revit.DB.Parameter Discrete_Out = familyInstance.LookupParameter("Кол-во DO"); Discrete_Out.Set(c); } else if (familyCounts.ContainsKey(AO)) { familyCounts[familyName]++; d = d + 1; Autodesk.Revit.DB.Parameter Analog_Out = familyInstance.LookupParameter("Кол-во AO"); Analog_Out.Set(d); } else { TaskDialog.Show("Null value", string.Format("Нет таких семейств")); } }
Александр Пекшев aka Modis:
Во-первых у вас в во всех условиях проверяется, что в словаре должны находиться некие AI, DI, D0, A0. Что это? Какие-то переменные? Откуда они возьмутся в словаре, если словарь вы создали непосредственно перед началом итерации и ничем его не заполняли?!
Во-вторых - при вставке кода делайте ему правильное форматирование!
DilLemon:
--- Цитата: Александр Пекшев aka Modis от 02-06-2023, 09:16:39 ---у вас в во всех условиях проверяется, что в словаре должны находиться некие AI, DI, D0, A0. Что это?
--- Конец цитаты ---
Это названия типоразмеров в семействе, которые надо посчитать
То есть, есть таблица, и надо посчитать кол-во одинаковых сигналов (сколько кружочков в каждой строке по большему счёту)
Александр Пекшев aka Modis:
--- Цитата: DilLemon от 05-06-2023, 11:27:47 ---Это названия типоразмеров в семействе, которые надо посчитать
То есть, есть таблица, и надо посчитать кол-во одинаковых сигналов (сколько кружочков в каждой строке по большему счёту)
--- Конец цитаты ---
Так вы сообщение мое еще раз прочитайте - вы в каждом условии проверяете, что эти ваши названия типоразмеров находятся в словаре. Естественно, у вас ни одно условие не срабатывает, так как в словарь вы ничего не добавляли
Навигация
Перейти к полной версии