Yes I am talking about Opus internal commands. Running an internal command from within a script would achieve my outcome. Something like this ScriptObject.ExecuteInternalCommandMethod(Prefs LAYOUTSAVE=single)
I had another look at the ScriptCommand object.
It seems to me that this is intended to create a new (presumably customised) Opus Internal command an example of which is given here. Am I understanding that correctly? If so that is diffeent to what I want to do. I want to execute an existing internal command from within a script as described above.
Look at virtually any Opus script and you'll find it runs commands, usually via the RunCommand method you already found, which is all you need if it's a single-line command. Just give it a try!
(If you want to run multi-line commands, you can use the AddLine and Run methods instead of RunCommand.)