Skip to content

Parts

A part is the atomic unit in simple-plm — anything you buy, fabricate, or assemble that you want to track by a unique identifier. It can be a 10-kΩ resistor, a CNC’d bracket, a sub-assembly, or a finished product. Everything else (BOMs, ECOs, releases) refers back to parts.

Part numbers

Part numbers (PNs) are the primary key. They must match this shape:

^[A-Z0-9][A-Z0-9-]{2,49}$

In plain English: start with an uppercase letter or digit, then 2–49 more uppercase letters, digits, or hyphens. So R-10K-0603, PCB-001, and ASSY-FINAL-V2 are all legal; pn-1 (lowercase) and R (too short) are not.

Revisions

Every part has a free-form revision string. Semantic conventions like A, B, A.1 work, as do date-based or commit-hash schemes. simple-plm doesn’t enforce a particular system — pick one with your team and stick to it.

Attributes and attachments

Beyond PN and revision, a part has:

  • description — short human label.
  • attributes — free-form key/value map for things like value, tolerance, package, finish, weight.
  • attachments — files in plm-data/parts/<pn>/attachments/ (datasheets, 3-D models, drawings).

On disk

plm-data/parts/R-10K-0603/part.yaml
pn: R-10K-0603
revision: A
description: 10 kΩ resistor, 0603, 1%
attributes:
value: 10k
tolerance: 1%
package: '0603'