ViewSchedule viewSchedule = doc.GetElement(new ElementId(2698)) as ViewSchedule;
IList<ScheduleFilter> Filters = viewSchedule.Definition.GetFilters();
Dictionary<int, ScheduleField> ScheduleFields = new Dictionary<int, ScheduleField>();
int count = viewSchedule.Definition.GetFieldCount();
for (int i = 0; i < count; i++)
{
ScheduleField scheduleField = viewSchedule.Definition.GetField(i);
if (!ScheduleFields.ContainsKey(scheduleField.FieldId.IntegerValue))
{
ScheduleFields.Add(scheduleField.FieldId.IntegerValue, scheduleField);
}
}
List<Element> elems = new List<Element>();
foreach (var filter in Filters)
{
List<Element> newElements = new List<Element>();
ScheduleFilter scheduleFilter = filter;
ScheduleFieldId scheduleFieldId = scheduleFilter.FieldId;
if (ScheduleFields.ContainsKey(scheduleFieldId.IntegerValue))
{
BuiltInParameter p = (BuiltInParameter)ScheduleFields[scheduleFieldId.IntegerValue].ParameterId.IntegerValue;
foreach (var elem in elems)
{
Parameter pp = elem.get_Parameter(p);
if (pp.StorageType== StorageType.Double)
{
}
switch(scheduleFilter.FilterType)
{
//开始部分是
case ScheduleFilterType.BeginsWith:
if (scheduleFilter.IsStringValue)
{
}
break;
//包含
case ScheduleFilterType.Contains:
break;
case ScheduleFilterType.EndsWith:
break;
case ScheduleFilterType.Equal:
break;
case ScheduleFilterType.GreaterThan:
break;
case ScheduleFilterType.GreaterThanOrEqual:
break;
case ScheduleFilterType.LessThan:
break;
case ScheduleFilterType.LessThanOrEqual:
break;
case ScheduleFilterType.NotBeginsWith:
break;
case ScheduleFilterType.NotContains:
break;
case ScheduleFilterType.NotEndsWith:
break;
case ScheduleFilterType.NotEqual:
break;
}
}
}
}
Revit 二次开发 获取明细表中的过滤条件信息
最新推荐文章于 2023-08-15 23:00:00 发布