Skip to main content
PlanRelevé Wiki

Assemblies and bill of materials

The bill of materials (BOM) links a symbol class to a parts recipe. PlanRelevé includes 101 built-in symbols, 101 library assemblies and a shared catalog of 10,665 bilingual parts; the runtime also retains 30 embedded fallback recipes. Your recipes and prices can override them without changing the common library.

Access, path and counted data

Path: project → Dashboard, the Bill of materials (BOM) section to read it; project → EstimateEdit recipes to change it. There is no longer a "Legend and BOM" page: classes are created in the Legend symbols (B) tool on Plan review, and their recipes are edited on the estimate page. A viewer may inspect; an editor or project administrator creates classes and changes recipes. See Symbols and manual placement to create a class from a legend scan, plan box or icon.

The BOM uses only confirmed and manual detections on active sheets. Candidates and ignored items never enter materials or the estimate. A disabled sheet is excluded. Review statuses before pricing in Review and quality.

Legend classes and the BOM recipe editor.
Legend classes and the BOM recipe editor.

Create or correct a recipe

  1. Confirm the class name, description and unit. An uncoordinated rename can create a new grouping key.
  2. On the Estimate page, select Edit recipes, or click the class chip on a BOM line. A class with no recipe is valid, but contributes no lines.
  3. Add each part with a strictly positive quantity and a unit. Enter a catalog part number to inherit its name, cost and labour hours.
  4. Leave cost or hours blank to follow the catalog; a value entered in the recipe overrides the catalog value for that line.
  5. Save at the project tier for a local exception. Publish to the organization when the recipe should serve other authorized projects.
  6. Open the dashboard or estimate and verify the aggregated quantity, material cost and labour hours.

Three-tier precedence

Resolution always follows project → organization → shared library. This applies to recipes and referenced parts. A project recipe, even an empty one, blocks lower tiers. The imported library covers 101 classes; the runtime also keeps 30 embedded recipes that can seed the editor when the shared library is not yet imported or a matching recipe is absent.

Each class count multiplies every recipe quantity. Lines with the same name and unit consolidate, while their source classes remain visible. Hiding a shared part removes it from lists and pickers, but a recipe that still names its number continues to resolve and price it.

Attribute variants and surfaces

Two assembly names carry a special meaning:

  • class::wattage_w=1000 prices an attribute value with its own parts and hours. Without a variant, each confirmed value inherits the class recipe but still forms its own bill-of-materials line. See Attributes.
  • class::area prices a surface per square foot. The net area of a zone, voids deducted, then feeds the bill of materials with its provenance.

A valid supplier quote price applies on top of the catalog without changing the recipe: the line simply carries the matching badge.

Missing prices, limits and recovery

A line without cost remains visible with a missing cost; PlanRelevé does not invent a price. Blank hours likewise mean no labour value for that line. Correct the part at the appropriate catalog tier, or enter a recipe-specific value.

If the BOM is empty, check in this order: active sheets, confirmed/manual statuses, exact class-name match, non-empty recipe and positive quantities. If an incorrect override persists, delete or reset the project recipe to reveal the organization or shared value. Then generate a new deliverable from Exports; an earlier export remains a snapshot.

See also