Skip to main content

System Architecture

Paracore is designed as a decoupled, high-performance ecosystem. This architecture provides a Dynamic Execution Environment that enables a rapid, iterative workflow for both human developers and AI agents.

System Architecture

🏗️ The Pillars of Paracore

1. Paracore Desktop App (The Control Center)

Built using React, TypeScript, and Tauri, the desktop application handles the high-level management of your automation library.

  • Role: Script discovery, parameter orchestration, and results visualization.
  • Benefit: By running as a separate process, Paracore provides a responsive, web-speed UI that operates independently of Revit's performance cycles.

2. Paracore Local Backend (The Sidecar)

A lightweight Python and FastAPI application that runs as a sidecar to the desktop app on your local machine. It acts as the central intelligence and communication hub.

  • Role: It acts as an API Gateway, translating the frontend's HTTP requests into gRPC calls for Revit. It also manages script discovery, local data persistence via a SQLite database (%AppData%/Roaming/paracore-data/data/rap_local.db), and the Paracore Agent's logic.
  • Benefit: By offloading heavy logic and filesystem operations to a local Python process, the UI stays lightning-fast and the Revit add-in remains lightweight.

3. Paracore Revit Addin (The Host)

A lightweight plugin that sits inside Revit. It acts as the execution bridge, providing the necessary context for your logic to interact with the model.

  • Role: It hosts a gRPC server inside Revit and manages Revit Transactions. Crucially, it embeds the CoreScript Engine, a powerful Roslyn-based compiler that enables dynamic, in-memory execution of C# scripts.
  • Interactivity: It enables high-performance, in-memory execution of C# scripts, allowing for rapid iteration and testing within the live Revit model.

📡 Responsive Communication

Paracore uses a high-speed HTTP/gRPC bridge to ensure communication between your code, the UI, and Revit happens in milliseconds.

File Watchers & Synchronization

Paracore maintains a live link between your Temporary VS Code Workspaces and your Script Sources using intelligent file watchers.

  • The Link: This connection is established based on the script's name/path.
  • Renaming Rule: To maintain synchronization, scripts should only be renamed while they are not actively being edited in VS Code. If a rename is necessary, closing and reopening the workspace ensures the name-based link is correctly re-established.

Next: Understand the different Script Types supported by Paracore.