OK. The one picture shows that the Units of "LENGTH" is "in", so it has a numeric value, and represents a Double (not a String).
If that is the case, your whole first block of code will cause errors, because it starts with this line of code:
oLength = LENGTH
...because your 'oLength' variable has not been 'declared' (using Dim keyword), and you have not specified its Type, and you are setting its value from 'LENGTH' (a Parameter with Double type value). That line of code is setting the Type of your 'oLength' variable to be Double, the same Type as 'LENGTH' parameter's value.
Then trying to use 'oLength.Containts()' method will throw an error, because it is not available for a Double Type variable, only for a String type variable, or a variable representing certain Types of collections. A Double is a pure numeric value, with no 'characters' or 'text' in it.
Even if you specifically declared a variable like:
Dim sLengthString As String = CStr(LENGTH)
...the 'sLengthString' variable would still only contain the 'decimal' representation of its value, not the original fraction text, so it still will not have the "/" character in it. Only the Parameter.Expression property of a real Parameter Type object will have a String type value containing the 'fraction text'. When you have one of those blue, unquoted parameter names in an internal iLogic rule, that does not represent a 'real' Parameter object directly, but a its Value directly. And when it is a numeric parameter, it is usually understood as a DoubleForEquals Type of value (very similar to Double, but treated as if it has fewer decimal places, for easier value comparisons).
I can't just completely copy your posted code, then paste it locally into a rule, then fix it for you, then paste it back, because on my end, all those blue, unquoted parameter names will be meaningless, and can even cause other errors, such as the 'Hex' term being misunderstood for the Conversion.Hex() method, but without any 'inputs'.
If you really need to get the fraction text of that parameter, then you can try doing that like this instead:
Dim sLengthFraction As String = Parameter.Param("LENGTH").Expression
Then you can use your 'Contains()' methods on that 'sLengthFraction' variable, if needed. All the other places later in your code, where you are doing 'Math' operations with the oLength variable, or the 'LENGTH' directly, can stay the same. But where you are using Contains method, that needs to originate from the String Type variable representing the actual fraction.
Wesley Crihfield

(Not an Autodesk Employee)