Simply use/add a 0 level for factors B and C (you don't need a factor A for valve). B can become a 3-levels categorical factor (no water/hot/cold) and C could be discrete numeric with values 0, 5 and 7. If factors B is different from "no water" and C is different from 0, it means the valve is on. Perhaps you will have to use disallowed combinations or a candidate set approach to avoid combinations with B different from "no water" and C = 0 OR B = "no water" and C different from 0.
Example of such design with interaction and quadratic effect for C :

限制:
B == "No water" & C >= 0.1 | (B == "Hot" | B == "Cold") & C <= 0.1
脚本如下:
DOE(
Custom Design,
{Add Response( Maximize, "Y", ., ., . ),
Add Factor( Categorical, {"No water", "Hot", "Cold"}, "B", 0 ),
Add Factor( Discrete Numeric, {0, 5, 7}, "C", 0 ), Set Random Seed( 1774495 ),
Number of Starts( 42311 ), Add Term( {1, 0} ), Add Term( {1, 1} ),
Add Term( {2, 1} ), Add Potential Term( {2, 2} ), Add Term( {1, 1}, {2, 1} ),
Set Sample Size( 18 ), Disallowed Combinations(
B == "No water" & C >= 0.1 | (B == "Hot" | B == "Cold") & C <= 0.1
), Simulate Responses( 0 ), Save X Matrix( 0 ), Make Design}
)