按基本约束过滤墙:过滤器值对字段和过滤器类型无效

玛努尔

我在尝试通过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;
    }
杰里米·塔米克

FindField来自哪里,它有什么作用?

您是否看过ScheduleCreationRevit SDK 示例

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章