I've been working on this for JMP 16. I'm planning on using a technique similar to the Text Edit Box or the Button Box which have a Set Script option. Below is an example which would work in JMP 16. Let me know if you have any suggestions or concerns.
dt = Open("$SAMPLE_DATA/Process Measurements.jmp");
// Set up a Graph with a Reference line at the mean value for Process 1 on the x-axis
gb = dt << Graph Builder(
Show Control Panel(0),
Variables( X( :Process 1 ), Y( :Process 2 ) ),
Elements( Points( X, Y, Legend( 2 ) ), Smoother( X, Y, Legend( 3 ) ) ),
SendToReport(
Dispatch(
{},
"Process 1",
ScaleBox,
{Add Ref Line( 10.0787278156801, "Dashed", "Blue", "Mean", 2 )}
)
)
);
// Set up a Column Switcher for Process 1
cs = gb << Column Switcher(
:Process 1,
{:Process 1, :Process 3, :Process 4, :Process 5, :Process 6, :Process 7}
);
// Set a Script on Process 1 which recreates the Ref Line at the new mean for the column on the X-axis.
cs << Set Script(
report = gb << Report;
col = Column(cs << Get Current());
meanX = ColMean(col);
axisbox = report[axis box( 1 )];
axisbox << Add Ref Line( meanX, "Dashed", blue, "Mean", 2 );
);