Product Connect

Note: Non-technical information for Product Connect (eg, marketing literature, user documentation) is located elsewhere. These pages concentrate on technical information (eg, architectural notes, implementation details).

Product Connect (PC) stores product information in SketchUp entities, using a specific set of Attribute Dictionaries (eg, Product_Connect_PE):

  • Product information may include a variety of attributes (eg, description, dimensions, names), depending on the type of product involved (eg, Appliance, Cabinet, Finish).

  • Currently, Product Connect only attaches dictionaries to SketchUp components (eg, Appliance, Cabinet) and materials (eg, Finish).

When these "PC-enabled" entities are present in a SketchUp model, their product information can be extracted and used to generate reports (eg, "schedule" spreadsheets) for use in the design process.

Version 0.2 of the Product Connect distribution relied on vendors to supply "PC-enabled" SketchUp entities. Although there are several thousand of these on Google's 3D Warehouse, this only begins to meet the needs of possible users (eg, architects, designers, engineers).

So, in version 0.3, we added the ability for SketchUp users to create and/or modify PC-enabled entities. Now, any component or material can be annotated and used immediately to generate reports.

Plugins

The Product Connect distribution contains several plugins.
Roughly in order of increasing complexity, they are:

  • Report Maker - generate reports (eg, schedule spreadsheets)

Plugin architecture and control flow

The following diagram indicates the major connection between the plugins:

At start-up time, Google SketchUp finds and loads "load_sketchapps.rb". This plugin finds and loads the SketchApps plugins (eg, "get_products.rb"). However, these plugins only register themselves for menu items, tools, etc.

Some time later, if the user requests one of these plugins, its class will be instantiated and its main method run. In many cases, this will cause a WebDialog to be created, using a combination of HTML, CSS, and JavaScript code.

All direct user interaction is handled by the dialog. However, it will often notify its plugin about events (eg, mouse clicks). The plugin may then modify the dialog's HTML, invoke JavaScript code, etc.

On occasion, one plugin may communicate with another. For example, clicking one of Report Maker's "edit" links will cause a copy of Product Editor to be run. Subsequently, if Product Editor's "Save Product Info" button is clicked, Product Editor will tell Report Maker to update its data and display.

Note that the dialogs do not communicate directly with each other; all communication is mediated through their respective plugins.

Libraries

gp_misc.rb

pc_misc.rb

  • PC_Misc - module, used (to some degree) by all PC plugins

pe_misc.rb

rm_misc.rb


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: r8 - 07 Mar 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