Overview: Passing Prompt Information Between Workbooks (Subassembly)

Overview: Passing Prompt Information Between Workbooks (Subassembly)

We have added the ability to pass custom information from the L! workbook (local prompts) to the S! workbook (subassemblies). Without that ability, the number of prompts is greater, and the complexity of formulas increases. When the formula complexity increases, it often becomes necessary to create a lookup table. These complex formulas and lookup tables result in products that are less intuitive and more difficult to maintain. This change simplifies the data and improves the flexibility of utilizing prompts for various purposes.

Think of your library data existing in several layers. The top layer is the parent product with its prompts, the second level is the parent subassembly with its prompts, and the third level is the child or nested subassembly with its prompts. Use this enhanced ability to pass prompt values between layers anywhere you need to avoid redundancy and complexity by ‘reusing’ upper-level prompt values in lower levels of the library data structure.

It makes it possible to have a single subassembly that can be used across different libraries (e.g., frameless and face frame). The beauty lies in the fact that the product contains an expression or formula that overwrites the target subassembly prompt value. In contrast, the basic subassembly remains the same between multiple library types.

To make this possible, the program contains a column in the Subassemblies tab of Edit Design Data named “Prompt Values,” or in the Parts List interface - spreadsheet column number 43 on sheet 3. The expression or formula in that cell defines the data that is passed to the prompts for that subassembly.

For example, you may want to set the door swings on two “Base Single Door” subassemblies to match the swing specified by the product level bay swing prompts. Previously this was accomplished with the use of formulas and lookup tables, but those formulas ultimately limited what could be done and sometimes resulted in very complex formulas that were difficult to maintain and diagnose. The complex formulas may now be replaced with prompts data passed to the subassembly from the parent product. This example and another are discussed in further detail in the tutorials: “Tutorial #1: PassingPrompt Information Between Workbooks (Doors)” and “Tutorial #2: PassingPrompt Information Between Workbooks (Face Frames).

Data Definition Format Requirements

The format for the expression in the Prompt Values column of the Subassemblies tab that defines the data passed is as follows.

PROMPT_NAME;PROMPT_VALUE|PROMPT_NAME;PROMPT_VALUE

PROMPT_NAME is the subassembly prompt name that will receive the data passed. It must be the same name, in the same format, as the subassembly prompt name that is will modify. The program looks for a subassembly prompt named the same as the PROMPT_NAME parameter defined here. When it finds that name, it populates it with the value defined in the second parameter (PROMPT_VALUE).

PROMPT_VALUE is the value that you want to be passed to the subassembly. It may be a hard value or the value linked to a defined name. When the program finds a subassembly prompt named identically to the name defined in the PROMPT_NAME parameter described above, this value is populated to that prompt.

Enter the prompt name and the value you want to set for that prompt separated by a semi-colon.  If needed, you may add a second or third name/value pair. Separate multiple prompt data to pass to the S! workbook with a pipe symbol.  Concatenate or attach the various parts of the formula with an ampersand character.

You may also configure subassembly prompts that do not exist at the parent product level. Figure 1 contains an example of this (Lock_Door). It illustrates a data definition expression or formula containing defined name values, hard values, pipe delimiter characters, and the ampersand character.

Figure 2 contains an example of defined names, pipe delimiter characters, and the ampersand character, but no hard values.


Fig. 1



Fig. 2


This same expression format also works when passing information from the S! workbook (subassembly) to the N! workbook (nested subassembly). In that case, all the information above, referring to the parent product prompts, would now refer to the parent subassembly prompts, and all the information referring to the first level of subassembly would now refer to the second level or child (nested) subassembly.

Comparison of Methods

As stated above, this new method of passing data between workbooks significantly simplifies the library data structure. For example, it makes it possible to bypass VLOOKUP tables in many cases. See the figures below to see how this is possible.

Figures 3 & 4 show the previous method of setting the door swing of a Base Single Door subassembly. It involved the use of a VLOOKUP table, acting as an intermediary between the product prompt and the subassembly prompt. This example illustrates a simple lookup table, but the same principle holds true for more complex lookup tables.


Fig. 3


Notice that the value of the subassembly prompt Left_Swing is shown in red, meaning that it is an evaluated formula. Verify that by looking at the VLOOKUP function in the formula bar.


Fig. 4


Figure 5 shows a new method for setting the door swing of a Base Single Door subassembly. It eliminates the complexity of the lookup table in favor of a simple formula to pass the data through to the subassembly prompts.


Fig. 5


Notice that the value of the subassembly prompt Left_Swing is now shown in black, meaning that it is a hard value. Verify that by looking at the formula bar where the parent product prompt value has been populated.

Development History:

The first local prompts passed through to the subassemblies were Width, Height, and Depth, numeric data.

More than just the dimension data was needed, so the program was adapted to pass X origin, Y origin, Z origin, and subassembly Rotation angle. This is numeric data.

There was still a need to pass non-numeric data. The program was again adapted, this time to pass a text string from the Subassembly Comments field.

The Subassembly Comments field was limited because it required that multiple data be concatenated into a single string, passed through, and then parsed out to be of any use. Our developers decided that it should be possible to pass any prompt value through and available for use in the subassemblies and nested subassemblies. This is the change made in build 15.5.1305.

See the articles: “Tutorial #1: PassingPrompt Information Between Workbooks (Doors)” and “Tutorial #2: PassingPrompt Information Between Workbooks (Face Frames)” for more detailed information on how to implement this functionality.


    • Related Articles

    • Tutorial 1: Passing Prompt Information Between Workbooks (Doors)

      This tutorial shows you how to configure a subassembly to pass information between the L! workbook (local prompts), and the S! workbook (subassemblies). This example expands on the overview article "Overview: Passing Prompt Information Between ...
    • Tutorial 2: Passing Prompt Information Between Workbooks (Face Frames)

      This tutorial shows you how to configure a subassembly to pass information between the L! workbook (local prompts), and the S! workbook (subassemblies). The article:  "Overview: Passing Prompt Information Between Workbooks" discusses how the new ...
    • Understanding the Edit Design Data Interface

      The Edit Design Data interface is a spreadsheet editor, similar to Microsoft Excel.  The interface includes tools located at the top of the window. Below the tool icons is a drop-down list of defined names that can be used to locate the cell’s ...
    • Overview & Tutorials: Edit Multiple Prompts from Drawing

      We are working to improve the usability of Microvellum software. Some of our Users have asked for the ability to edit multiple prompt values from the drawing. This boosts the speed at which the program may be used since the prompts do not require ...
    • Save Subassembly to Template Check Prompts (Reference)

      The purpose of this article is to provide a reference for the new Subassembly Save Options interface. This reference applies to Toolbox builds 15.6.2201 and greater. See  Save Subassembly to Template Check Prompts (Overview)  in the Microvellum Help ...
    • Recent Articles

    • Microvellum Foundation Library Release Notes | Build 24.1025

      The following release notes apply to Microvellum Foundation Library build 24.1025. Additions Added new global variable “Remove Stop Dado On Bottom Edge” for wood drawer boxes. Check this option to run the dado through at the bottom of the sub front ...
    • Toolbox Release Notes | Build 24.1.1030.641

      The following release notes apply to Toolbox build 24.1.1030.641 Routing and Profile Fixes Several issues were found with routing and polyline paths: Fig. 1: Horizontal routes off of a part disappearing (left) and appearing correctly (right). When ...
    • Toolbox Release Notes | Build 24.1.1010.641

      The following release notes apply to Toolbox build 24.1.1010.641 Biesse Winstore Fix Several issues with the Biesse Winstore plugin have been resolved: There was an issue that would sometimes occur wherein materials that were intended to stack wound ...
    • Toolbox Release Notes | Build 24.1.1001.641

      The following release notes apply to Toolbox build 24.1.1001.641 HBore Toolfile Fix Fig. 1: The location in the Toolfile UI where the error would occur. There was an issue reported with the functionality of the Horizontal Boring Machine setting in ...
    • Microvellum Foundation Library Release Notes | Build 24.0919

      The following release notes apply to Microvellum Foundation Library build 24.0919 Additions Added 5 new special Wine Rack products and 9 new Wine Rack Insert subassemblies. Products: Master Vertical Wine Rack Corner Frame Master Vertical Wine Rack ...