Assemblies and bill of materials
The Legend and bill of materials page 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 → Legend and BOM. 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.

Create or correct a recipe
- Confirm the class name, description and unit. An uncoordinated rename can create a new grouping key.
- Open the class's BOM editor. A class with no recipe is valid, but contributes no lines.
- Add each part with a strictly positive quantity and a unit. Enter a catalog part number to inherit its name, cost and labour hours.
- Leave cost or hours blank to follow the catalog; a value entered in the recipe overrides the catalog value for that line.
- Save at the project tier for a local exception. Publish to the organization when the recipe should serve other authorized projects.
- 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.
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.