Tinderbox v9 Icon

createAgent([pathTo,] name)


Operator Type: 

Operator Scope of Action: 

Operator Purpose: 

Operator First Added: 

Operator Altered: 

 Function   [other Function type actions]

 Item   [operators of similar scope]

 Data manipulation   [other Data manipulation operators]

 Baseline

 9.1.0


createAgent(name)

This creates a new agent called name at the designated location, and returns the full path to that agent. If the designated agent already exists, no new agent is created and the operator returns the empty string.

From v9.1.0, the create() operator always returns the path to the new (or pre-existing) agent. Previously, if the agent already existed, createAgent() returned false.

This function needs no left-side expression argument, i.e. '$SomeAttribute=', to invoke it.

name is typically actually a complete path:

createAgent("/agents/urgentTasks"); 

but if name is a unique agent $Name, a new agent is created as a child of the current note. Be aware though that cannot be used if the current object is an agent rather than a note. For example:

create("urgentTasks"); 

create(/path/to/container, name)

A two-argument variant is also offered that allows the container for a new item to be specified, and the new item's $Name. This may be useful if you need to create several agents in the same container, for example is iterating a list with .each(). For example:

create("/agents","urgentTasks"); 

Or, more pertinently, using a loop variable 'xPlace':

	$SomeList.each(aPlace){
		create(aPlace,"urgentTasks");
	};

Essentially, the two-input form allows 3 forms of variation:

Designators and evaluation

From v9.1.0, paths like that below, which mix literal and computed values are no longer evaluated, nor are inline designators:

createAgent("Resources/Test/$MyString) 

Instead use code like this:

	var:string vPath="/Resources/Test/"+$MyString;
	createAgent(vPath);