Фильтрация стен по Базовому ограничению: значение фильтра недопустимо для поля и типа фильтра - PullRequest
0 голосов
/ 12 мая 2019

У меня возникают трудности при попытке отфильтровать стены по WALL_BASE_CONSTRAINT .Это код, который у меня сейчас есть.Сборка прошла успешно, но когда я запускаю плагин.Я придумаю исключение: значение фильтра недопустимо для поля и типа фильтра.Имя параметра: фильтр

Я успешно пробовал этот код на других встроенных параметрах, таких как Material_Name, ALL_MODEL_DESCRIPTION.

private static void AddFilterToSchedule(Document doc, ViewSchedule 
schedule)
 {
        string value = "Foundation";

        using (Transaction transaction = new Transaction(schedule.Document, "Filter Material TakeOff"))
        {
            transaction.Start();

            ScheduleDefinition definition = schedule.Definition;
            ScheduleField scheduleField = FindField(schedule, BuiltInParameter.WALL_BASE_CONSTRAINT);

            ScheduleFilter filter = new ScheduleFilter(scheduleField.FieldId, ScheduleFilterType.NotEqual, value);
            definition.AddFilter(filter);

            transaction.Commit();
        }

    }

public static ScheduleField FindField(ViewSchedule schedule, 
BuiltInParameter paramEnum)
    {
        ScheduleDefinition definition = schedule.Definition;
        ScheduleField foundField = null;
        ElementId paramId = new ElementId(paramEnum);

        foreach (ScheduleFieldId fieldId in definition.GetFieldOrder())
        {
            foundField = definition.GetField(fieldId);
            if (foundField.ParameterId == paramId)
            {
                return foundField;
            }
        }
        return foundField;
    }

Ответы [ 2 ]

0 голосов
/ 17 июля 2019

Обязательно убедитесь, что для параметра «Включить элементы в ссылки» установлено значение «Ложь», или же оно не отмечено в созданном расписании.

Это приводит к невозможности фильтрации по базовому ограничению.

0 голосов
/ 12 мая 2019

Откуда взялся FindField и что он делает?

Вы смотрели на ScheduleCreation Revit SDK образец ?

...