Message data sent to iframe is expected to be a JSON object with a messageName string and some message dependent strings.
{ messageName: "nameOfTheMessage", ... }
Supported messages
runcommand
Run a command in Kudo:
where resultMessage: if specified, the message is posted to the iframe parent when command execution is done and messageId: if specified, it is passed to resultMessage
var message = { messageName: "runcommand", commandString: "_YourCommand", resultMessage: "nameOfPostedResultMessage", //optional messageId: "messageId" ;//optional } window.postMessage(message, '*');
You can also pass parameters to your command like this:
commandString: "_YourCommand Param1 Param2"
or
commandString: "_YourCommand\nParam1\nParam2"
Note: Only whitelisted commands are allowed to be run from the client side by runcommand message. To whitelist a command, add it to Default Files/OEM Commands/commands.xml (see Customization package and https://graebert.atlassian.net/wiki/spaces/KUDOPARTNER/pages/1162674228/Customization#commands.xml
<?xml version="1.0" encoding="UTF-8"?> <commands> <OEM name="graebert"> <command name="_XEREPLACEOPEN"/> <command name="_DOATTACHMENT"/> <command name=" _YourCommand"/> </OEM> </commands>
runlisp
Execute the passed Lisp expression:
where resultMessage: if specified, message is posted to iframe parent when lisp execution is done
and messageId: if specified, it is passed to resultMessage
var message = { messageName: "runlisp", lispExpression: "lispExpression", resultMessage: "nameOfPostedResultMessage", //optional messageId: "messageId"; //optional } window.postMessage(message, '*');
eventRegister/eventDeRegister
Event types: commandEvent, sysVarEvent, lispEvent, drawingEvent, selectionEvent, drawingModifiedEvent
You can find available events on the event page. See https://graebert.atlassian.net/wiki/x/QAFdRg page for more details about events.
eventRegister
Register for receiving different types of additional events notifications.
where eventName will be the event type which you want to register:
var message = { messageName: "eventRegister", eventName: "commandEvent";//one of the above event types } window.postMessage(message, '*');
eventDeRegister
Deregister to stop receiving different types of additional events notifications.
where eventName will be the event type which you want to deregister:
var message = { messageName: "eventDeRegister", eventName: "commandEvent";//one of the above event types } window.postMessage(message, '*');
Upgrading/Downgrading
Upgrading: To change from View mode to Edit mode
Downgrading: Change from Edit mode to view mode
You can update the drawing state using send post message from iframe parent
where state can be “view” or “edit”
var message={ messageName= “stateChanged”, state = “view”; } window.postMessage(message, '*');
setvariable **
Change a variable value
drawingdescription**
Trigger creation of drawing description