Sub-objects

The main idea of sub-objects is to use nodal points and/or specified contour lines of a parent object to generate basic LSS Arch objects such as columns, beams, slabs, walls etc in a batch manner. The most obvious usage scenario is to place  columns at each nodal point.
In addition to basic LSS Arch objects it is also possible to place instances of specified component at each nodal point of a parent object.
More complicated option is to use some contour lines of a parent object to generate such objects like:

Adding Sub-objects

  1. click appropriate speed-button right below Sub-objects group header to add sub-object band to Sub-objects group:
  2. click speed-button to adjust sub-object's settings such as width, height, materials etc
  3. click speed-button to adjust sub-object's placement settings such as levels to put, contour line to use, offsets and jitters
  4. it is possible to erase added sub-object by clicking [x] button

Sub-object's Settings

After clicking of speed-button appears settings dialog, which is almost the same as a corresponding tool dialog.

After adjusting of sub-object's settings it is possible just to close settings dialog (made changes will be saved), then proceed with editing of other sub-object's settings and click "Apply" button of a "parent" tool dialog when all adjustments are made in order to commit changes and generate (or regenerate) the whole "parent" object and all its sub-objects. Or it is possible to click "Apply" button of sub-object's settings dialog in order to generate/regenerate sub-objects immediately.

Position Options

After clicking of speed-button appears "Position Options" settings dialog

Note that content of "Position Options" dialog depends on type of an object. Dialog shows settings, which relevant to an object type only.
After adjusting of sub-object's settings it is possible just to close settings dialog (made changes will be saved), then proceed with editing of other sub-object's settings and click "Apply" button of a "parent" tool dialog when all adjustments are made in order to commit changes and generate (or regenerate) the whole "parent" object and all its sub-objects. Or it is possible to click "Apply" button of "Position Options" dialog in order to generate/regenerate sub-objects immediately.

Condition Expression

It is possible to use "Condition Expression" setting of "Position Options" dialog to determine at which grid points exactly to place sub-objects like component instance or column or which of grid points to process while creating of other types of sub-objects.
For example if it is necessary to place railing stand at each third grid point of a spiral stair railing, "Condition Expression" should contain the following condition:
y_ind.modulo(3)==0
Of course it is possible to use more sophisticated conditions including random function for example or any other mathematical functions.

Here is a list of some other variables, which may be used within condition expression.
List of Variables
Variable Description  Grid Tool  Mesh Tool
x_ind index of a point along X axis
y_ind index of a point along Y axis
z_ind index of a point along Z axis
pt pt — point object, which represents grid point (it is possible to access it's coordinates by typing a coordinate character after dot, for example x coordinate of a point can be retrieved by typing "pt.x")
 @x_steps_cnt count of steps along X axis
 @y_steps_cnt count of steps along Y axis
 @z_steps_cnt count of steps along Z axis
 @ang_steps_cnt count of angle steps
 @r_steps_cnt count of radial steps
 @grid_width width of a grid object
 @grid_depth depth of a grid object
 @grid_height height of a grid object
 @x_step distance, which represents uniform grid step along X axis
 @y_step distance, which represents uniform grid step along Y axis
 @z_step distance, which represents uniform grid step along Z axis
 @r_step distance, which represents uniform grid step along radius of circular or spiral grid type
 @ang_step floating point value, which represents angle step in degrees
 @stick_down boolean parameter, when it's set to "true", grid points fall down to nearest geometric obstacle under grid object in an active model
 @stick_offset distance value, which represents offset from a "ground" surface after sticking
@grid_origin point object, which represents grid origin point (it is possible to access it's coordinates by typing a coordinate character after dot, for example x coordinate of a grid origin can be retrieved by typing "@grid_origin.x")
@grid_type type of a grid
@shape_type type of a shape
@discrete_r_step boolean option, if it equals to "false", then points of a spiral grid will be progressively farther from grid origin at each angle step
@discrete_z_step boolean option, if it equal to "false", then points of a spiral grid will be progressively higher at each angle step
@rot_angle angle of rotation of grid object around Z axis
Using of "Condition Expression" requires at least a basic knowledge of Ruby language syntax.
Also note that all distance variables contain values in decimal inches (internal distance unit in SketchUp).

Readjusting of Sub-objects

When tool, which corresponds to a "parent" object is active it is possible to pick "parent" object. Tool will read settings and position options of sub-objects right from sub-objects, which are present in an active model. So in case if all sub-objects of a certain type were erased somehow using SketchUp's native tools for example, then "parent" object will not read information about them and they will not appear within "Sub-objects" group of "parent" object's tool dialog. It's enough to have at least one sub-object in an active model in order to be detected by a tool of "parent" object.
Once sub-objects were detected and became listed within "parent" object's tool dialog, it is possible to readjust settings and/or position options of each sub-object by clicking speed-buttons. Note that sub-objects, which settings or position options are being edited are highlighted by green bounding boxes in an active model: