netbox-cadplan
NetBox plugin for visual floor-plan management. A plan is attached to a
NetBox Site (required) and, optionally, to a Location within that site,
based on an imported DXF/DWG file. The plan is split into zones associated
with locations (descendant Locations of the plan's Location, or the whole
site if no Location is specified), with the SVG of each location displayed
in a dedicated tab on its NetBox page.
Compatibility
| Package | NetBox | Python |
|---|---|---|
| 0.2.x | 4.6.0 – 4.6.99 | ≥ 3.10 |
| 0.1.x | 4.6.0 – 4.6.99 | ≥ 3.10 |
Installation
1. Install the package
pip install netbox-cadplan
# or from source:
pip install git+https://github.com/SelfSimon/netbox-cadplan.git
2. Enable the plugin in NetBox
Add the plugin to configuration.py (or configuration/plugins.py depending
on your setup):
PLUGINS = [
# ... other plugins
'netbox_cadplan',
]
3. Run migrations and restart NetBox
python manage.py migrate netbox_cadplan
sudo systemctl restart netbox netbox-rq
Usage
- Import a DXF/DWG file to create a Plan, linked to a Site and optionally a Location, and pick the drawing layer that defines the floor's closed boundaries.
- The plan is automatically split into zones matched to Locations descending from the plan's scope. Each zone can be associated with a Location from the plan's own tab.
- Each Location gets a dedicated tab showing the SVG of its zone.
- Object placement: device types with a configured plan shape appear in an "Objects to place" list and can be dropped onto a zone, then dragged, rotated, and repositioned interactively on the canvas.
- Position by distance: move a placed object to an exact offset instead of dragging it by hand.
- Selecting an object highlights it and shows its properties (location, rotation, distances) in a side panel.
- Center view / fit-to-view controls keep the canvas readable regardless of the plan's real-world size, with theme-aware colors for labels.
- Plans can be re-exported to DXF once zones and layer selection are set.
Configuring device type plan shapes
To make a device type placeable on a plan, configure its shape (width, height, rotation handling) from the device type's edit page — devices without a configured shape show up as "unplaceable" in the plan editor with a direct link to that configuration screen.
License
MIT — see LICENSE.
Contributors
See CONTRIBUTORS.md.
Developer setup
Quick setup for contributors — creates a virtualenv, installs development
dependencies and installs the pre-commit git hooks.
PowerShell (Windows):
python -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install --upgrade pip
pip install -e ".[dev]"
pre-commit install
pre-commit run --all-files
POSIX (macOS / Linux):
python -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
pip install -e '.[dev]'
pre-commit install
pre-commit run --all-files
If you prefer automation, run scripts/bootstrap.ps1 on Windows or
scripts/bootstrap.sh on POSIX systems to perform these steps.
Metadata
Release files for netbox-cadplan 0.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| netbox_cadplan-0.2.1.tar.gz | 76.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| netbox_cadplan-0.2.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 161.4 kB
Release files / netbox_cadplan-0.2.1.tar.gz
| Download URL | netbox_cadplan-0.2.1.tar.gz |
|---|---|
| Size | 76.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8c088905e5a36a6904613f5220f87c7fc5ee1a0cdd3c636f8945f663cf780989
|
|
BLAKE2b-256 checksum How to use checksums |
88e1ca8f7c3c294fc2017bd87bd88ad59f8227ce60f3446418436153fc2173fc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 18, 2026.
Transparency logRelease files / netbox_cadplan-0.2.1-py3-none-any.whl
| Download URL | netbox_cadplan-0.2.1-py3-none-any.whl |
|---|---|
| Size | 85.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9634f2a5bad85c603bbbc800a6399c29a7fe45b4a996d57f25cf5473b0cb350f
|
|
BLAKE2b-256 checksum How to use checksums |
c60b07fbf7f77272754563d70571793b0e20fafb07b2f736b2a044db74ad16af
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 18, 2026.
Transparency log