Add your description here
Project description
APS Viewer SDK
Lightweight Python helper to render APS models in the browser with powerful built-in plugins for visualization and interaction.
Features
Core Viewer Capabilities
- 🎨 Display Revit models in the APS Viewer with full 3D/2D support
- 🔄 View selector dropdown to switch between available 3D and 2D views
- ✨ Highlight and color elements by
externalIdfor visual analysis - 🔌 Extensible plugin system for custom visualizations and interactions
Built-in Plugins
The SDK includes three powerful plugins (from aps_viewer_sdk.plugins) for extending viewer functionality:
1. Element Highlighting
Programmatically highlight and color model elements for visual analysis and QA/QC workflows.
Color-code elements by properties, categories, or custom logic
2. OverlayMeshes Plugin
Add custom 3D geometries (boxes, cones, spheres, cylinders) overlaid on your model for context and visualization.
Add trees, furniture, equipment, or any custom 3D objects to your scene
Key Features:
- Add primitive shapes:
add_box(),add_cone(),add_sphere(),add_cylinder() - Position meshes at specific 3D coordinates
- Customize colors, opacity, and orientation
- Combine shapes to create complex objects
3. Draw2DCircles Plugin
Enable interactive circle markers on 2D views for annotations and markup.
Click-to-place circle markers on floor plans, elevations, and sections
Key Features:
- Interactive placement by clicking on 2D views
- Customizable radius and color
- Perfect for marking inspection points, issues, or locations of interest
- Works exclusively on 2D views (floor plans, elevations, sections)
Use Cases
- QA/QC filtering and visual inspection - Color-code elements by validation status
- Pre-processing for automation APIs - Visualize data before processing
- Context visualization - Add trees, furniture, or site elements to architectural models
- Interactive markup - Annotate 2D drawings with circle markers
- Integrations with Model Properties API, Model Derivative, Data Exchange API, and AEC Data Model API
Installation
For Users
pip install aps-viewer-sdk
Or with uv:
uv add aps-viewer-sdk
For Development
Clone the repository and install dependencies:
git clone https://github.com/AlejoDuarte23/aps-viewer-sdk.git
cd aps-viewer-sdk
uv sync
uv sync --group test
Quick Start
Basic Viewer
from aps_viewer_sdk import APSViewer
from aps_viewer_sdk.helper import get_2lo_token
token = get_2lo_token("CLIENT_ID", "CLIENT_SECRET") # 2LO; 3LO tokens work too
viewer = APSViewer(
urn="urn:...", # ACC URNs work too
token=token,
views_selector=True,
)
viewer.show()
Using Built-in Plugins
from aps_viewer_sdk import APSViewer
from aps_viewer_sdk.plugins import OverlayMeshes
from aps_viewer_sdk.helper import get_2lo_token
token = get_2lo_token("CLIENT_ID", "CLIENT_SECRET")
viewer = APSViewer(urn="urn:...", token=token, views_selector=True)
# Add 3D tree meshes (see example #2)
trees = OverlayMeshes(scene_id="trees")
trees.add_box((0, 0, 5), size=(2, 10, 2), color="#8b5a2b")
trees.add_cone((0, 0, 15), radius=6, height=8, color="#2e8b57")
viewer.add_plugin(trees.spec())
viewer.show()
Examples
The example/ folder contains comprehensive Jupyter notebooks demonstrating all features.
Setup for examples:
# Clone the repository
git clone https://github.com/AlejoDuarte23/aps-viewer-sdk.git
cd aps-viewer-sdk
# Install dependencies including examples group
uv sync --group examples
# Create .env file with your APS credentials
cp .env.example .env
# Edit .env with your CLIENT_ID, CLIENT_SECRET, TEST_URN
1. Highlight Elements in Scene
example/1 - highlight_elements_in_scene/color_elements_from_scene.ipynb
- Upload and translate Revit models using
aps_automation_sdk - Extract element metadata and external IDs
- Color-code all elements with random colors
- Perfect for QA/QC and visual analysis workflows
2. Add 3D Meshes to Scene
example/2 - add_meshes_to_scene/add_trees_to_scene.ipynb
- Use the OverlayMeshes plugin to add custom 3D geometries
- Create stylized trees with boxes (trunks) and cones (canopy)
- Position and style custom meshes in 3D space
- Demonstrates combining primitive shapes into complex objects
3. Add 2D Circle Markers
example/3 - add_circles_2d_view/add_circles_to_2d_view.ipynb
- Use the Draw2DCircles plugin for interactive 2D annotations
- Click-to-place circle markers on floor plans and elevations
- Customize circle appearance (radius, color)
- Ideal for markup and inspection workflows
Each notebook includes detailed explanations, parameter documentation, and use case examples.
Each notebook includes detailed explanations, parameter documentation, and use case examples.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file aps_viewer_sdk-0.1.1.tar.gz.
File metadata
- Download URL: aps_viewer_sdk-0.1.1.tar.gz
- Upload date:
- Size: 70.5 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d46fe2f8f30c8e205812a3365437dbe4715161120a79737d786b4ee1af62d09a
|
|
| MD5 |
505ccbff5357e5caa2406e804f8c9a10
|
|
| BLAKE2b-256 |
e5ac847866597cea8684082f95c658874f428b474570719f9ec37597a53d0d7a
|
File details
Details for the file aps_viewer_sdk-0.1.1-py3-none-any.whl.
File metadata
- Download URL: aps_viewer_sdk-0.1.1-py3-none-any.whl
- Upload date:
- Size: 27.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6dac08b3a660fb03f0f71c3d9e55b23c8363c12b0485b0ccef0cb262537ee72c
|
|
| MD5 |
616075fcdf7ec14111665139e4e01e7e
|
|
| BLAKE2b-256 |
d137b5a4f22834d7316352cd73a0f1fcc4b1c73432bbf1d9ca740e7d4d64bf91
|