# FreeCAD-library: a 5 GB community parts repository with a macro browser built in

> FreeCAD-library is a community-maintained collection of parametric 3D parts for FreeCAD, stored as .FcStd and STEP files. At roughly 5 GB, the download takes time; a PartsLibrary macro handles the browsing and insertion from inside FreeCAD.

**FreeCAD/FreeCAD-library** — A library of Parts for FreeCAD. WARNING - This library is huge. It might take a long time to download and make the addons manager unresponsive for many minutes.

- Repository: https://github.com/FreeCAD/FreeCAD-library
- Stars: 2,003 · Forks: 1,251
- Language: HTML
- License: NOASSERTION
- Published: 2026-10-11 · Updated: 2026-10-11 · Language: en
- Canonical page: https://hysenlabs.com/projects/freecad-freecad-library

## A community-contributed parts collection, not an official part of the FreeCAD project

FreeCAD-library is a repository of 3D parts built and maintained by the community of FreeCAD users. The README states it is not part of the FreeCAD project itself, though it was made with the aim of eventually serving as a parts repository within FreeCAD. Users can browse the existing collection and insert parts into FreeCAD models through the PartsLibrary macro, or add to it by submitting a pull request with new part files.

The repository is organized into directories by category. Top-level folders cover Mechanical Parts/, Electrical Parts/, Electronics Parts/, Architectural Parts/, Hydraulics/, HVAC/, Robots/, Industrial Design/, Medical Parts/, Logistics/, Pipes and tubes/, Symbols/, Topography/, Computing/, DummiesAndSculptures/, Electro-pneumatic/, Sports/, and Generic objects/. Parts are available in .FcStd and .stp formats, and optionally in .stl.

An alternative for sourcing community CAD parts is GrabCAD, which hosts a platform-agnostic library in STEP and other exchange formats. Files from GrabCAD require a separate manual import step into FreeCAD. FreeCAD-library takes a different approach: the PartsLibrary macro opens a browser dock inside FreeCAD, and a part is inserted by double-click rather than a file import dialog.

## Approximately 5 GB in size; the addons installer can become unresponsive for many minutes

The repository description warns that the library is huge and can make the addons manager unresponsive for many minutes during download. The README gives the size as approximately 5 GB. That size means 3 separate access paths are documented to work around the problem.

The first path is the FreeCAD addons installer, where the library appears under the name 'parts_library'. It is the most direct path but carries the full 5 GB download weight, which is why the addons manager can become unresponsive for many minutes while the transfer is in progress. The second is manual download and installation, which bypasses the addons manager's interactive progress entirely. The third is the BIM addon's Library tool, which has an experimental online option that accesses the repository without requiring a local copy.

For the manual path, the Windows 11 install location is C:\Users\%username%\AppData\Roaming\FreeCAD\Mod\parts_library, also expressed as %appdata%\FreeCAD\Mod\parts_library. The README gives no equivalent path for macOS or Linux. The word 'experimental' is the only qualifier the README attaches to the BIM addon's online mode, with no explanation of what it omits, whether thumbnails are previewed before download, or whether inserting a part streams the file or downloads the full local copy first.

## Manual installation: 2 Python console commands locate the modules and macros folders

Manual installation starts in FreeCAD's Python console, opened from View → Panels. Two commands give the folder paths needed for installation. The first prints the modules folder:

```python
App.getUserAppDataDir()+"Mod"
```

The second prints the macros folder:

```python
App.getUserMacroDir()
```

After recording both outputs, download the repository as a ZIP file using the download button on the GitHub page, extract it, and rename the resulting FreeCAD-library folder to parts_library. Move that renamed folder into the modules folder path. Then copy PartsLibrary.FCMacro from inside the parts_library folder to the macros folder. Restart FreeCAD after completing those moves.

Once installed, the addons manager recognizes parts_library as already present. To start the library browser, open Macro → Macros..., select PartsLibrary.FCMacro from the list, and execute it. If the macro asks for the parts folder, enter the path where parts_library was placed in the modules directory.

## The PartsLibrary macro opens a tree dock; double-clicking a part inserts it into the active model

Executing PartsLibrary.FCMacro opens a browser panel docked on the right side of the FreeCAD window. The panel presents a tree that reflects the repository's directory layout. Double-clicking a part in the tree inserts it into the currently active model. No search or filter feature is documented in the README, so finding a specific part means navigating the category tree manually.

Adding new parts to the local copy and pushing them upstream are both handled from within the macro, though the push step depends on the python-git package. Without that package, the sync feature in the macro's interface is unavailable. The macro provides a config dialog where a fork URL can be entered; after pointing the config to a fork, models saved locally can be pushed to that remote.

A pull request submitted from a fork to the main repository then lets a community member review and decide whether to merge the contributed models. The README notes that write access to the main repository is available to committed contributors by request through the FreeCAD forum at forum.freecad.org/viewtopic.php?f=19&t=4205.

## Contribution requirements: .FcStd and .stp formats, parametric geometry, and ASCII-only file names

Accepted file types for contributions are .FcStd, which preserves FreeCAD's editability, and .stp, the neutral exchange format for other CAD applications. An .stl file is welcome alongside those but not required; GitHub renders .stl directly in the browser, which helps reviewers see the shape without opening the file.

The geometry of each part should be driven by parameters so that dimensions remain adjustable without rebuilding the model from scratch. The README also asks that parts be kept as simple as possible. The directory structure is organized by part family rather than a single catch-all folder, and new contributions belong in the subdirectory that best matches the part's type or discipline.

ASCII-only file names are required. The README marks this in capital letters as a hard constraint. Any file name containing a character like é, ñ, or ü would conflict with file systems and tools that do not handle non-ASCII paths cleanly. The author's name should appear in the .FcStd file properties; since attribution is tracked per commit in the git history rather than embedded in a standardized file header, the property field is the one place a downstream user can check before using a part in production.

## The macro's push feature calls python-git; without it, sharing from the macro is unavailable

The macro's sharing capability depends on python-git being present in the Python environment. Without that package, the sync step inside the macro is unavailable. The README identifies python-git as the requirement and does not describe an alternative.

The workflow begins with forking the main repository on GitHub. Once a fork is created, its URL goes into the macro's config dialog. After saving models locally through the macro, those models can be pushed to the fork. A subsequent pull request, submitted through GitHub, puts the contribution in front of a community reviewer.

Contributions must reach the official library through this pull request process rather than directly. Anyone interested in ongoing write access to the main repository without per-contribution pull requests can request it through the FreeCAD forum thread the README links to. The README calls this the appropriate channel for long-term contributors, not the GitHub issue tracker.

All Parts are licensed under CC-BY 3.0, with attribution per part found in the commit history, and the last push was on 2026-09-29. The repository also carries a second file, LICENSE-Code, at the root, which the README does not describe or link to in any section.

## No macro search, no version scheme for the parts, and no documented minimum FreeCAD version

The PartsLibrary macro interface provides no search field; browsing means expanding folders in the category tree one by one. With 18 top-level directories spanning mechanical, electrical, architectural, computing, medical, and specialty domains, finding a specific bolt standard, electronic component footprint, or pipe fitting requires knowing which category it falls under before opening the macro.

Nothing separates the state of a part contributed years ago from one added recently, other than the git history itself. A part updated by another contributor will change silently the next time the library is pulled, with no notification in the library itself. For any project that requires stable, reproducible assemblies, this is a meaningful constraint because there is no mechanism to pin a specific snapshot of the library.

A minimum FreeCAD build requirement is absent from the documentation, as is any statement about which Python build is expected or whether certain part categories depend on specific FreeCAD workbenches. Someone running an older FreeCAD build and someone on a current one see the same README, and neither can determine from it whether any particular part was built for capabilities that arrived in a newer FreeCAD.

## Conclusion

Use FreeCAD-library if you work with FreeCAD regularly and want a large catalog of community-contributed parts available inside the application without searching the web. The 5 GB download is real and the addons installer can become unresponsive for several minutes, so plan for a slow connection before starting. Skip it if you need version-pinned parts for a reproducible assembly or parts outside FcStd and STEP format. Before using parts in a production project, check the commit history for the original author's name, since attribution is tracked per commit rather than embedded in the part file itself.

## FAQ

### What is FreeCAD-library?

FreeCAD-library is a community-maintained repository of 3D parts for FreeCAD, stored as .FcStd and STEP files and organized by category. It is not an official FreeCAD component; a macro called PartsLibrary.FCMacro creates a browser dock inside FreeCAD for inserting parts into a model by double-click.

### How do I install FreeCAD-library?

The simplest path is the FreeCAD addons installer, where it appears as 'parts_library', though the library is around 5 GB and can make the installer unresponsive for several minutes. For manual installation, run App.getUserAppDataDir()+"Mod" and App.getUserMacroDir() in the FreeCAD Python console to find the target folders, rename the downloaded folder to parts_library, move it to the modules path, and copy PartsLibrary.FCMacro to the macros path.

### Can I access FreeCAD-library without downloading all 5 GB?

Yes. The BIM addon's Library tool has an experimental online option that accesses the library without a local download. The README calls this option experimental and does not describe its limitations.

### How do I contribute parts to FreeCAD-library?

Fork the repository on GitHub, add your part files in the appropriate subdirectory in both .FcStd and .stp formats, then submit a pull request. Parts must be parametric, use only ASCII characters in file names, and include the author's name in the .FcStd file properties.

### Does FreeCAD-library have a search feature?

No search feature is documented in the README. The PartsLibrary macro opens a tree browser that mirrors the repository's directory layout, and finding a part means navigating that tree manually by category.

## Sources

- [FreeCAD/FreeCAD-library on GitHub](https://github.com/FreeCAD/FreeCAD-library)
- [Issues](https://github.com/FreeCAD/FreeCAD-library/issues)
- [README](https://github.com/FreeCAD/FreeCAD-library/blob/master/README.md)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/freecad-freecad-library
