Skip to content
</>// kamal
Niagara BACnet Topology Builder cover

Case study · BMS

Niagara BACnet Topology Builder

Automated desktop engineering tool that validates Excel point schedules and generates multi-tier Niagara 4 (.bog) station hierarchies for JACE, Zone, and Central CBMS servers in seconds.

Gallery

3 images
Niagara BACnet Topology Builder screenshot 1
View Image
Niagara BACnet Topology Builder screenshot 2
View Image
Niagara BACnet Topology Builder screenshot 3
View Image
Bms2026· Commercial Buildings & District BMS
01

Problem

In large-scale commercial and district Building Management System (BMS) projects, commissioning engineers must integrate tens of thousands of BACnet points across a 3-tier Tridium Niagara 4 architecture: field-level JACE controllers (Layer 1), intermediate Zone Supervisor servers (Layer 2), and a centralized Main CBMS Supervisor (Layer 3).

Building these hierarchies manually in Niagara Workbench—creating BACnet devices, mapping object instances, configuring engineering unit facets, attaching COV and interval history extensions, setting up alarm classes, and linking NiagaraNetwork proxy points across layers—takes hours per equipment schedule and is highly prone to human error. Furthermore, raw point schedules from technical offices frequently contain duplicate BACnet Object IDs, illegal Niagara slot characters, or missing binary state facets that cause station import failures.

02

My role

BMS Engineer & Software Developer

03

Technology

Tridium Niagara 4BACnet IP / MS-TPPythonTkinter GUIBaja Object Graph (BOG XML)Niagara Fox ProtocolOpenPyXL
04

Challenges

1. Reverse-Engineering Niagara 4 BOG Serialization: Niagara 4 .bog archives require strict Baja Object Graph XML schemas, including inline module declarations, exact unit conversion multipliers, and nested device instance configurations.

2. Preventing Supervisor Writable Proxy Faults: Upper-tier Zone and Main CBMS stations cannot use standard Writable control points over a NiagaraNetwork proxy without triggering proxy faults. Commands must instead be serialized as read-only proxy points paired with Niagara VirtualAction slots (override, active, inactive, auto, and set) and internal writeValue structures.

3. Automated Device Health Monitoring: Every equipment folder needed synthetic Device_Name, Device_Id, and Device_Status points, where Device_Status dynamically links via internal hexadecimal component handles to a kitControl:StatusDemux block on the JACE to trigger offline controller alarms.

4. Multi-Controller Equipment Consolidation: A single HVAC unit (such as a large Fresh Air Handling Unit) often spans up to 7 separate BACnet controllers at the JACE level but must be consolidated into a single equipment folder under a building parcel node at the Zone and Main CBMS layers.

05

Solution

I designed and developed the Niagara BACnet Topology Builder, a standalone Python desktop application with an interactive Tkinter GUI that converts raw Excel point schedules directly into production-ready Niagara 4 .bog packages.

Key capabilities include:

Multi-Tier Topology Engine: Supports both 2-Layer (JACE + Main) and 3-Layer (JACE + Zone + Main CBMS) architectures, generating either individual layer .bog files or a single combined .bog package containing all layers.

Pre-Import Diagnostic & Validation Engine: Scans workbooks in real time to flag duplicate BACnet Object IDs on the same controller, auto-sanitize illegal Niagara slot characters, validate engineering units, and export color-coded Excel audit reports for engineering teams.

Intelligent Alarm & History Classification: Automatically distinguishes read-only binary alarms from writable operator reset commands, attaches 15-minute interval trends to analog points and COV trends to binary status points, and configures dynamic parcel alarm classes with station hyperlink ORDs.

Built-in AI Preparation Workflow: Includes a one-click Excel template generator and an embedded AI prompt that helps engineers normalize unformatted vendor point lists before import.

06

Outcome

Reduced point database engineering and station preparation time from several hours per equipment schedule to under 10 seconds.

Eliminated 100% of duplicate BACnet object bindings and invalid slot name exceptions prior to Workbench import.

Standardized point naming, history collection schemas, device offline monitoring, and alarm routing across multiple commissioning teams working on the same district BMS architecture.

07

Lessons learned

Combining field-level BMS commissioning experience with software development unlocks massive productivity gains in building automation. Deeply understanding how Niagara 4 serializes component handles, proxy extensions, and virtual actions at the XML level allowed me to build an offline generator that works out-of-the-box on any engineering workstation without requiring custom JAR modules to be installed on live JACE controllers or Supervisor servers.

Gallery

Niagara BACnet Topology Builder screenshot 1Niagara BACnet Topology Builder screenshot 2Niagara BACnet Topology Builder screenshot 3