Fundamentals > Program > Editing a Design > EXECUTE Statements > Transferring Input Values from the Upper-level Assembly
Transferring Input Values from the Upper-level Assembly
The input variables are used to transfer input data from the upper-level assembly to the appropriate parts and subassemblies to drive the creation of the model.
For example, for the part block_base, the listing looks like this:
INPUT
key_size
ansi_thread
...
END INPUT
RELATIONS
d5 = key_size
d3 = depth * 1.25
END RELATIONS
....
Then the design listing for the assembly looks like this:
INPUT
hole_diameter NUMBER
thread_type STRING
depth
...
END INPUT
RELATIONS
END RELATIONS
EXECUTE PART block_base
key_size = hole_diameter/2 + 0.025
ansi_thread = thread_type
depth = DEPTH
...
END EXECUTE
And the design for the part block_base looks like this:
INPUT
ADD FEATURE.....
* 
The parameter key_size appears in the EXECUTE statement for the assembly and the INPUT statement for the part. This is necessary for the parameter value to be passed down from the assembly to the part. If the parameter does not appear in both places, or no EXECUTE statement is in the assembly design for the part, then those values that are currently in memory are used for the part.
The parameter thread_type is set equal to ansi_thread in the EXECUTE statement, which is then passed to the part through the INPUT statement.
The parameter depth is set equal to DEPTH in the EXECUTE statement and passed to the part using the same name in the INPUT statement. This technique is often preferable to step 2 because it is easier to keep track of the parameters.
The relation d5 = key_size is not necessary. The parameter symbol d5 can instead be renamed key_size using the Symbol command in the DIM COSMETIC menu.