Cada sessió del Rocs és un projecte: en obrir el Rocs es crea un projecte buit, en carregar algun projecte es convertirà en el projecte actual. En si, un projecte consisteix en documents de graf, scripts/algorismes i scripts.
Un document de graf representa el contingut d'una pissarra en l'editor de grafs. Conté informació sobre els tipus de nodes i arestes definits per l'usuari, les seves propietats, i sobre els nodes i arestes ja creats. És a dir, el Rocs entén el conjunt de tots els nodes i arestes d'un document de graf per a formar un (no necessàriament connectat) graf. Tot el que pertany a un document de graf és accessible des del motor de scripts mitjançant l'objecte global Document
.
En alguns escenaris, els grafs consisteixen en diferents tipus d'arestes (p. ex., un graf no dirigit, a més de les tres arestes calculades per un algoritme de cerca en amplada) que s'han de manegar i mostrar de forma diferent. Per això, a més d'un tipus d'aresta predeterminat, podeu definir altres tipus d'arestes arbitràries. Cada tipus d'aresta té la seva representació visual individual, propietats dinàmiques, i es pot canviar de no dirigit o dirigit. La interfície per a la creació de scripts proporciona mètodes convenients per a només accedir específicament als tipus específics d'arestes.
De la mateixa manera que per als tipus d'arestes, podeu definir diferents tipus de nodes d'un graf (p. ex., per a donar un paper especial a alguns nodes). Cada tipus de node posseeix la seva pròpia representació visual i propietats dinàmiques.
Cada element (node o aresta) pot tenir propietats. Aquestes propietats s'han de configurar en el corresponent tipus de node o aresta. Les propietats s'identifiquen i accedeix mitjançant els seus noms i poden contenir qualsevol valor. Per a crear una propietat nova o per a modificar una d'existent, empreu la barra lateral Tipus d'elements i empreu el botó per a obrir el diàleg.
També podeu emprar el motor de crear scripts per a accedir a les propietats registrades i canviar els seus valors. En el següent exemple se suposa que la propietat «weight» està registrada per al tipus d'aresta predeterminat.
var nodes = Document.nodes() for (var i = 0; i < nodes.length; ++i){ nodes[i].weight = i; } for (var i = 0; i < nodes.length; ++i){ Console.log("weight of node " + i + ": " + nodes[i].weight); }