Skip to main content

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)

Source distribution for netbox-cadplan 0.2.1
File Size Uploaded
netbox_cadplan-0.2.1.tar.gz 76.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for netbox-cadplan 0.2.1
File Interpreter ABI Platform
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 log

Release 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

Release history Release notifications | RSS feed

This release

0.2.1 This release

2 release files

0.2.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page