This Vectorworks file has a couple of variants of skylight object that are created with Marionette. The Marionette scripts for the skylights can be examined simply by double-clicking on the skylights themselves. This was my first attempt at using Marionette for parametric objects and I explored several topics:
1. The two skylight objects are different because one uses a simple set of parameters (height, width, curb height) to set the geometry, while the other allows you to pick from a predefined "catalog choice" on the Object Info palette. There is a Marionette node inside the second one that is called "Configurator' that takes advantage of a very useful data structure in Python called a "dictionary". For those of you interested in Python scripting, this is worth a look.
2. There are wrapper nodes inside the skylight objects called "Frame Profile" and "Curb Profile". These are essentially nested parametric shapes. Select either of these nodes and you will see a number of parameters on the OI palette. Double-click either of these nodes and you will see their internal scripts as well as a picture describing what the parameters mean. (You can paste anything you want into wrapper nodes as informal documentation.)
3. These objects write and maintain proper IFC data, including height and width, with every reset.