<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic 回复： How to add rule to existing view filter in Revit API Forum</title>
    <link>https://forums.autodesk.com/t5/revit-api-forum/how-to-add-rule-to-existing-view-filter/m-p/12824930#M4938</link>
    <description>&lt;P&gt;not sure that is what you meant, but from my understanding to your comment, I would say you can combine filters before submitting them to the filtercollector, see this example&lt;/P&gt;&lt;LI-CODE lang="csharp"&gt;var newRule1 = ParameterFilterRuleFactory.CreateEqualsRule(ElementId.InvalidElementId, ElementId.InvalidElementId);
var newRule2 = ParameterFilterRuleFactory.CreateEqualsRule(ElementId.InvalidElementId, ElementId.InvalidElementId);
var newRule3 = ParameterFilterRuleFactory.CreateEqualsRule(ElementId.InvalidElementId, ElementId.InvalidElementId);

var paramFilterPackage = new ElementParameterFilter([newRule1, newRule2, newRule3]);

var newRule21 = ParameterFilterRuleFactory.CreateEqualsRule(ElementId.InvalidElementId, ElementId.InvalidElementId);
var newRule22 = ParameterFilterRuleFactory.CreateEqualsRule(ElementId.InvalidElementId, ElementId.InvalidElementId);
var newRule23 = ParameterFilterRuleFactory.CreateEqualsRule(ElementId.InvalidElementId, ElementId.InvalidElementId);

var paramFilterPackage2 = new ElementParameterFilter([newRule21, newRule22, newRule23]);

var logicFilter = new LogicalOrFilter(paramFilterPackage, paramFilterPackage2);

var collectedFilter = new FilteredElementCollector(Doc)
    .OfClass(typeof(ParameterFilterElement))
    .WhereElementIsNotElementType()
    .WherePasses(logicFilter)
    .ToElements();&lt;/LI-CODE&gt;</description>
    <pubDate>Fri, 07 Jun 2024 08:45:58 GMT</pubDate>
    <dc:creator>Moustafa_K</dc:creator>
    <dc:date>2024-06-07T08:45:58Z</dc:date>
    <item>
      <title>How to add rule to existing view filter</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/how-to-add-rule-to-existing-view-filter/m-p/12814404#M4934</link>
      <description>&lt;P&gt;Hi all,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I've been stuck on this for a few hours now and I just can't work out how to add a rule to a view filter that exists. I'm calling GetElementFilter() on line 10 below, which can return two options: an ElementParameterFilter or an&amp;nbsp;ElementLogicalFilter. I'm not too sure of the logic behind it but I'm getting an&amp;nbsp;ElementLogicalFilter.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I'm then calling the GetFilters() [line 15] on my&amp;nbsp;ElementLogicalFilter and adding a new filter to the list but I then need to pass that to&amp;nbsp;SetElementFilter() [line 23] but that only takes one ElementFilter. What I am missing here and how complicated can this get???&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks for reading. I've already checked the 2024 documentation and done my research but I couldn't find any help for that.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="csharp"&gt;var allFilters = new FilteredElementCollector(doc)
					.OfClass(typeof(ParameterFilterElement))
					.WhereElementIsNotElementType()
					.ToElements();

foreach (ParameterFilterElement filter in allFilters)
{
	if (filter.Name == "MyFilterName")
	{
		var existElemFilter = filter.GetElementFilter();

		if (existElemFilter is ElementLogicalFilter)
		{
			var existLogicalFilter = existElemFilter as ElementLogicalFilter;
			IList&amp;lt;ElementFilter&amp;gt; existElemFilters = existLogicalFilter.GetFilters();

			IList&amp;lt;ElementFilter&amp;gt; newPhaseFilter = new List&amp;lt;ElementFilter&amp;gt;()
			{
				new ElementParameterFilter(ParameterFilterRuleFactory.CreateEqualsRule(phaseCreatedPar.Id, viewPhasePar.AsElementId())) as ElementFilter
			};

			existElemFilters.Add(new LogicalAndFilter(newPhaseFilter));
			filter.SetElementFilter(existElemFilters); // this needs an ElementFilter, not a list of them
		}
	}
}&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 03 Jun 2024 09:21:25 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/how-to-add-rule-to-existing-view-filter/m-p/12814404#M4934</guid>
      <dc:creator>floretti</dc:creator>
      <dc:date>2024-06-03T09:21:25Z</dc:date>
    </item>
    <item>
      <title>回复： How to add rule to existing view filter</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/how-to-add-rule-to-existing-view-filter/m-p/12822307#M4935</link>
      <description>&lt;P&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/5076730"&gt;@floretti&lt;/a&gt;&amp;nbsp;：&lt;/P&gt;&lt;P&gt;in u code , u want to add a new rule to paramaterFilter , but u make no distinction the elementFilter or paramaterFilter ,&amp;nbsp; if u want use the view-filter and add new rule , just find the target paramaterFilter and set a new rule or replace it .&lt;/P&gt;&lt;P&gt;i think u want to add new filter to the target view , if not , u can post new detail for u problem:&lt;/P&gt;&lt;P&gt;```&lt;/P&gt;&lt;DIV&gt;&lt;PRE&gt;&lt;SPAN&gt;var &lt;/SPAN&gt;&lt;SPAN&gt;allFilters &lt;/SPAN&gt;&lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;new &lt;/SPAN&gt;&lt;SPAN&gt;FilteredElementCollector&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;doc&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;    .&lt;/SPAN&gt;&lt;SPAN&gt;OfClass&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;typeof&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;ParameterFilterElement&lt;/SPAN&gt;&lt;SPAN&gt;))&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;    .&lt;/SPAN&gt;&lt;SPAN&gt;WhereElementIsNotElementType&lt;/SPAN&gt;&lt;SPAN&gt;()&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;    .&lt;/SPAN&gt;&lt;SPAN&gt;ToElements&lt;/SPAN&gt;&lt;SPAN&gt;();&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;foreach &lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;ParameterFilterElement &lt;/SPAN&gt;&lt;SPAN&gt;filter &lt;/SPAN&gt;&lt;SPAN&gt;in &lt;/SPAN&gt;&lt;SPAN&gt;allFilters&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;{&lt;BR /&gt;&lt;/SPAN&gt;    &lt;SPAN&gt;if &lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;filter&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;Name &lt;/SPAN&gt;&lt;SPAN&gt;== &lt;/SPAN&gt;&lt;SPAN&gt;"MyFilterName"&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;    {&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;var &lt;/SPAN&gt;&lt;SPAN&gt;newRule &lt;/SPAN&gt;&lt;SPAN&gt;=  &lt;/SPAN&gt;&lt;SPAN&gt;ParameterFilterRuleFactory&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;CreateEqualsRule&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;phaseCreatedPar&lt;SPAN&gt;.&lt;/SPAN&gt;Id&lt;SPAN&gt;, &lt;/SPAN&gt;viewPhasePar&lt;SPAN&gt;.&lt;/SPAN&gt;AsElementId&lt;SPAN&gt;())&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;var &lt;/SPAN&gt;&lt;SPAN&gt;filetElement &lt;/SPAN&gt;&lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;new &lt;/SPAN&gt;&lt;SPAN&gt;ElementParameterFilter&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;newRule&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;filter&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;SetElementFilter&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;filetElement&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;// view.AddFilter(filter.id) or not &lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;    &lt;SPAN&gt;}&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/PRE&gt;&lt;/DIV&gt;&lt;P&gt;```&lt;/P&gt;</description>
      <pubDate>Thu, 06 Jun 2024 08:17:39 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/how-to-add-rule-to-existing-view-filter/m-p/12822307#M4935</guid>
      <dc:creator>scgq425</dc:creator>
      <dc:date>2024-06-06T08:17:39Z</dc:date>
    </item>
    <item>
      <title>回复： How to add rule to existing view filter</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/how-to-add-rule-to-existing-view-filter/m-p/12824757#M4936</link>
      <description>&lt;P&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/7278275"&gt;@scgq425&lt;/a&gt;&amp;nbsp;Thank you for responding.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Unfortunately when you use&amp;nbsp;&lt;STRONG&gt;SetElementFilter()&lt;/STRONG&gt; you are replacing all existing filter rules by the one you created. I'm looking to add one new filter rule to the ones already existing without overwriting them. I'm basically trying to avoid having to create all filter rules again from scratch as this means I'll have to work out several variations as opposed to just adding a new filter rule to a set of existing, which would be much easier.&lt;/P&gt;</description>
      <pubDate>Fri, 07 Jun 2024 07:06:40 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/how-to-add-rule-to-existing-view-filter/m-p/12824757#M4936</guid>
      <dc:creator>floretti</dc:creator>
      <dc:date>2024-06-07T07:06:40Z</dc:date>
    </item>
    <item>
      <title>回复： How to add rule to existing view filter</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/how-to-add-rule-to-existing-view-filter/m-p/12824817#M4937</link>
      <description>&lt;P&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/5076730"&gt;@floretti&lt;/a&gt;&amp;nbsp;：&lt;/P&gt;&lt;P&gt;Hi , In u code , i was understand u want&amp;nbsp; to replace the target filter , if u want to create a new filter&amp;nbsp; , ignore the loop and add a new filter in the view , like :&lt;/P&gt;&lt;DIV&gt;&lt;PRE&gt;&lt;SPAN&gt;var filterElement = ParameterFilterElement&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;Create&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;document&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;name&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;categeorys&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;filterElement&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;SetRules&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;filterRules&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;view&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;AddFilter&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;filterElement&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;Id&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;document&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;Regenerate&lt;/SPAN&gt;&lt;SPAN&gt;()&lt;BR /&gt;&lt;BR /&gt;&lt;/SPAN&gt;if u want to set the background or foreground , add this :&lt;/PRE&gt;&lt;DIV&gt;&lt;PRE&gt;&lt;SPAN&gt;var overrideSettings = view&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;GetFilterOverrides&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;filterElement&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;Id&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;overrideSettings&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;SetProjectionFillColor&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;GetDBColorFromMediaColor&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;dictionary&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;Values&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;ElementAt&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;i&lt;/SPAN&gt;&lt;SPAN&gt;)));&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;overrideSettings&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;SetProjectionFillPatternId&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;PatternId&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;document&lt;/SPAN&gt;&lt;SPAN&gt;));&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;view&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;SetFilterOverrides&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;filterElement&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;Id&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;overrideSettings&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;view&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;SetFilterVisibility&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;filterElement&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;SPAN&gt;Id&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;true&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/PRE&gt;&lt;/DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Fri, 07 Jun 2024 07:42:02 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/how-to-add-rule-to-existing-view-filter/m-p/12824817#M4937</guid>
      <dc:creator>scgq425</dc:creator>
      <dc:date>2024-06-07T07:42:02Z</dc:date>
    </item>
    <item>
      <title>回复： How to add rule to existing view filter</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/how-to-add-rule-to-existing-view-filter/m-p/12824930#M4938</link>
      <description>&lt;P&gt;not sure that is what you meant, but from my understanding to your comment, I would say you can combine filters before submitting them to the filtercollector, see this example&lt;/P&gt;&lt;LI-CODE lang="csharp"&gt;var newRule1 = ParameterFilterRuleFactory.CreateEqualsRule(ElementId.InvalidElementId, ElementId.InvalidElementId);
var newRule2 = ParameterFilterRuleFactory.CreateEqualsRule(ElementId.InvalidElementId, ElementId.InvalidElementId);
var newRule3 = ParameterFilterRuleFactory.CreateEqualsRule(ElementId.InvalidElementId, ElementId.InvalidElementId);

var paramFilterPackage = new ElementParameterFilter([newRule1, newRule2, newRule3]);

var newRule21 = ParameterFilterRuleFactory.CreateEqualsRule(ElementId.InvalidElementId, ElementId.InvalidElementId);
var newRule22 = ParameterFilterRuleFactory.CreateEqualsRule(ElementId.InvalidElementId, ElementId.InvalidElementId);
var newRule23 = ParameterFilterRuleFactory.CreateEqualsRule(ElementId.InvalidElementId, ElementId.InvalidElementId);

var paramFilterPackage2 = new ElementParameterFilter([newRule21, newRule22, newRule23]);

var logicFilter = new LogicalOrFilter(paramFilterPackage, paramFilterPackage2);

var collectedFilter = new FilteredElementCollector(Doc)
    .OfClass(typeof(ParameterFilterElement))
    .WhereElementIsNotElementType()
    .WherePasses(logicFilter)
    .ToElements();&lt;/LI-CODE&gt;</description>
      <pubDate>Fri, 07 Jun 2024 08:45:58 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/how-to-add-rule-to-existing-view-filter/m-p/12824930#M4938</guid>
      <dc:creator>Moustafa_K</dc:creator>
      <dc:date>2024-06-07T08:45:58Z</dc:date>
    </item>
    <item>
      <title>回复： How to add rule to existing view filter</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/how-to-add-rule-to-existing-view-filter/m-p/12831039#M4939</link>
      <description>&lt;P&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/7278275"&gt;@scgq425&lt;/a&gt;&amp;nbsp;As much as I appreciate your replies and the code snippets I have no issues with creating and adding a filter to my view or override its visibility. My issue is with changing an existing view filter and adding an extra rule to it without removing the existing rules.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/549406"&gt;@Moustafa_K&lt;/a&gt;&amp;nbsp;I probably should've put that part into my original post, my bad. I have existing projects with view filters already applied to view templates (already applied to views) and I need to add an extra rule to some of those existing view filters. I'll try your suggestion anyway as it's likely to work, thank you.&lt;/P&gt;</description>
      <pubDate>Mon, 10 Jun 2024 23:21:25 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/how-to-add-rule-to-existing-view-filter/m-p/12831039#M4939</guid>
      <dc:creator>floretti</dc:creator>
      <dc:date>2024-06-10T23:21:25Z</dc:date>
    </item>
    <item>
      <title>回复： How to add rule to existing view filter</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/how-to-add-rule-to-existing-view-filter/m-p/12831207#M4940</link>
      <description>&lt;P&gt;hi&amp;nbsp;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/5076730"&gt;@floretti&lt;/a&gt;&amp;nbsp;:&lt;/P&gt;&lt;P&gt;i understander u requirement , in this code , i changed the target level rule which name "Sample" from " L1 - Block 35" to "Parking" , i think this is u target :&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="general"&gt;var document = RevitCommandData.Document;
var collector = document.ElementCollector(typeof(ParameterFilterElement));

TransactionUtils.Execute(document, x =&amp;gt;
{
var targetFilter = collector.Where(f =&amp;gt; f.Name.Contains("Sample")).Cast&amp;lt;ParameterFilterElement&amp;gt;().ToList().First();
targetFilter.ClearRules();

var paraId = new ElementId(-1001107);
var newRule = ParameterFilterRuleFactory.CreateEqualsRule(paraId, new ElementId(1363065));
targetFilter.SetElementFilter(new ElementParameterFilter(newRule));
},"Sample");&lt;/LI-CODE&gt;</description>
      <pubDate>Tue, 11 Jun 2024 01:43:45 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/how-to-add-rule-to-existing-view-filter/m-p/12831207#M4940</guid>
      <dc:creator>scgq425</dc:creator>
      <dc:date>2024-06-11T01:43:45Z</dc:date>
    </item>
    <item>
      <title>回复： How to add rule to existing view filter</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/how-to-add-rule-to-existing-view-filter/m-p/12831230#M4941</link>
      <description>&lt;P&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/7278275"&gt;@scgq425&lt;/a&gt;&amp;nbsp;Thanks again. You cleared the rules and added the new one in. I need to leave the existing rule there and add a new one without removing the existing rule.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I did manage to add a new set of rules using the code below but now I'll try and work out how to add a new rule to the existing set.&lt;/P&gt;&lt;LI-CODE lang="csharp"&gt;// Create new rule
IList&amp;lt;ElementFilter&amp;gt; newPhaseFilter = new List&amp;lt;ElementFilter&amp;gt;()
{
	new ElementParameterFilter(ParameterFilterRuleFactory.CreateEqualsRule(phaseCreatedPar.Id, viewPhasePar.AsElementId())) as ElementFilter
};

// Collect existing rules
var existLogicalFilter = existElemFilter as ElementLogicalFilter;
IList&amp;lt;ElementFilter&amp;gt; existElemFilters = existLogicalFilter.GetFilters();

// Add new rule to existing set of rules
foreach (ElementParameterFilter elemFilter in existElemFilters)
{
	existRules = elemFilter.GetRules();
	var ruleParam = doc.GetElement(existRules.First().GetRuleParameter())?.Name;
	if (existRules.Count == 1 &amp;amp;&amp;amp; ruleParam == "Condition")
		existRules.Add(ParameterFilterRuleFactory.CreateEqualsRule(phaseCreatedPar.Id, viewPhasePar.AsElementId()));
}

var newElemFilter = new ElementParameterFilter(existRules);
filter.SetElementFilter(newElemFilter);&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 11 Jun 2024 02:05:35 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/how-to-add-rule-to-existing-view-filter/m-p/12831230#M4941</guid>
      <dc:creator>floretti</dc:creator>
      <dc:date>2024-06-11T02:05:35Z</dc:date>
    </item>
    <item>
      <title>Re: How to add rule to existing view filter</title>
      <link>https://forums.autodesk.com/t5/revit-api-forum/how-to-add-rule-to-existing-view-filter/m-p/12831290#M4942</link>
      <description>&lt;P&gt;Ok, line 6 below did the job.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="csharp"&gt;var existLogicalFilter = existElemFilter as ElementLogicalFilter;
IList&amp;lt;ElementFilter&amp;gt; existElemFilters = existLogicalFilter.GetFilters();

var newRule = ParameterFilterRuleFactory.CreateEqualsRule(phaseCreatedPar.Id, viewPhasePar.AsElementId());
var newElemFilter = new ElementParameterFilter(newRule);
var newLogicalFilter = new LogicalAndFilter(existElemFilters.First(), newElemFilter);
filter.SetElementFilter(newLogicalFilter);&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 11 Jun 2024 03:21:41 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/revit-api-forum/how-to-add-rule-to-existing-view-filter/m-p/12831290#M4942</guid>
      <dc:creator>floretti</dc:creator>
      <dc:date>2024-06-11T03:21:41Z</dc:date>
    </item>
  </channel>
</rss>

