Class Structure in the PCB

Old Content - visit altium.com/documentation

Altium Designer already provided high-quality, robust support for generation of classes (Component and Net) when transferring the design from the Schematic to PCB. This support is taken to the next level, with the ability to define the generation of a hierarchical structure of classes in the PCB document. Essentially, this enables you to group together, at the sheet-level, classes of components and/or nets into a parent class generated from that sheet, which itself can be a child of the parent class above, all the way up to the top-level sheet in your design, which in essence is the source for the top-level generated parent class (or 'super class') – the head of the class structure hierarchy. Each of these generated parent classes is referred to as a Structure Class. Structure Classes not only allow for the reproduction of the schematic document structure within the PCB domain, for advanced navigation, but can also be used in logical queries, for example when scoping design rules, or filtering.

Structure Class Concept

A Structure Class is a special type of class that can hold, as its members, any type of class:

  • Net Classes
  • Component Classes
  • Layer Classes
  • Pad Classes
  • From To Classes
  • Differential Pair Classes
  • Design Channel Classes
  • Polygon Classes
  • Other Structure Classes.

By automatically generating a Structure Class from each schematic sheet in the project – containing components and/or nets – when transferring the design to the PCB, the structure of the project can be faithfully represented on the PCB side.

A tidy means by which to essentially 'compartmentalize' a schematic sheet's-worth of components and nets, the Structure Class object is the driving force behind hierarchical class structuring in the PCB. Using Structure Classes, a hierarchy of any depth can be built. Primarily the structure is defined by the hierarchical nature of the schematic source documents, but you can add, manage and delete Structure Classes directly on the PCB side should you wish.

Bringing class hierarchy to the PCB - the concept of Structure Classes allows for a faithful reproduction of the project hierarchy, with each Structure Class essentially
representing a single schematic sheet, with generated sub-classes of member components and/or nets thereon.

The Structure Classes reflect the design hierarchy – of the schematic sheets themselves. In terms of component and net classes, membership within a particular Structure Class will of course depend on the options specified when generating Component and Net Classes from the source schematic sheets.

Tailor membership of Structure Classes to suit your needs. Remember that although the project hierarchy can be brought across in an automated fashion, the initial membership will be Component Classes and/or Net Classes and/or other Structure Classes. Use existing Structure Classes, or create new ones within the overall hierarchy, to organize other class types for the PCB document as required.

Automatic Generation of Structure Classes

The automatic generation of Structure Classes from the schematic sheets in a PCB design project is defined on the Class Generation tab of the Options for Project dialog (Project»Project Options). To generate a Structure Class from a source schematic sheet in the project, simply enable its associated Generate option, in the Structure Classes column.

Specify which schematic sheets are to have a Structure Class generated from them when the design is synchronized with the PCB document.

Each automatically generated Structure Class is named using the designator of the Sheet Symbol/Device Sheet Symbol by which the corresponding schematic sub-sheet is referenced. The exception to this is the top-sheet, the corresponding Structure Class of which is named using the filename for that sheet.

Comparator and ECO Generation Support

Synchronization between the source schematic documents and the PCB is made possible through Altium Designer's Comparison engine, with detected differences addressed by performing modifications, implemented through Engineering Change Orders (ECOs). In support of Structure Classes, the Comparator and ECO Generator have been enhanced accordingly.

For detection of differences associated with Structure Classes, a new section has been added to the Comparator tab of the Project Options dialog – Differences Associated with Structure Classes.

Additional comparison tests for Structure Classes.

Supporting the change orders required to ensure synchronization, a corresponding new section has been added to the ECO Generation tab of the Project Options dialog – Modifications Associated with Structure Classes.

Additional modification types for Structure Classes - used to generate the applicable change orders to maintain synchronization between source schematics and PCB. An example ECO is shown to illustrate
addition of Structure Classes to the PCB.

Manual Definition of Structure Classes

As with other types of class in a PCB document, you are able to create and manage Structure Classes in a manual fashion, directly from within the PCB document. This can be done from the PCB panel, while browsing the class structure hierarchy, or from the Object Class Explorer dialog (Design»Classes). Considering the latter here, Structure Classes are defined under the Structure Classes folder, with familiar commands on the right-click menu to add, rename or delete commands as required. For a new or existing Structure Class, define its members as required. These can consist of any of the class types supported for use in the PCB design.

Create and manage your Structure Classes as you would any other type of class, directly in the PCB from the Object Class Explorer dialog.

Browsing the Class Structure Hierarchy

Main article: Browsing Structure Classes in a PCB

The class structure hierarchy can be browsed from within the PCB panel. Simply set the mode for the panel to Structure Classes. The top region of the panel populates with a list of all Structure Classes currently defined for the PCB document – those auto-generated from the schematic sheets, as well as those defined in the PCB itself. As you select an entry in this list, the subsequent region populates with all classes that are defined members of that selected Structure Class. Clicking on an entry in this list will populate the final region of the panel, with all defined members of that selected class.

As you click on entries in the panel, corresponding filtering will be applied to the workspace, presenting the member objects accordingly.

Standard Ctrl+click and Shift+click controls are available to select multiple entries in a list region.

Set the PCB panel's mode to Structure Classes to browse the overall class hierarchy for the PCB document. The display in the main design window will change to reflect the filtering applied
as you click on an entry (or entries) in the panel's various regions.

As with other browsing modes for the PCB panel, various commands are available from the right-click context menu including those to access associated properties or editing dialogs. New Structure Classes can be added from the panel, and existing Structure Classes can be deleted.

Using Structure Classes in Logical Queries

Logical queries are the fundamental driving force when targeting objects in a design. They can be used when scoping design rules to constrain the design in a specific (and required) way, or when filtering objects in the design workspace. The Query Language has been enhanced to cater for the use of the Structure Class when building logical query expressions. The following keyword has been added to the PCB Functions – Membership Checks section:

InStructureClass – checks whether the object class is in the specified Structure Class.

This keyword can also be used when constructing a query with which to scope a design rule. It is supported for use in both the Query Helper dialog and the Query Builder dialog.

An example clearance rule between member objects contained within different Structure Classes.

Use this keyword when creating a logical query to be used in a filter expression – to quickly filter all low-level member objects descending from within the specified Structure Class.

Quickly filtering all objects belonging to a particular Structure Class within the workspace.

You are reporting an issue with the following selected text and/or image within the active document: