File Layout - SketchApps

This page describes the upper levels of the SketchApps file tree, as used in Igloo Studios' Product Connect distribution (Version 0.3.*). For information on sub-trees, see the breakout pages referenced below.


Each user should have an independent location for plugins and related data. So, SketchApps defines one, following operating system conventions:

  • On Mac OS X, SketchApps uses $HOME/Library/SketchUp.

  • On Windows, SketchApps uses $APPDATA\SketchUp.

  • On Linux (with Wine), SketchApps uses the "Application Data" directory:
    "/$HOME/.wine/drive_c/users/$USER/Application Data/SketchUp"

This directory is laid out as follows:

| SketchApps/          # installed SketchUp apps and data
| SketchApps_bak/      # backed-up SketchUp apps and data
| SketchApps_dev/      # developer's workbench
| SketchApps_use/      # configuration and log files, etc.


The SketchApps file tree is shared by assorted apps, as:

SketchApps/            # installed SketchUp apps and data
| CFCL/                # Canta Forda Computer Laboratory
| | _External/...      # External code and resources
| | _Framework/...     # Framework code and resources
| | Public/...         # Public plugin code and resources
| Igloo/...            # Igloo Studios, Inc.

Some sub-directory names (eg, CFCL, Igloo) are already "claimed", but there is still plenty of room! Let me know if you want to claim a name for your own efforts.

The CFCL directory tree is maintained by Canta Forda Computer Laboratory for the benefit of the SketchUp developer community. With the exception of the _External sub-tree, its content was created by Rich Morin (


The _External and _Framework sub-directories contain common support libraries and other resources. By giving each "author" directory (eg, CFCL) its own versions of these, we avoid conflicts in library versions.

  • CFCL/Public contains coding examples,
    one of which (Model Viewer) is also a useful tool.

  • Igloo/Public contains the Product Connect plugins
    (eg, Get Products, Product Editor, Report Maker).

Detailed breakouts are available for the following sub-directories:


The SketchApps installer moves any existing SketchApps directory into a "backup" directory, for safety.

The new name includes the current date and a two-letter string (aa...zz) which is chosen to avoid naming clashes and keep the backup directories in chronological order, as:

| SketchApps.2011.0331.aa
| SketchApps.2011.0331.ab
| SketchApps.2011.0401.aa


It's quite possible to work on code in the SketchApps directory, but this gets in the way of creating and testing installer bundles. (No developer wants an installer to overwrite the development tree!)

So, SketchApps also recognizes a SketchApps_dev directory tree:

  • court will generate documentation from it

  • load_sketchapps.rb will load plugins from it

  • sa_pkg will copy content from it (to SketchApps_pkg)

  • sa_ver will create version files in it

The layout of SketchApps and SketchApps_dev differ slightly from each other:

  • In SketchApps_dev, a common _Libraries directory
    contains both the _External and _Framework sub-trees.

  • "Private" directories may not be copied to SketchApps.


This directory is used by the SketchApps packaging tools for their working and output files, eg:

| CFCL_Public/
| | CFCL_Public.0.3.9/
| | | SketchApps_install_tree/
| | | | SketchApps/
| | | | | CFCL/
| | | | | | _External/{Admin,Code,Image}
| | | | | | _Framework/{Admin,Common,Packaging,Plugin}
| | | | | | Public/{Admin,Common,Packaging,Plugin}
| | | | | load_sketchapps.rb
| | | | | sa_config.rb
| |
| Product_Connect/
| | Product_Connect.0.3.9/
| | | SketchApps_install_tree/
| | | | SketchApps/
| | | | | CFCL/...
| | | | | Igloo/...
| | | | | load_sketchapps.rb
| | | | | sa_config.rb
| |

Note: The tools used to create installers for Mac OS X and Windows rely on this directory layout; do not move or rename anything unless you are certain you know what you are doing!


The SketchApps_use directory contains files that control or report on application use, etc:

| court_index.html         # index for Court documentation
| sa_config.rb             # SketchApps configuration file
| sa_log_files/            # SketchApps log files
| | _                      # symbolic link to latest log
| | <Y>.<MD>.<HMS>.<usec>  # date and time of file creation
| | ...

This directory may also be used by individual SketchApps for report files, etc. Of course, care should be taken to avoid naming conflicts (eg, create a Foo_Public sub-directory).

This wiki page is maintained by Rich Morin, an independent consultant specializing in software design, development, and documentation. Please feel free to email comments, inquiries, suggestions, etc!

Topic revision: r12 - 06 Jul 2012, RichMorin
This site is powered by Foswiki Copyright © by the contributing authors. All material on this wiki is the property of the contributing authors.
Foswiki version v2.1.6, Release Foswiki-2.1.6, Plugin API version 2.4
Ideas, requests, problems regarding CFCL Wiki? Send us email