Nate Holt's Blog

August 27, 2016

Understanding, applying, and exploiting AcadE’s Built-in BOM “ASSYCODE” feature

Filed under: Electrical — nateholt @ 4:13 pm

You’re probably used to seeing and using this “Catalog Data” section of AcadE’s various Insert/Edit dialogs. A non-blank CAT attribute value assignment and optional MFG assignment will generate a line item in your AcadE-generated BOM report. But what’s this assembly edit box for?


A non-blank ASSYCODE attribute value assignment can trigger additional BOM “subassembly” information to be pulled into your BOM report. This ASSYCODE assignment can be configured to extend AcadE’s reporting capabilities (even in some unexpected ways).

Let’s illustrate. Here’s a small set of demo catalog entries for main part number “1234” added to a new table “PR” in the AcadE “default_cat.mdb” Access database file. When you insert a “PR” related symbol and then select the “Catalog Lookup” button, AcadE will go to this PR table and figure out what to offer you in a part number selection dialog.


It will end up including the first five entries shown in the database table above. This is because it filters out any row entry that has a non-blank ASSEMBLYLIST field assignment. These filtered-out rows with the non-blank ASSEMBLYLIST field values (starting at the 6th entry in the table above) are interpreted by AcadE as being related to subassemblies and are not the main/base part numbers.

So, selecting the “Catalog Lookup” button displays just the main/base part number records pulled from our “PR” table.


Example 1 – Simple, single catalog part number selection, no ASSYCODE

Select “Catalog Lookup” button and select the bare catalog entry that has no assembly code association. The catalog number “1234” is pulled from the part lookup database record and populates the “Cat” edit box in the dialog. The assembly code edit box remains blank – no value held in the ASSEMBLYCODE field for the selected catalog part number.


Use “Catalog Check” to preview what will be sent to a BOM report:  Just a single line item will output to a BOM report.


Example 2 – Catalog Part number selection (having non-blank ASSEMBLYCODE value)

Select “Catalog Lookup” button and select the second “1234” part number offering, the one that comes in with an added subassembly “A”.  The catalog number “1234” is pulled from the part lookup database record and populates the “Cat” edit box in the Insert/Edit dialog. The record’s assembly code, entered as “&A1234”, lands in the Assemblycode edit box. If the dialog is exited with OK, these two values get pushed to the symbol’s CAT and ASSYCODE attributes.


Use “Catalog Check” to preview what will be available to BOM report. Result: the same first line as before but now additional two part number line items are shown. These are tied to the “&A1234” subassembly code, described here:

The selected main part number deposited code “&A1234” into the Insert/Edit dialog box’s Asmb edit box (and pushed out to attribute ASSYCODE on the symbol on exiting the dialog). Now, when BOM is run, AcadE not only pulls in the description for the main part number from the default_cat.mdb file based upon the CAT attribute value on the symbol, it also finds two more part number entries that need to come in with it based on the ASSYCODE attribute value. These extras are collected by querying the PR table’s ASSEMBLYLIST field for value match on the “&A1234” value now carried on the assembly code edit box value (and ASSYCODE attribute value).


Example 3 and Example 4 – are similar to above. Selecting the main entry that has “SUB-B” (3rd entry) and “SUB-C” (5th entry). The SUB-B selection, with an ASSEMBLYCODE value of “&B1234”, will bring in three additional part numbers into the BOM. The SUB-C entry, “&C1234”, will bring in just one extra part number into the displayed BOM.

Example 5 – Bringing in a combo of Sub-A and Sub-B into the BOM report

A single part number selection can be set up to display multiple assemblies. One way to do this requires that the  assembly entries be duplicated in the database file and assigned a new, common ASSEMBLYCODE value. In the example here the combined A and B assemblies are duplicated and given a new code value of “&AB1234”.


This illustrates the ASSEMBLYCODE of the picked main/base part number entry bringing in the two “Sub-A” entries and the three “Sub-B” entries.


Example 6 – Alternate method for Sub-A and Sub-B combo tied to the main part number

You can get the Example 5 results without having to duplicate records in the catalog database. Just create a new entry in the parts database that has the two subassembly codes separated by a semicolon (;) character.


Example 7 – Adding an existing Assembly reference to any main part number ON-THE-FLY

Let’s dovetail off of Example 5 where we have selected a main part number that automatically brings in Sub-A and Sub-B (using the “$AB1234” assembly code value). Let’s say that we need to include SUB-C on this part number but don’t want to mess around with duplicating a bunch of records in the database.

Just add a semicolon and append the extra assembly code value. Change “&AB1234” to “&AB1234;&C1234” in the edit box. Exit the dialog with OK and the ASSYCODE attribute on the symbol now carries the new combined value. When BOM generated, you’ll see the happy results.


Example 8 – Changing a quantity multiplier for an added Assembly reference ON-THE-FLY

Using the example above, let’s say we need to double the quantities of Sub-A and Sub-B and triple the quantities reported for the Sub-C entry above. Edit the current value of “&AB1234;&C1234” to “2,&AB1234;3,&C1234”. In other words, add a prefix of a “count multiplier” value plus a comma to each assembly code value.


Example 9 – Forcing Assemblies into the BOM without a valid, defined main part number.

AcadE needs to see a non-blank CAT attribute value in order to include a symbol in the BOM report. Even if the CAT attribute value is a dummy value like “-“, a part number that is not defined in our PR table of the parts catalog database file, it will still be extracted into the BOM reporting.

Change the CAT attribute value shown in the Catalog edit box to just a dash character while leaving the existing ASSYCODE edit box value intact. Running the BOM Check results in a blank entry for the main “-“ part number but the assembly information is fully reported.



  1. The Count multiplier is applied to the main count and to all subassembly counts. Compare the original above with the doubled multiplier results below.


B. The total length of the ASSYCODE attribute value (ASSEMBLYCODE field value) is limited to 60 characters (and the Insert/Edit dialog may not currently accept a 60 character input). This means that the technique of using semicolon delimited assembly codes has a limit (and you’ll need to flip to the combined technique of Example 5).

C. You cannot use the comma (,) or semicolon (;) character in an assembly code value. These are reserved for use as shown in Examples 6 and 8.

D. Assembly codes defined in one table of the parts database file are not “visible” to other tables in the file. If they need to be reused in other tables then they will need to be copied into each of the other tables.

E. The codes in the example above all start with the (&) character and tie into the main part number as a suffix. This is not a requirement… it was just done for clarity.

Part 2 – What is “Multiple Catalog” and how is it different from the ASSYCODE feature?

The “Multiple Catalog” button brings up a small dialog that allows up to 99 more part numbers to be applied to the edited symbol.

When the BOM report is run and it encounters a symbol carrying extra part number assignments via “Multiple Catalog”, it reports the normal, main part number first and then treats the extra “Multiple Catalog” entries similar to individual Assembly items.


Key points about Multiple Catalog:

  1. The user needs to enter a main part number before the “Multiple Catalog” button enables.
  2. Up to 99 additional part number assignments. The Sequential Code “List” pulldown let’s user decide which of the 99 slots to use for a part number assignment. Slots begin with “01” and end at “99”. Users generally start at “01” but skips are allowed.
  3. The main part number, manufacturer, and non-blank assembly code values entered into the edit boxes (manually or via catalog lookup) go to attributes CAT, MGF, and ASSYCODE respectively. For the Multiple Catalog entries, the values go to attributes CAT01, MFG01, and ASSYCODE01 if those attributes exist. But most likely they don’t exist, in which case they are automatically attached to the edited symbol as Xdata values. The tag name of the Xdata is the same name as the target attribute but with a “VIA_WD_” prefix. For example, if CAT03 attribute doesn’t exist, the Multiple Catalog value for CAT03 will be output as a value tied to Xdata tag name “VIA_WD_CAT03”.
  4. Multiple Catalog assignments can be pulled from different “tables” in the parts database file (default = “default_cat.mdb”). The desired table name is set in a pull-down on the dialog.
  5. The ASSYCODE feature described in the first part of this document is fully supported for EVERY one of the added Multiple Catalog entries.



1 Comment »

  1. Hi Nate.

    Maybe you could write something abut the pros and cons of using assycode or multicat? When it comes to making the panel drawings there are some differences here…

    Comment by Trond Hasse Lie — September 4, 2016 @ 5:31 am

RSS feed for comments on this post. TrackBack URI

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

Blog at

%d bloggers like this: