Class: oGroupNode

$. oGroupNode

$.oGroupNode is a subclass of $.oNode and implements the same methods and properties as $.oNode.
It represents groups in the scene. From this class, it's possible to add nodes, and backdrops, import files and templates into the group.

new $.oGroupNode(path, oSceneObject)

openHarmony/openHarmony_node.js, line 2632
Constructor for the $.oGroupNode class
Name Type Description
path string Path to the node in the network.
oSceneObject oScene Access to the oScene object of the DOM.
Example
// to add a new node, grab the group it'll be created in first
var doc = $.scn
var sceneRoot = doc.root;                                              // grab the scene root group

var myGroup = sceneRoot.addGrop("myGroup", false, false);              // create a group in the scene root, with a peg and composite but no nodes
var MPO = myGroup.multiportOut;                                        // grab the multiport in of the group

var myNode = myGroup.addDrawingNode("myDrawingNode");                  // add a drawing node inside the group
myNode.linkOutNode(MPO);                                               // link the newly created node to the multiport
myNode.centerAbove(MPO);

var sceneComposite = doc.$node("Top/Composite");                       // grab the scene composite node
myGroup.linkOutNode(sceneComposite);                                   // link the group to it

myGroup.centerAbove(sceneComposite);

Extends

Members

readonlyattributesoAttribute

An object containing all attributes of this node.
Example
// You can get access to the actual oAttribute object for a node parameter by using the dot notation:

var myNode = $.scn.$node("Top/Drawing")
var drawingAttribute = myNode.attributes.drawing.element

// from there, it's possible to set/get the value of the attribute, get the column, the attribute keyword etc.

drawingAttribute.setValue ("1", 5);           // creating an exposure of drawing 1 at frame 5
var drawingColumn = drawingAttribute.column;  // grabbing the column linked to the attribute that holds all the animation
$.log(drawingAttribute.keyword);              // "DRAWING.ELEMENT"

// for a more direct way to access an attribute, it's possible to also call:

var drawingAttribute = myNode.getAttributeByName("DRAWING.ELEMENT");

readonlybackdropsArray.<$.oBackdrop>

All the backdrops contained within the group.

readonlyboundsoBox

The bounds of the node rectangle in the node view.

readonlycanCreateInPortsbool

Whether the node can create new in-ports.

readonlycanCreateOutPortsbool

Whether the node can create new out-ports.

readonlycontainingBackdropsArray.<$.oBackdrop>

The list of backdrops which contain this node.

enabledbool

Is the node enabled?

readonlyexistsbool

Does the node exist?

readonlyfullPathstring

The derived path to the node.
Deprecated
  • use oNode.path instead

    readonlygroupoGroupNode

    The group containing the node.

    readonlyheightfloat

    The height of the node in the node view.
    The list of oNodeLinks objects descibing the connections to the inport of this node, in order of inport.
    Deprecated
    • returns $.oNodeLink instances but $.oLink is preferred. Use oNode.getInLinks() instead.

      readonlyinNodesArray.<$.oNode>

      The list of nodes connected to the inport of this node, in order of inport.
      Deprecated
      • returns $.oNodeLink instances but $.oLink is preferred. Use oNode.linkedInNodes instead.

        readonlyinPortsint

        The number of link ports on top of the node, connected or not.

        readonlyinsArray.<$.oNode>

        The list of nodes connected to the inport of this node, in order of inport. Similar to oNode.inNodes
        Deprecated
        • alias for deprecated oNode.inNodes property

          readonlyisGroupbool

          Is the node a group?
          Deprecated
          • check if the node is an instance of oGroupNode instead

            readonlyisRootbool

            Is the node the root?

            readonlylinkedColumnsArray.<oColumn>

            The list of all columns linked across all the attributes of this node.

            readonlylinkedInNodesArray.<$.oNode>

            The list of nodes connected to the inport of this node, as a flat list, in order of inport.

            readonlylinkedOutNodesArray.<$.oNode>

            The list of nodes connected to the inport of this node, as a flat list, in order of inport.

            lockedbool

            Is the node locked?

            readonlymatrixoMatrix

            The transformation matrix of the node at the currentFrame.

            readonlymultiportIn$.oNode

            The multiport in node of the group. If one doesn't exist, it will be created.

            readonlymultiportOut$.oNode

            The multiport out node of the group. If one doesn't exist, it will be created.

            namestring

            The node's name.

            nodeColor$.oColorValue

            The color of the node

            nodePositionoPoint

            The position of the node.

            readonlynodesArray.<$.oNode>

            All the nodes contained within the group, one level deep.

            readonlynodesNoMultiportArray.<$.oNode>

            All the nodes contained within the group, excluding multiports.
            The list of oNodeLinks objects descibing the connections to the outports of this node, in order of outport.
            Deprecated
            • returns $.oNodeLink instances but $.oLink is preferred. Use oNode.getOutLinks instead.

              readonlyoutNodesArray.<Array.<$.oNode>>

              The list of nodes connected to the outports of this node
              Deprecated
              • returns $.oNodeLink instances but $.oLink is preferred. Use oNode.linkedOutNodes instead.

                readonlyoutPortsint

                The number of link ports at the bottom of the node, connected or not.

                readonlyoutsArray.<Array.<$.oNode>>

                The list of nodes connected to the outport of this node, in order of outport and links. Similar to oNode.outNodes
                Deprecated
                • alias for deprecated oNode.outNodes property

                  readonlyparent$.oNode

                  The $.oNode object for the parent in which this node exists.

                  readonlypathstring

                  The path of the node (includes all groups from 'Top' separated by forward slashes). To change the path of a node, use oNode.moveToGroup()

                  selectedbool

                  Is the node selected?

                  readonlytypestring

                  The type of the node.

                  readonlywidthfloat

                  The width of the node in the node view.

                  xfloat

                  The horizontal position of the node in the node view.

                  yfloat

                  The vertical position of the node in the node view.

                  zfloat

                  The depth position of the node in the node view.

                  Methods

                  $node(name){$.oNode}

                  openHarmony/openHarmony_node.js, line 2753
                  Returns a child node in a group based on a search.
                  Name Type Description
                  name string The name of the node.
                  Returns:
                  Type Description
                  $.oNode The node, or null if can't be found.

                  addBackdrop(title, body, color, x, y, width, height){$.oBackdrop}

                  openHarmony/openHarmony_node.js, line 3161
                  Adds a backdrop to a group in a specific position.
                  Name Type Default Description
                  title string "Backdrop" optional The title of the backdrop.
                  body string "" optional The body text of the backdrop.
                  color $.oColorValue "#323232ff" optional The oColorValue of the node.
                  x float 0 optional The X position of the backdrop, an offset value if nodes are specified.
                  y float 0 optional The Y position of the backdrop, an offset value if nodes are specified.
                  width float 30 optional The Width of the backdrop, a padding value if nodes are specified.
                  height float 30 optional The Height of the backdrop, a padding value if nodes are specified.
                  Returns:
                  Type Description
                  $.oBackdrop The created backdrop.

                  addBackdropToNodes(nodes, title, body, color, x, y, width, height){$.oBackdrop}

                  openHarmony/openHarmony_node.js, line 3242
                  Adds a backdrop to a group around specified nodes
                  Name Type Default Description
                  nodes Array.<$.oNode> The nodes that the backdrop encompasses.
                  title string "Backdrop" optional The title of the backdrop.
                  body string "" optional The body text of the backdrop.
                  color $.oColorValue #323232ff optional The oColorValue of the node.
                  x float 0 optional The X position of the backdrop, an offset value if nodes are specified.
                  y float 0 optional The Y position of the backdrop, an offset value if nodes are specified.
                  width float 20 optional The Width of the backdrop, a padding value if nodes are specified.
                  height float 20 optional The Height of the backdrop, a padding value if nodes are specified.
                  Returns:
                  Type Description
                  $.oBackdrop The created backdrop.
                  Example
                  function createColoredBackdrop(){
                   // This script will prompt for a color and create a backdrop around the selection
                   $.beginUndo()
                  
                   var doc = $.scn; // grab the scene
                   var nodes = doc.getSelectedNodes(); // grab the selection
                  
                   if(!nodes) return    // exit the function if no nodes are selected
                  
                   var color = pickColor(); // prompt for color
                  
                   var group = nodes[0].group // get the group to add the backdrop to
                   var backdrop = group.addBackdropToNodes(nodes, "BackDrop", "", color)
                  
                   $.endUndo();
                  
                   // function to get the color chosen by the user
                   function pickColor(){
                     var d = new QColorDialog;
                     d.exec();
                     var color = d.selectedColor();
                     return new $.oColorValue({r:color.red(), g:color.green(), b:color.blue(), a:color.alpha()})
                   }
                  }

                  addDrawingNode(name, nodePosition, element, drawingColumn){$.oNode}

                  openHarmony/openHarmony_node.js, line 2945
                  Adds a drawing layer to the group, with a drawing column and element linked. Possible to specify the column and element to use.
                  Name Type Default Description
                  name string The name of the newly created node.
                  nodePosition $.oPoint {0,0,0} optional The position for the node to be placed in the network.
                  element $.object optional The element to attach to the column.
                  drawingColumn object optional The column to attach to the drawing module.
                  Returns:
                  Type Description
                  $.oNode The created node, or bool as false.

                  addGroup(name, addComposite, addPeg, includeNodes, nodePosition){$.oGroupNode}

                  openHarmony/openHarmony_node.js, line 2991
                  Adds a new group to the group, and optionally move the specified nodes into it.
                  Name Type Default Description
                  name string The name of the newly created group.
                  addComposite $.oPoint false optional Whether to add a composite.
                  addPeg bool false optional Whether to add a peg.
                  includeNodes Array.<$.oNode> optional The nodes to add to the group.
                  nodePosition $.oPoint {0,0,0} optional The position for the node to be placed in the network.
                  Returns:
                  Type Description
                  $.oGroupNode The created node, or bool as false.

                  addInPort(portNum){int}

                  openHarmony/openHarmony_node.js, line 2799
                  Creates an in-port on top of a group
                  Name Type Description
                  portNum int The port number where a port will be added
                  Returns:
                  Type Description
                  int The number of the created port in case the port specified was not correct (for example larger than the current number of ports + 1)

                  addNode(type, name, nodePosition){$.oNode}

                  openHarmony/openHarmony_node.js, line 2908
                  Adds a node to the group.
                  Name Type Default Description
                  type string The type-name of the node to add.
                  name string type optional The name of the newly created node.
                  nodePosition $.oPoint {0,0,0} optional The position for the node to be placed in the network.
                  Returns:
                  Type Description
                  $.oNode The created node, or bool as false.
                  Example
                  // to add a node, simply call addNode on the group you want the node to be added to.
                  var sceneRoot = $.scn.root; // grab the scene root group ("Top")
                  
                  var peg = sceneRoot.addNode("PEG", "MyNewlyCreatedPeg");           // adding a peg
                  
                  // Now we'll also create a drawing node to connect under the peg
                  var sceneComposite = $.scn.getNodeByPath("Top/Composite");         // can also use $.scn.$node("Top/Composite") for shorter synthax
                  
                  var drawingNode = sceneRoot.addDrawingNode("myNewDrawingNode");
                  drawingNode.linkOutNode(sceneComposite);
                  drawingNode.can_animate = false                // setting some attributes on the newly created Node
                  
                  peg.linkOutNode(drawingNode);
                  
                  //through all this we didn't specify nodePosition parameters so we'll sort evertything at once
                  
                  sceneRoot.orderNodeView();
                  
                  // we can also do:
                  
                  peg.centerAbove(drawingNode);
                  openHarmony/openHarmony_node.js, line 1809
                  Creates an $.oNodeLink and connects this node to the target via this nodes outport.
                  Name Type Description
                  nodeToLink oNode The target node as an in node.
                  ownPort int The out port on this node to connect to.
                  destPort int The in port on the inNode to connect to.
                  Returns:
                  Type Description
                  $.oNodeLink the resulting created link.
                  Example
                  var peg1     = $.scene.getNodeByPath( "Top/Peg1" );
                   var peg2     = $.scene.getNodeByPath( "Top/Group/Peg2" );
                   var newLink  = peg1.addOutLink( peg2, 0, 0 );

                  addOutPort(portNum){int}

                  openHarmony/openHarmony_node.js, line 2823
                  Creates an out-port at the bottom of a group. For some reason groups can have many unconnected in-ports but only one unconnected out-port.
                  Name Type Description
                  portNum int optional The port number where a port will be added
                  Returns:
                  Type Description
                  int The number of the created port in case the port specified was not correct (for example larger than the current number of ports + 1)

                  inherited centerAbove(oNodeArray, xOffset, yOffset){oPoint}

                  openHarmony/openHarmony_node.js, line 1392
                  Place a node above one or more nodes with an offset.
                  Name Type Description
                  oNodeArray Array.<$.oNode> The array of nodes to center this above.
                  xOffset float The horizontal offset to apply after centering.
                  yOffset float The vertical offset to apply after centering.
                  Returns:
                  Type Description
                  oPoint The resulting position of the node.

                  inherited centerBelow(oNodeArray, xOffset, yOffset){oPoint}

                  openHarmony/openHarmony_node.js, line 1421
                  Place a node below one or more nodes with an offset.
                  Name Type Description
                  oNodeArray Array.<$.oNode> The array of nodes to center this below.
                  xOffset float The horizontal offset to apply after centering.
                  yOffset float The vertical offset to apply after centering.
                  Returns:
                  Type Description
                  oPoint The resulting position of the node.

                  children(recurse){Array.<$.oNode>}

                  openHarmony/openHarmony_node.js, line 2786
                  Gets all children of the group.
                  Name Type Default Description
                  recurse bool false optional Whether to recurse the groups within the groups.
                  Returns:
                  Type Description
                  Array.<$.oNode> The nodes in the group

                  children(recurse){Array.<$.oNode>}

                  openHarmony/openHarmony_node.js, line 2846
                  Gets all children of the group.
                  Name Type Default Description
                  recurse bool false optional Whether to recurse the groups within the groups.
                  Returns:
                  Type Description
                  Array.<$.oNode> The nodes in the group

                  inherited clone(newName, newPosition)

                  openHarmony/openHarmony_node.js, line 1610
                  Create a clone of the node.
                  Name Type Description
                  newName string The new name for the cloned module.
                  newPosition oPoint The new position for the cloned module.

                  inherited createAttribute(attrName, type, displayName, linkable){$.oAttribute}

                  openHarmony/openHarmony_node.js, line 1828
                  Creates a new dynamic attribute in the node.
                  Name Type Default Description
                  attrName string The attribute name to create.
                  type string "string" optional The type of the attribute ["string", "bool", "double", "int"]
                  displayName string attrName optional The visible attribute name to the GUI user.
                  linkable bool false optional Whether the attribute can be linked to a column.
                  Returns:
                  Type Description
                  $.oAttribute The resulting attribute created.

                  inherited duplicate(newName, newPosition)

                  openHarmony/openHarmony_node.js, line 1641
                  Duplicates a node by creating an independent copy.
                  Name Type Description
                  newName string optional The new name for the duplicated node.
                  newPosition oPoint optional The new position for the duplicated node.

                  inherited findFirstInLinkOfType(type, lookInsideGroups){$.oNode}

                  openHarmony/openHarmony_node.js, line 1155
                  Traverses the node hierarchy up until if finds a node of the given type.
                  Name Type Description
                  type string the type of node we are looking for
                  lookInsideGroups bool wether to consider the nodes inside connected groups
                  Returns:
                  Type Description
                  $.oNode the found node

                  inherited findFirstInNodeMatching(condition, lookInsideGroups){$.oNode}

                  openHarmony/openHarmony_node.js, line 1088
                  Traverses the node hierarchy up until if finds a node matching the condition.
                  Name Type Description
                  condition function a function returning true or false which can be used to find the node
                  lookInsideGroups bool wether to consider the nodes inside connected groups
                  Returns:
                  Type Description
                  $.oNode the found node

                  inherited findFirstInNodeOfType(type, lookInsideGroups){$.oNode}

                  openHarmony/openHarmony_node.js, line 1134
                  Traverses the node hierarchy up until if finds a node of the given type.
                  Name Type Description
                  type string the type of node we are looking for
                  lookInsideGroups bool wether to consider the nodes inside connected groups
                  Returns:
                  Type Description
                  $.oNode the found node

                  inherited findFirstOutLinkOfType(type, lookInsideGroups){$.oNode}

                  openHarmony/openHarmony_node.js, line 1168
                  Traverses the node hierarchy up until if finds a node of the given type.
                  Name Type Description
                  type string the type of node we are looking for
                  lookInsideGroups bool wether to consider the nodes inside connected groups
                  Returns:
                  Type Description
                  $.oNode the found node

                  inherited findFirstOutNodeMatching(condition, lookInsideGroups){$.oNode}

                  openHarmony/openHarmony_node.js, line 1111
                  Traverses the node hierarchy down until if finds a node matching the condition.
                  Name Type Description
                  condition function a function returning true or false which can be used to find the node
                  lookInsideGroups bool wether to consider the nodes inside connected groups
                  Returns:
                  Type Description
                  $.oNode the found node

                  inherited findFirstOutNodeOfType(type, lookInsideGroups){$.oNode}

                  openHarmony/openHarmony_node.js, line 1144
                  Traverses the node hierarchy down until if finds a node of the given type.
                  Name Type Description
                  type string the type of node we are looking for
                  lookInsideGroups bool wether to consider the nodes inside connected groups
                  Returns:
                  Type Description
                  $.oNode the found node

                  inherited getAttributeByColumnName(columnName){oAttribute}

                  openHarmony/openHarmony_node.js, line 1737
                  Provides a matching attribute based on the column name provided. Assumes only one match at the moment.
                  Name Type Description
                  columnName string The column name to search.
                  Returns:
                  Type Description
                  oAttribute The matched attribute object, given the column name.

                  inherited getAttributeByName(keyword){oAttribute}

                  openHarmony/openHarmony_node.js, line 1701
                  Provides a matching attribute based on provided keyword name. Keyword can include "." to get subattributes.
                  Name Type Description
                  keyword string The attribute keyword to search.
                  Returns:
                  Type Description
                  oAttribute The matched attribute object, given the keyword.

                  inherited getFreeInPort(createNew){int}

                  openHarmony/openHarmony_node.js, line 930
                  Returns a free unconnected in-port
                  Name Type Default Description
                  createNew bool true optional Whether to allow creation of new ports
                  Returns:
                  Type Description
                  int the port number that isn't connected

                  inherited getFreeOutPort(createNew){int}

                  openHarmony/openHarmony_node.js, line 1067
                  Returns a free unconnected out-port
                  Name Type Default Description
                  createNew bool false optional Whether to allow creation of new ports
                  Returns:
                  Type Description
                  int the port number that isn't connected
                  openHarmony/openHarmony_node.js, line 893
                  Returns the oLink object representing the connection of a specific inPort
                  Name Type Description
                  inPort int the number of the port to get links from.
                  Returns:
                  Type Description
                  $.oLink the oLink Object representing the link connected to the inport
                  openHarmony/openHarmony_node.js, line 912
                  Returns all the valid oLink objects describing the links that are connected into this node.
                  Returns:
                  Type Description
                  Array.<$.oLink> An array of $.oLink objects.

                  inherited getInLinksNumber(inPort)

                  openHarmony/openHarmony_node.js, line 882
                  Returns the number of links connected to an in-port
                  Name Type Description
                  inPort int the number of the port to get links from.

                  inherited getLinkedInNode(inPort){$.oNode}

                  openHarmony/openHarmony_node.js, line 1003
                  Returns the node connected to a specific in-port
                  Name Type Description
                  inPort int the number of the port to get the linked Node from.
                  Returns:
                  Type Description
                  $.oNode The node connected to this in-port

                  inherited getLinkedOutNode(outPort, outLink){$.oNode}

                  openHarmony/openHarmony_node.js, line 1219
                  Returns the node connected to a specific outPort
                  Name Type Default Description
                  outPort int the number of the port to get the node from.
                  outLink int 0 optional the index of the link.
                  Returns:
                  Type Description
                  $.oNode The node connected to this outPort and outLink

                  inherited getMatrixAtFrame(frameNumber){oMatrix}

                  openHarmony/openHarmony_node.js, line 1327
                  Get the transformation matrix for the node at the given frame
                  Name Type Description
                  frameNumber int
                  Returns:
                  Type Description
                  oMatrix the matrix object

                  getNodeByName(name){$.oNode}

                  openHarmony/openHarmony_node.js, line 2726
                  Returns a node from within a group based on its name.
                  Name Type Description
                  name string The name of the node.
                  Returns:
                  Type Description
                  $.oNode The node, or null if can't be found.

                  getNodesByType(typeName, recurse){Array.<$.oNode>}

                  openHarmony/openHarmony_node.js, line 2741
                  Returns all the nodes of a certain type in the group. Pass a value to recurse to look into the groups as well.
                  Name Type Description
                  typeName string The type of the nodes.
                  recurse bool Wether to look inside the groups.
                  Returns:
                  Type Description
                  Array.<$.oNode> The nodes found.
                  openHarmony/openHarmony_node.js, line 1026
                  Returns the $.oLink object representing the connection of a specific outPort / link
                  Name Type Description
                  outPort int the number of the port to get the link from.
                  outLink int optional the index of the link.
                  Returns:
                  Type Description
                  $.oLink The link object describing the connection
                  openHarmony/openHarmony_node.js, line 1046
                  Returns all the valid oLink objects describing the links that are coming out of this node.
                  Returns:
                  Type Description
                  Array.<$.oLink> An array of $.oLink objects.

                  inherited getOutLinksNumber(outPort){int}

                  openHarmony/openHarmony_node.js, line 1014
                  Returns the number of links connected to an outPort
                  Name Type Description
                  outPort int the number of the port to get links from.
                  Returns:
                  Type Description
                  int the number of links

                  inherited getTimelineLayer(timeline){int}

                  openHarmony/openHarmony_node.js, line 1338
                  Retrieves the node layer in the timeline provided.
                  Name Type Description
                  timeline oTimeline optional Optional: the timeline object to search the column Layer. (by default, grabs the current timeline)
                  Returns:
                  Type Description
                  int The index within that timeline.

                  importImage(path, alignment, nodePosition, convertToTvg, resized_axis){$.oNode}

                  openHarmony/openHarmony_node.js, line 3569
                  Import a generic image format (PNG, JPG, TGA etc) as a read node.
                  Name Type Default Description
                  path string The image file to import.
                  alignment string "ASIS" optional Alignment type.
                  nodePosition $.oPoint {0,0,0} optional The position for the node to be placed in the node view.
                  convertToTvg bool false optional Convert image to TVG format.
                  resized_axis string "Y" optional Resize image to fit with scene resolution in given axis.
                  Returns:
                  Type Description
                  $.oNode The node for the imported image

                  importImageAsTVG(path, alignment, nodePosition)

                  openHarmony/openHarmony_node.js, line 3620
                  imports an image as a tvg drawing.
                  Name Type Default Description
                  path $.oFile the image file to import
                  alignment string "ASIS" optional the alignment mode for the imported image
                  nodePosition $.oPoint {0,0,0} optional the position for the created node.

                  importImageSequence(imagePaths, exposureLength, convertToTvg, alignment, nodePosition, resized_axis){$.oDrawingNode}

                  openHarmony/openHarmony_node.js, line 3641
                  imports an image sequence as a node into the current group.
                  Name Type Default Description
                  imagePaths Array.<$.oFile> a list of paths to the images to import (can pass a list of strings or $.oFile)
                  exposureLength number 1 optional the number of frames each drawing should be exposed at. If set to 0/false, each drawing will use the numbering suffix of the file to set its frame.
                  convertToTvg boolean false optional wether to convert the files to tvg during import
                  alignment string "ASIS" optional the alignment to apply to the node
                  nodePosition $.oPoint optional the position of the node in the nodeview
                  resized_axis string "Y" optional Resize image to fit with scene resolution in given axis.
                  Returns:
                  Type Description
                  $.oDrawingNode the created node

                  importPSD(path, separateLayers, addPeg, addComposite, alignment, nodePosition){Array.<$.oNode>}

                  openHarmony/openHarmony_node.js, line 3300
                  Imports a PSD into the group. This function is not available when running as harmony in batch mode.
                  Name Type Default Description
                  path string The PSD file to import.
                  separateLayers bool true optional Separate the layers of the PSD.
                  addPeg bool true optional Whether to add a peg.
                  addComposite bool true optional Whether to add a composite.
                  alignment string "ASIS" optional Alignment type.
                  nodePosition $.oPoint {0,0,0} optional The position for the node to be placed in the node view.
                  Returns:
                  Type Description
                  Array.<$.oNode> The nodes being created as part of the PSD import.
                  Example
                  // This example browses for a PSD file then import it in the root of the scene, then connects it to the main composite.
                  
                  function importCustomPSD(){
                    $.beginUndo("importCustomPSD");
                    var psd = $.dialog.browseForFile("get PSD", "*.psd");       // prompt for a PSD file
                  
                    if (!psd) return;                                           // dialog was cancelled, exit the function
                  
                    var doc = $.scn;                                            // get the scene object
                    var sceneRoot = doc.root                                    // grab the scene root group
                    var psdNodes = sceneRoot.importPSD(psd);                    // import the psd with default settings
                    var psdComp = psdNodes.pop()                                // get the composite node at the end of the psdNodes array
                    var sceneComp = doc.$node("Top/Composite")                  // get the scene main composite
                    psdComp.linkOutNode(sceneComp);                             // ... and link the two.
                    sceneRoot.orderNodeView();                                  // orders the node view inside the group
                    $.endUndo();
                  }

                  importQT(path, importSound, extendScene, alignment, nodePosition, convertToTvg){$.oNode}

                  openHarmony/openHarmony_node.js, line 3719
                  Imports a QT into the group
                  Name Type Default Description
                  path string The palette file to import.
                  importSound bool true optional Whether to import the sound
                  extendScene bool true optional Whether to extend the scene to the duration of the QT.
                  alignment string "ASIS" optional Alignment type.
                  nodePosition $.oPoint optional The position for the node to be placed in the network.
                  convertToTvg bool false optional Convert movie frames to TVG format.
                  Returns:
                  Type Description
                  $.oNode The imported Quicktime Node.

                  importTemplate(tplPath, destinationNodes, extendScene, nodePosition, pasteOptions){Array.<$.oNode>}

                  openHarmony/openHarmony_node.js, line 3081
                  Imports the specified template into the scene.
                  Name Type Default Description
                  tplPath string The path of the TPL file to import.
                  destinationNodes Array.<$.oNode> false optional The nodes affected by the template.
                  extendScene bool true optional Whether to extend the exposures of the content imported.
                  nodePosition $.oPoint {0,0,0} optional The position to offset imported new nodes.
                  pasteOptions object optional An object containing paste options as per Harmony's standard paste options.
                  Returns:
                  Type Description
                  Array.<$.oNode> The resulting pasted nodes.

                  inherited insertInNode(inPort, oNodeObject, inPortTarget, outPortTarget){bool}

                  openHarmony/openHarmony_node.js, line 1257
                  Inserts the $.oNodeObject provided as an innode to this node, placing it between any existing nodes if the link already exists.
                  Name Type Description
                  inPort int This node's inport to connect.
                  oNodeObject $.oNode The node to link this one's outport to.
                  inPortTarget int The target node's inPort to connect.
                  outPortTarget int The target node's outPort to connect.
                  Returns:
                  Type Description
                  bool The result of the link, if successful.

                  inherited linkInNode(nodeToLink, ownPort, destPort, createPorts){bool}

                  openHarmony/openHarmony_node.js, line 954
                  Links this node's inport to the given module, at the inport and outport indices.
                  Name Type Description
                  nodeToLink $.oNode The node to link this one's inport to.
                  ownPort int optional This node's inport to connect.
                  destPort int optional The target node's outport to connect.
                  createPorts bool optional Whether to create new ports on the nodes.
                  Returns:
                  Type Description
                  bool The result of the link, if successful.

                  inherited linkOutNode(nodeToLink, ownPort, destPort, createPorts){bool}

                  openHarmony/openHarmony_node.js, line 1183
                  Links this node's out-port to the given module, at the inport and outport indices.
                  Name Type Description
                  nodeToLink $.oNode The node to link this one's outport to.
                  ownPort int optional This node's outport to connect.
                  destPort int optional The target node's inport to connect.
                  createPorts bool optional Whether to create new ports on the nodes.
                  Returns:
                  Type Description
                  bool The result of the link, if successful.

                  inherited moveToGroup(group)

                  openHarmony/openHarmony_node.js, line 1277
                  Moves the node into the specified group. This doesn't create any composite or links to the multiport nodes. The node will be unlinked.
                  Name Type Description
                  group oGroupNode the group node to move the node into.

                  inherited orderAboveNodes(verticalSpacing, horizontalSpacing)

                  openHarmony/openHarmony_node.js, line 1473
                  Sorts the nodes above this node in a grid like manner, based on their links.
                  Name Type Default Description
                  verticalSpacing int 120 optional optional: The spacing between two rows of nodes.
                  horizontalSpacing int 40 optional optional: The spacing between two nodes horizontally.

                  orderNodeView(recurse)

                  openHarmony/openHarmony_node.js, line 2856
                  Sorts out the node view inside the group
                  Name Type Default Description
                  recurse bool false optional Whether to recurse the groups within the groups.

                  inherited placeAtCenter(oNodeArray, xOffset, yOffset){oPoint}

                  openHarmony/openHarmony_node.js, line 1450
                  Place at center of one or more nodes with an offset.
                  Name Type Description
                  oNodeArray Array.<$.oNode> The array of nodes to center this below.
                  xOffset float The horizontal offset to apply after centering.
                  yOffset float The vertical offset to apply after centering.
                  Returns:
                  Type Description
                  oPoint The resulting position of the node.

                  inherited refreshAttributes(oNodeObject){bool}

                  openHarmony/openHarmony_node.js, line 1880
                  Refreshes/rebuilds the attributes and getter/setters.
                  Name Type Description
                  oNodeObject $.oNode The node to link this one's inport to.
                  Returns:
                  Type Description
                  bool The result of the unlink.

                  inherited remove(deleteColumns, deleteElements){void}

                  openHarmony/openHarmony_node.js, line 1673
                  Removes the node from the scene.
                  Name Type Description
                  deleteColumns bool Should the columns of drawings be deleted as well?
                  deleteElements bool Should the elements of drawings be deleted as well?
                  Returns:
                  Type Description
                  void

                  inherited removeAttribute(attrName){bool}

                  openHarmony/openHarmony_node.js, line 1869
                  Removes an existing dynamic attribute in the node.
                  Name Type Description
                  attrName string The attribute name to remove.
                  Returns:
                  Type Description
                  bool The result of the removal.

                  subNodes(recurse){Array.<$.oNode>}

                  openHarmony/openHarmony_node.js, line 2764
                  Gets all the nodes contained within the group.
                  Name Type Default Description
                  recurse bool false optional Whether to recurse the groups within the groups.
                  Returns:
                  Type Description
                  Array.<$.oNode> The nodes in the group

                  inherited timelineIndex(timeline){int}

                  openHarmony/openHarmony_node.js, line 1355
                  Retrieves the node index in the timeline provided.
                  Name Type Description
                  timeline oTimeline optional Optional: the timeline object to search the column Layer. (by default, grabs the current timeline)
                  Returns:
                  Type Description
                  int The index within that timeline.

                  inherited toString(){string}

                  openHarmony/openHarmony_node.js, line 1727
                  Used in converting the node to a string value, provides the string-path.
                  Returns:
                  Type Description
                  string The node path's as a string.

                  inherited unlinkInNode(oNodeObject){bool}

                  openHarmony/openHarmony_node.js, line 970
                  Searches for and unlinks the $.oNode object from this node's inNodes.
                  Name Type Description
                  oNodeObject $.oNode The node to link this one's inport to.
                  Returns:
                  Type Description
                  bool The result of the unlink.

                  inherited unlinkInPort(inPort){bool}

                  openHarmony/openHarmony_node.js, line 990
                  Unlinks a specific port from this node's inport.
                  Name Type Description
                  inPort int The inport to disconnect.
                  Returns:
                  Type Description
                  bool The result of the unlink, if successful.

                  inherited unlinkOutNode(oNodeObject){bool}

                  openHarmony/openHarmony_node.js, line 1200
                  Links this node's out-port to the given module, at the inport and outport indices.
                  Name Type Description
                  oNodeObject $.oNode The node to unlink from this node's outports.
                  Returns:
                  Type Description
                  bool The result of the link, if successful.

                  inherited unlinkOutPort(outPort, outLink){bool}

                  openHarmony/openHarmony_node.js, line 1233
                  Unlinks a specific port/link from this node's output.
                  Name Type Description
                  outPort int The outPort to disconnect.
                  outLink int The outLink to disconnect.
                  Returns:
                  Type Description
                  bool The result of the unlink, if successful.

                  updatePSD(path, separateLayers){Array.<$.oNode>}

                  openHarmony/openHarmony_node.js, line 3424
                  Updates a PSD previously imported into the group
                  Name Type Default Description
                  path string The updated psd file to import.
                  separateLayers bool true optional Separate the layers of the PSD.
                  Returns:
                  Type Description
                  Array.<$.oNode> The nodes that have been updated/created