Animated hierarchy of collections and components.

Animated hierarchy of sets and scenes

STEP ONE

This is a proposal to develop the nameset interface and mechanisms as an alternative to Sketchup layers and a supplement to outliner and scenes. The first step I want to take is to seek help to test the basic functionality, stability and acceptability of the interface itself. It has been made as a plugin but for simplicity interaction with models is delayed until this step is deemed complete.

ANIMATION

As the interface is more machine than metaphor for paperwork, it needs to be read differently. The names in the grey row represent a navigable trail. All the other names in the white panel offer associated options to branch off onto others.

Selection of names activates horizontal and vertical animation to slide new options into view.

Selection of menu prompt opens available devices. (only one for this stage).

Selection of menu option opens the device (in this case nsetCreate.js)

Device options open but menu options remain accessible.

Device options. Note menu prompt to slide menu prompts back

Menu and device columns also slide vertically.

Selection in white panel slides menu prompts back.

FUNCTIONALITY

Functionality relies on the html and javascript (see attached files) but also on the key/value pairs in the record (as above). Each record is given a number label. Each record has a Forelink key which has an array of number labels associated with it. The other key/value pairs are explained with the device that creates them.

"Example_2" is a sharable nameset link. When it was created with the machineCreate device it was given "NSET" and "VIEW" as its Forelink array. It is saved in a file of the same name and its first two records are "NSET" and "VIEW" in order to make the coupling.

When another sharable nameset link is selected, the previous one is unhooked and saved and the new one coupled.

Sets and scenes have a different color to avoid confusion with NSET names. The NSET is temporarily attached to a scene in order to record required visibility of components. All components can be hidden with one selection.

And made visible again by selecting collections or components further down the trail.

DEVICES

Devices can be made by anyone just like ruby plug-ins for Sketchup. There are few rules:

The minimum functions are:

This is called by the device initiator in the machine code which displays the main list in the device prompt slider.

This is called from a common function on selection of a prompt.

This is called from a core function on selection of an option.

This is called from the machine to clean up config file.

See FILES for an explanation of the file structure.

DEVICES FOR TEST

Machine devices enable manipulation of names that belong to its owner, at this stage adding and deleting either private or sharable named links.

Nset devices are similar but for use within in a sharable nameset. Additional options include specifying a Type.

View devices now only include the ability to toggle visibility on and off.

Currently all new names are via user input but later a set of functions will use the Type and other key/value pairs to store unique input and offer pertinent lists from which to select.

FILES

nameset.rb is called from its launcher in the plug_in folder. It needs to be activated from Preferences > Extensions > Nameset. For this test it handles only the webdialog and callbacks for retrieving and saving text and swapping sharable nsets.

zExample_x.json are text files in JavaScript Object Notation holding nset data for projects. Only zExample_2 has been extended beyond the obligatory NSET and VIEW nodes.

nset.json holds both the machine owners private links and the current sharable nset (in this case, zExample_2)

mset.json holds the machine owner's menu of selected device groups and devices.

config.json holds the nametrail (which determines the names' animation) and a few other essential variables.

viewEdit, nsetCreate and machineSetup are device files.

ruby.js handles the callbacks and scripts that retrieve and save data including swapping sharable nsets.

machine.js controls the display and devices.

json2.json was downloaded from http://www.JSON.org

core.js contains many common functions that are used by machine and devices

nameset.css and nameset.html are pretty standard except for this div that enables devices to be swapped

by this:

POST TEST