Revit 二次开发 获取明细表中的过滤条件信息

xiaoxiao2021-02-27  108

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; } } } }
转载请注明原文地址: https://www.6miu.com/read-15063.html

最新回复(0)