Загалом, кожен сеанс Rocs є проєктом: під час запуску Rocs створюється порожній проєкт; якщо завантажуєтеся якийсь проєкт, він стає поточним. Сам проєкт складається з документів графів, скриптів або алгоритмів та журналу.
Документ графу відтворює вміст полотна у редакторі графів. У ньому містяться дані щодо визначених користувачем типів вузлів та ребер, їхніх властивостей, а також щодо вже створених вузлів і ребер. Тобто, Rocs вважає набір усіх вузлів і ребер документа графів (необов’язково з’єднаних) самим графом. Доступ до усіх елементів документа графу можна отримати за допомогою рушія обробки скриптів та загального об’єкта Document
.
Іноді, граф може складатися із ребер різних типів (наприклад, незорієнтований граф плюс ребра дерева, обчислені за допомогою алгоритму пошуку у ширину), які слід обробляти і показувати у різний спосіб. Для цього, окрім типового типу ребер, ви можете визначити довільні інші типи ребер. Кожен тип ребер має власне візуальне представлення, динамічні властивості, а також може бути орієнтованим або незорієнтованим. У інтерфейсі написання скриптів передбачено зручні методи для доступу до ребер певних типів.
Аналогічно до типів ребер ви можете визначити різні типи вершити графу (наприклад, надати певним вершинам особливі ролі). У кожного типу вершин (вузлів) передбачено власне представлення та динамічні властивості.
Кожен елемент (вершини або ребра) може мати властивості. Ці властивості має бути визначено у відповідному типі вершин або ребер. Властивості ідентифікуються за назвами і можуть містити будь-які значення. Доступ до властивостей виконується за назвами. Для створення або внесення змін до наявних властивостей слід використовувати бічну панель Типи елементів. Для відкриття діалогового вікна властивостей слід використовувати кнопку .
Крім того, ви можете скористатися рушієм обробки скриптів для доступу до зареєстрованих властивостей та зміни їхніх значень. У наведеному нижче прикладі ми припускаємо, що властивість «weight» зареєстровано для типового типу ребер.
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); }