Hi Jason,
you're right, I mixed up some things. So, correct answers are:
1-Conditional expression: syntax is: param_name=if(condition)0 else 1
where "condition" is a statement such as dim_1<=20 and the values before and after "else" can be any values, of course, or even expressions. In this last case, syntax is:
param=if(condition) (expre_true) else (expr_false).
2-Suppress by Expression is related to features. The command is accessed from Edit/Feature/SbE. From th dialog, you then have to select the feature's element to which the conditional expression will be related (ex: the center of a hole). Then, go to Tools/Expressions and look for the new expression added which looks like "p(x)=1". Then add a "switch" parameter such as switch=if(L>=300)1 else 0. Then modify the expression for p(x) by giving p(x)=switch.
3-Expression inside assembly's parts: you have to enable "interpart operation". After that, a parameter expression related to a component has this syntax:
component_name:

arameter_name=value_or_expression. In order to distinguish between instances, the way I know is to assign a slightly different name to each.
4-I fear that in order to create several assemblies with different suspended/unsuspended components, you can't command this through the expr editor but you have to use Contexts. In this, I was too optimistic when I said that you could suspend a COMPONENT by expression... Please note anyway that I have very little experience with assemblies in UG. Also, I fear the conditional expression based upon the component NAME doesn't work: as far as I know there is no explicit function in the expr editor to recall the internal database field "comp_name".
Sorry, I hope that the few above things can be useful anyway...
Regards