Message 1 of 6
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
Good day, I try to apply a filter rule based on the Rebar Number, as I have it in my code does not work, I do not know what I can be doing wrong. Thank you.
try
{
Element e = SelectElement(uidoc, sel) as Rebar;
Rebar rb = e as Rebar;
var parNumber = rb.GetParameterValueAtIndex(new ElementId(BuiltInParameter.REBAR_NUMBER), 0) as StringParameterValue;
var rebarNumber = parNumber.Value;
int valueNumber = Convert.ToInt32(rebarNumber);
TaskDialog.Show("ff", valueNumber.ToString());
//crear filtro
ParameterValueProvider provider = new ParameterValueProvider(new ElementId(builtRebarNumber));
FilterNumericRuleEvaluator evaluator = new FilterNumericEquals();
FilterRule rule = new FilterIntegerRule(provider, evaluator, valueNumber);
ElementParameterFilter filter = new ElementParameterFilter(rule);
//collector
FilteredElementCollector collector = new FilteredElementCollector(view.Document, view.Id);
//obtener todas las barras
collector.OfCategory(BuiltInCategory.OST_Rebar).WherePasses(filter);
ICollection<ElementId> rebars = collector.ToElementIds();
uidoc.Selection.SetElementIds(rebars);
}
catch { }
Solved! Go to Solution.