Hi @sn_rukhsi, thanks for posting your question. In the custom subassembly example, I attached to my previous post, I tried to answer precisely that question but directly with a custom subassembly example. I'll try to break it down in the following images:
1. What expression should you type in the decision? In this field, you should type an expression that evaluates your requirement of knowing where you have or not have superelevation applied. However, how do you know if there is or is not superelevation? Once you apply superelevation to an alignment, the only way to differentiate this is by comparing the superelevation values along the alignment against the normal crown. When your superelevation has values corresponding to a normal crown, we can say you do not have superelevation.
This will also depend on which superelevation values you use to create your superelevation design, LeftOutsideLane or RightOutsideLane. Depending on all of that, you can place an expression like the following:
IF((UseSuperelevation=LeftOutsideLane) AND (SE.HasLeftLO),
IF(math.abs(ctype(SE.LeftLO, double))>math.abs(ctype(NormalSlope,double)), Yes, No),
IF((UseSuperelevation=RightOutsideLane) AND (SE.HasRightLO),
IF(math.abs(ctype(SE.RightLO, double))>math.abs(ctype(NormalSlope,double)), Yes, No),No))
Since this is too much text to have in a decision. I placed it in a variable (type: Yes/No):
And then, I called the variable in the decision:
The decision will evaluate the variable value and see if it equals "Yes." If so, the decision will trigger the "True" branch; otherwise, the "False" logic branch.
I hope this helps. If you have more questions, please post them.
Best regards!
Camilo Fernández
Civil engineer | Specialist in design, construction, and maintenance of roadways