I am trying to use a two parameters to filter my Drawing index. Which the condition is if Either one of them are marked with text, then they show up. Unfortunately the Filter under schedule only works based on AND condition not OR.
I tried to use a calculated parameter using IF formula to combine the two parameter in a new column, (If Parameter1 OR Parameter2 is marked with "x" then, Parameter3 = "x") but conditioanal text is not allowed either.
Any suggestions or help on this is much appreciated.
PS.I have done a bit research about the problem with conditional statement using text, so I won't be surprised if this has not been fixed since the invention of Revit.
Dear,
Try to make the text parameter is yes/no parameter,
Example:
Text1:yes/no
A=if(Text1,125,20)
Kindly if this solved your issue, mark as solution to help others.
To expand on @Mahmoud.Ziedan's response:
If you make Parameter1 and Parameter2 Yes/No type Project Parameters that apply to Sheets, you can then add a calculated value column to your Sheet List schedule, text type, with the following formula:
if(Parameter1, "X", if(Parameter2, "X", ""))
This will put an "X" in that column if Parameter1 is set to Yes, Parameter2 is set to Yes or both are set to Yes. (I assumed that you did not want an exclusive OR.) The image below shows the formula in action. You would probably want to hide the Parameter1 and Parameter2 columns.
@David_W_Koch @Mahmoud.Ziedan Thank you both.
After experimenting a bit more I realized there is no luck with text type parameters. It's unfortunate that this is possible in "conditional format" formulas but not in the rest of the schedule.
Sadly it is too late for this project to remove the text parameters and introduce new Yes/No ones.
Unless there is a way to modify the existing parameter types. Do you know if that is possible?
Once you create a parameter with a given type, you cannot change the type later (just the group under which it appears and the object type(s) to which it applies). Even if you could, I would expect that you would lose all of the associated data, which would be the same as starting over with a new parameter. Revit does not allow text in the conditional statements, so you cannot use something like
if(Parameter1 = "X", "X", if(Parameter2 = "X", "X", ""))
One last thought - Is the reason you are trying to combine two text parameters into one because someone started entering the "X" data in one parameter, and someone else did so in a different parameter? A Dynamo graph could be created that would read the data from both, then create a merged list using "OR" logic and then push the results back into one, the other or both parameters (or even a third parameter). You could then do your schedule based on that.
Given that two text-type Sheet Parameters called Parameter1 and Parameter2 exist in a project, and either "X" or "" (empty string) has been entered as data to appear in a single column in a Sheet List Schedule, but some has been entered in Parameter1 and some in Parameter2, this Dynamo graph examines the contents of Parameter1 and Parameter2 for each Sheet, and sets the value of a third Parameter, Parameter3, such that it contains "X" if at least one of Parameter1 or Parameter2 have a value of "X" and sets Parameter3 to "" if both Parameter1 and Parameter2 are set to "".
The graph, as written, only tests Parameter1 for a value of "X". If found, that is passed through to Parameter3. If not found, then the value of Parameter2 is passed through. If a value other than "X" or "" is entered in Parameter2, that value gets passed through to Parameter3. If there could be data other than "X" or "" in Parameter1 or Parameter2, both could be tested for "X", with "" being passed through if the value is not "X", and then those two lists could be used as the feed for the final test.
The attached file was done in Dynamo 0.9.2.
An improved version, which also tests the Parameter2 value and ignores any values other than "X", so that the final value that gets passed to Parameter3 is only either "X" (Parameter1, Parameter2 or both were "X") or "" (empty string; neither Parameter1 nor Parameter2 were "X").