Plandroid Help Documentation

The catalog is structured in 3 tiers, just as they are shown in the Design -> Parts catalog tab. The top level are part types, which are the most general categories, and are shown in the topmost window of the Parts catalog (e.g. Flexible Duct). The part type can contain multiple part sub-types, which usually represent one family of parts, and are shown in the middle window of the Parts catalog (e.g. Colour Coded Flexible Duct). The part sub-type can contain multiple parts (e.g. CCF615), which may be different sizes of the same category of part, or completely different parts that belong together in some way.

Catalog Editor Headers
Catalog Editor Headers

Part Categories (Types and Subtypes)

Part types and sub-types are just categories used to organise the catalog, so they only have these properties:

Cells that are not applicable to these rows are shown in the editor with grey hatching.


Each part has its own product code, size, icon definition, connection data, price, and any other information needed by the program (e.g. LFR2525, of size 250x250mm). A part represents the physical object that is taken off a warehouse shelf and used in construction. In the same way, only parts can be placed on the design canvas.

Parts have the following properties:

[1] These settings can be changed individually for each part once it is placed on the canvas. They can also be edited by the user using the context menu in the parts catalog so that the change is always applied.

[2] These settings can be edited by the user for the class of part in the Costing page, but not for individual parts on the canvas. Once edited, the change will always be applied.

Parts Need Unique Product Codes

All product codes in a catalog must be unique. However, if a part needs to appear multiple times in a catalog because it is relevant in different sections, or it appears with multiple different views (top, side, front etc.) this can be achieved by using the same product code with a suffix in parentheses, where the suffix will be removed when viewed in the Costing page. For example, a part can be represented twice in a catalog by using the two unique product codes DBTO and DBTO(B). In the Costing page, these two parts are counted as two instances of a single part (part DBTO), and are therefore counted together. Only the price from the canonical part (DBTO in this case, with no suffix) will be used — any price assigned to the duplicate part is ignored. It is therefore the catalog pricer's responsibility to ensure that the costing is consistent for all duplicate parts so that the catalog is not misleading.

You should always have a canonical version of a part (with no suffix) in the catalog you are using if you are also including a duplicate (with a suffix). If a catalog does contain multiple parts with the same product code (not recommended), or if there is a coincidental product code clash when loading multiple catalogs, the program will detect this and automatically assign unique numerical suffixes (1), (2), (3) etc. to the subsequent parts. Note that if a clash of this type occurs your costing may be incorrect, as the part that is loaded first will be considered the canonical part and its price will be used for all duplicates.

The suffix can be of any length, and multiple suffixes can be used, for example DBTO(Bottom View) or DBTO(B)(1)(Special) are both valid. In the latter case, all suffixes will be removed from the first "(" to the last ")".

Clearly any actual product code that for any reason happens to end in parentheses is not supported and must be modified. A suitable work-around for this is to add a space to the product code after the closing parenthesis, e.g. ") ", so that it is not treated as a duplicate product code.

Note that parentheses are not valid characters for regular expressions and can cause problems when adding product codes to the Automatic Design parts product codes in the Options Settings. For this reason you can also use the tilde (~) as a suffix marker, for example: DBTO~B~.

Each Part Specifies its Own Connection Sizes

Each part definition specifies the number, type, and position of any connections it has. The part itself only needs to specify the size of its connections. There are three ways that the size of a connection can be specified:

Note that the Range and Perimeter size types can only match a Discrete type. They cannot match each other.
Connection sizes can also have a tolerance. Tolerances are additive, meaning that when comparing two connections for a match they can differ by up to the sum of their two tolerances and still connect.

In the catalog file itself and in the Connection Sizes column, the connection sizes are stored as a text string such as 400x400T10 | R:ø150,ø200 | P:ø150 | ø150,ø200,ø250. Here the sizes for each connector in series are separated by a vertical bar (|), and multiple discrete sizes for each connector can be listed, separated with a comma. Rectangular sizes are specified with two numbers joined with an x, and circular connection sizes are indicated with a diameter symbol (ø) (or you can use d). A tolerance value is indicated with a T suffix, and an R: and a P: stand for a range and a perimiter definition respectively.

It is usually much easier just to edit the connection sizes in the dedicated Connection Sizes view of the catalog editor.

Some Parts Require Additional Function Data

Function data provides extra information for certain parts that require it, and only those parts can have Function Data specified. There are five types of function data:

The function data is stored in a compact text form in the Function Data grid column, but it is often easiest to edit it in the dedicated Function Data editing panel along the bottom of the window. The editing panel is just a different view of the same data.

Parts Can Add Other Related Parts

A part can define other parts that should be added with it when it is placed on the design canvas, for example the matching condenser unit for a particular fan coil unit. A part to be added is specified by its product code (if the part is not found in the current catalogs, the part is not added and no warnings are given). The application will recognise and avoid circular dependencies - if a part tries to add one of its own ancestors, that addition will be skipped. Therefore parts which always go together can each be defined to add each other without problems. For example, a supply starter fitting can add its matching return fitting, and that same return fitting can itself add its matching supply fitting. Whenever one of these two parts is added, its matching pair will also be added.

An added part can be given values X and Y that specify a distance in mm that the added part should be placed away from the parent part (distance to the right is +x, and distance down is +y). In Front specifies if the added part should be displayed on top of the parent part (true) or underneath it (false). Snap controls if the added part will automatically attempt to snap-to any compatible connections within snapping range on their parent part before being added to the canvas.

The Condition setting specifies a code, specific to a manufacturer, that can define a rule that must be satisfied for that part to be added. The value may be prefixed with ! to indicate that the value must not be true for the part to be added.