Привет всем!
Есть задача небольшая, не выходит решить.
Хочу посчитать кол-во типоразмеров семейства с одинаковым именем, и записать получившееся число в параметр другого семейства
Есть такой кусок кода, но он не видит ничего, и постоянно выводит условие в else
Надо чтоб в метки a,b,c,d записались кол-ва посчитанные
Надеюсь понятно объяснил проблему
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("Нет таких семейств"));
}
}