Finding similar parts
Before you model a new part, check whether one like it already exists. TeamCraft compares the shape of 3D models – no AI, no training data, the same answer every time – and lists parts of similar shape and size with a reason you can check.
Where you see it
- Revision page → Similar parts (below Files): up to six parts with a score, the matching file and a one-line explanation, e.g. extents 118 × 40 × 8 vs 120 × 40 × 8, shape distribution 94 % similar. On a brand-new part (only revision A, in work) the section is called Similar existing parts: if one fits, reuse it instead of creating a new item. It is a card on the page, not a pop-up: it appears whenever the revision has a file it can compare, and stays hidden otherwise. Right after Items → New item with a STEP or mesh file the card first says Comparing the shape … reload the page in a moment – the page does not refresh itself, reload it once the comparison is done.
- Desktop app: the revision overview has a Compare the shape in the browser button that opens this card in the web UI; the app itself shows no list.
- REST API:
GET /api/v1/items/{number}/revisions/{code}/similar(REST API). - AI assistants: the MCP tool
find_similar_parts(MCP server);find_duplicate_filesis its sibling for byte-identical copies.
The comparison needs a 3D model with a preview: STEP, a mesh (STL, OBJ,
PLY, OFF, 3MF, AMF, glTF/GLB, 3DS), an NX part (.prt with its JT
lightweight representation), a CATIA V5 part (.CATPart with its
visualisation data) or a Fusion design (.f3d with its display scene).
Other native CAD files are compared through
their STEP export – attach one. NX assemblies are not compared (they hold no
shape of their own), and neither are point clouds. Simulation result files (VTK, VTU, VTP, CalculiX FRD) have a 3D
preview too and are currently
compared like parts.
How it works
When a 3D file is attached or checked in (or first shown), the preview process computes a small shape signature of its mesh, once per file content:
| Part of the signature | What it is |
|---|---|
| Principal extents | edge lengths of the tightest box around the part, largest first – independent of how the part lies in the file |
| Surface area, volume | the volume only counts when the mesh is watertight; B-rep exports often are not, then it is left out |
| Shape distribution (D2) | histogram of the distances between 32 768 random point pairs on the surface, relative to the box diagonal – a fingerprint of the form that ignores position, rotation and size |
| Triangles | the size of the mesh |
Two parts are compared with
- shape = 1 − ½ · Σ |difference of the D2 histograms| (100 % = same form),
- size = exp(−2 · mean |ln(extent ratio)|) over the three extents (100 % = same size; 5 % larger in every direction gives about 90 %, twice the size about 25 %),
- score = shape × size.
Hits below 50 % are not shown; each item appears once (its best file), and only its latest revision counts. Units are the file’s model units (usually millimetres); a part exported in inches is therefore “smaller”.
Ignore scale (ignore_scale=true in the API and the MCP tool) compares
the proportions (middle and smallest extent relative to the largest) instead
of the extents, so scaled variants – M6 and M8 versions of a part – score
like copies.
Everyone who can sign in sees the hits, exactly like the item search: items of a restricted project group appear only for its members and administrators – for everybody else they are neither shown nor counted, even with identical file content.
Limits
The signature looks at the outer form. Parts that differ only in small features (a hole more, a different chamfer) score high – that is the point of the search, but it is no proof that they are interchangeable. Mirror images score as the same shape. Very different tessellations of the same part (a coarse STL vs a fine STEP) agree on extents and differ a little in the shape distribution.
A STEP file with a partial preview (some faces use geometry the kernel cannot tessellate, see Files) gets no signature: area, volume and shape distribution of a model with holes would compare it wrongly. It is neither searched from nor found as a hit; the similar-parts panel says why.
The search is fast for large vaults: an indexed prefilter on the extents (within a factor of three) or proportions keeps at most 2000 files, which are scored in memory.
Files stored before this feature get their signature in the background when
their revision page or 3D view is first opened (the page then says reload in a moment), or all at once with
teamcraft vault signatures (see
Operations; --convert also converts files that
were never previewed).