A bill of materials is the moment a design stops being a picture and starts being a plan for spending money. It lists what to buy, what to make, how many, in what material, to what standard. Get it from a shape and it will be wrong. Get it from a model that carries relationships, and it can be trusted.
A watertight mesh is not a component
The bar most generated geometry is measured against is a closed manifold surface, watertight, no gaps and no holes, every edge joining exactly two faces. It is a real guarantee. It lets a printer decide inside from outside. It is also close to the weakest interesting guarantee available, because it describes one object on its own and says nothing about whether that object belongs in the machine.
A part that is watertight can still have a mating face that is not flat enough, a bolt pattern two millimetres out of step with the part it meets, or no room for the tool that installs the fastener. None of that lives in the shape. It lives in the relationships between shapes, and between shapes and the requirements that produced them. A bill of materials built from shape alone inherits every one of those gaps.
Real geometry you can inspect and build, not a picture of a product. The difference is whether the relationships are stored, or only implied.
What "manufacturable" actually asks for
Before a part earns a line on a bill of materials, it has to survive the rest of the machine. In practice that means the model has to answer, exactly, a set of questions a render never has to:
- Exact surfaces, not triangles. Geometry is held as real surfaces and curves with their mathematical definitions. Where correctness depends on the sign of a number near a boundary, that sign is computed exactly. That matters most where parts touch, which is where assemblies live and where a mesh quietly lies.
- Fits and tolerances. A dimension is not a single number, it is a number with an intent and a range. A clearance fit and a press fit can differ by two hundredths of a millimetre and the model has to hold that difference as a relationship, not round it away.
- Interference measured as volume. Overlap between parts is measured in cubic millimetres, not estimated from bounding boxes. An empty overlap is a first-class answer with a proof, distinct from a computation that gave up.
- Degrees of freedom. The model knows how each part is constrained, including the redundant constraints that make a design overconstrained without anyone noticing.
- Tool and process access. A hole that cannot be reached by a drill, or a fastener that cannot be turned, is caught while it is still cheap to move.
The bill of materials is a projection
Once geometry and relationships live in one model, the bill of materials is not authored separately. It is read off the same graph that holds everything else, the same way the 3D view is. Geometry is one projection of the network; the bill of materials is another.
From that graph, each line comes out with its reasoning attached:
- Made parts carry their material, their exact geometry, and the process that makes them, so a quantity and a cost estimate follow rather than being typed in.
- Standard parts such as fasteners, bearings and seals are recognised as what they are, matched to a catalogue, and counted, instead of being modelled as anonymous solids nobody can order.
- Interfaces record which part meets which, and how. A bolted joint pulls in the bolt, the washer and the nut because the joint knows it needs them.
- Quantities come from the assembly structure, so adding a wheel adds its hub, its bearings and its fasteners in the same move.
Because the bill is a projection and not a document, it does not drift. Change a joint and the fasteners it needs change with it. Nothing has to be remembered by hand, which is exactly the step where hand-maintained bills of materials go wrong.
Traceability, so a number can be defended
A line on a bill of materials should be answerable. Why this material, why this many, why this tolerance. When relationships are stored facts with type and direction, the answer is a query, not an archaeology project.
- A requirement traces forward to the decisions that satisfy it and the tests that verify it.
- A part traces back to the requirement it exists to serve.
- A change traces outward to everything it touches, before it is committed.
That is the difference between a bill of materials that is generated and one that is merely produced. One can be inspected, verified and defended. The other looks finished.
Honest refusal is part of the method
When the model cannot answer a question correctly, it says so and stops, rather than returning an approximation that passes a visual check and fails on a machine. A bill of materials is downstream of a great deal of computation. If any step upstream returns a confident wrong answer, the bill inherits it and spends real money on it.
So the method treats "I cannot verify this yet" as a valid, visible state. It is less satisfying than a green tick on everything. It is also the only version where the number at the bottom of the bill means what it says.