优化更新代码,添加界面功能并整合
This commit is contained in:
70
ShrlAlgo.Toolkit.Revit/Helpers/ViewFilterAssist.cs
Normal file
70
ShrlAlgo.Toolkit.Revit/Helpers/ViewFilterAssist.cs
Normal file
@@ -0,0 +1,70 @@
|
||||
using Autodesk.Revit.DB;
|
||||
|
||||
namespace ShrlAlgo.Toolkit.Revit.Helpers;
|
||||
|
||||
/// <summary>
|
||||
/// 创建参数的参数过滤器
|
||||
/// </summary>
|
||||
public class ViewFilterAssist
|
||||
{
|
||||
/// <summary>
|
||||
/// 类别视图过滤器
|
||||
/// </summary>
|
||||
/// <param name="builtInCategory"></param>
|
||||
/// <returns></returns>
|
||||
public static ElementParameterFilter CreateCategoryFilter(BuiltInCategory builtInCategory)
|
||||
{
|
||||
ElementParameterFilter commonElementParameterFilter = null;
|
||||
List<FilterRule> commonFilterRules = new();
|
||||
List<ElementId> commonCategoryForRules = new() { new(builtInCategory) };
|
||||
if (FilterCategoryRule.AllCategoriesFilterable(commonCategoryForRules))
|
||||
{
|
||||
FilterCategoryRule commonCategoryRule = new(commonCategoryForRules);
|
||||
commonFilterRules.Add(commonCategoryRule);
|
||||
commonElementParameterFilter = new ElementParameterFilter(commonFilterRules);
|
||||
}
|
||||
|
||||
return commonElementParameterFilter;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 参数的参数过滤器
|
||||
/// </summary>
|
||||
/// <param name="builtInCategory"></param>
|
||||
/// <param name="rules"></param>
|
||||
/// <returns></returns>
|
||||
public static ElementParameterFilter CreateParameterFilter(BuiltInCategory builtInCategory, params FilterRule[] rules)
|
||||
{
|
||||
ElementParameterFilter commonFilter = null;
|
||||
List<FilterRule> commonFilterRules = new();
|
||||
List<ElementId> commonCategoryForRules = new() { new(builtInCategory) };
|
||||
//判断类别是否可用于过滤器
|
||||
if (FilterCategoryRule.AllCategoriesFilterable(commonCategoryForRules))
|
||||
{
|
||||
//类别规则
|
||||
FilterCategoryRule commonCategoryRule = new(commonCategoryForRules);
|
||||
commonFilterRules.Add(commonCategoryRule);
|
||||
foreach (var rule in rules)
|
||||
{
|
||||
commonFilterRules.Add(rule);
|
||||
}
|
||||
|
||||
commonFilter = new ElementParameterFilter(commonFilterRules);
|
||||
}
|
||||
|
||||
return commonFilter;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 视图过滤器过滤规则
|
||||
/// </summary>
|
||||
/// <param name="parameter"></param>
|
||||
/// <param name="value">元素Id或整型值</param>
|
||||
/// <returns></returns>
|
||||
public static FilterRule CreateParameterFilterRule(BuiltInParameter parameter, int value)
|
||||
{
|
||||
var paramId = new ElementId(parameter);
|
||||
var filterRule = ParameterFilterRuleFactory.CreateEqualsRule(paramId, value);
|
||||
return filterRule;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user