BACnet Object Types & Properties Reference

Reference guide to BACnet object types used in building automation integrations — Analog Input, Binary Output, Multi-State Value, and more — with property details and gateway mapping guidance.

Categories:

Overview

BACnet models all building automation data as objects — typed containers with properties. Understanding object types is essential for configuring gateways, mapping points from other protocols, and diagnosing interoperability issues.

This reference covers the object types most commonly encountered in protocol conversion and BMS integration work — the types you’ll configure on a QuickServer when bridging Modbus, EtherNet/IP, or other protocols to BACnet/IP or BACnet MS/TP.

For a high-level overview of the object model, see the BACnet Objects knowledge base page.

Analog Objects

Analog objects represent continuously variable numeric values — temperatures, pressures, setpoints, percentages.

Analog Input (AI)

PropertyDetail
AccessRead-only
Present ValueREAL (32-bit float)
UnitsEngineering units (e.g., degrees-fahrenheit, percent, pascals)
Typical UseSensor readings — zone temperature, duct pressure, flow rate, humidity

AI objects represent physical sensor measurements. In a protocol conversion, Modbus input registers (FC04) or read-only holding registers (FC03) typically map to AI objects on the BACnet side.

Analog Output (AO)

PropertyDetail
AccessRead/Write
Present ValueREAL (32-bit float)
UnitsEngineering units
Typical UseActuator commands — valve position (0–100%), fan speed setpoint, damper command

AO objects represent physical actuator commands. When a BMS writes to an AO, the gateway translates the write into the source protocol’s write command — for Modbus, that means FC06 or FC16 to a holding register.

Analog Value (AV)

PropertyDetail
AccessRead/Write
Present ValueREAL (32-bit float)
UnitsEngineering units (optional)
Typical UseCalculated values, configuration parameters, setpoints, internal variables

AV objects represent software-defined numeric values — not directly tied to a physical sensor or actuator. In gateway configurations, AV is the most flexible analog type and is commonly used as the default mapping target for Modbus holding registers.

[!WARNING] Some legacy integrations (especially Metasys N2 → BACnet conversions) use AV objects with Present Value 0.0 / 1.0 to represent binary on/off states. This works but is semantically incorrect — Binary Value objects should be used for discrete states. Always verify the upstream device’s actual data types before assuming AV means “analog.”

Binary Objects

Binary objects represent discrete on/off states — exactly two possible values: Active (1) or Inactive (0).

Binary Input (BI)

PropertyDetail
AccessRead-only
Present ValueENUMERATED: Active / Inactive
Active/Inactive TextCustomizable labels (e.g., "Running" / "Stopped")
Typical UseStatus contacts — fan running status, alarm states, door position

BI objects map well to Modbus discrete inputs (FC02) and individual bits extracted from status registers.

Binary Output (BO)

PropertyDetail
AccessRead/Write
Present ValueENUMERATED: Active / Inactive
Typical UseRelay commands — fan start/stop, valve open/close, lighting on/off

BO objects map to Modbus coils (FC05/FC15).

Binary Value (BV)

PropertyDetail
AccessRead/Write
Present ValueENUMERATED: Active / Inactive
Typical UseSoftware flags — enable/disable states, mode switches, override flags

BV objects represent software-defined binary states. Like AV vs AI/AO, BV is the “virtual” counterpart to BI/BO.

Multi-State Objects

Multi-state objects represent enumerated states — a fixed set of named values (e.g., Off / Low / Medium / High).

Multi-State Input (MSI)

PropertyDetail
AccessRead-only
Present ValueUnsigned integer (1-based state index)
Number of StatesDefines valid range (e.g., 4 = states 1–4)
State TextArray of state names (e.g., ["Off", "Low", "Med", "High"])
Typical UseOperating mode status, fan speed stage feedback

Multi-State Output (MSO)

PropertyDetail
AccessRead/Write
Present ValueUnsigned integer (1-based state index)
Typical UseMode selection commands, speed stage commands

Multi-State Value (MSV)

PropertyDetail
AccessRead/Write
Present ValueUnsigned integer (1-based state index)
Typical UseConfiguration enumerations, schedule mode settings

[!NOTE] Multi-state Present Values are 1-based — state 1 is the first state, not state 0. This is a common source of off-by-one errors when mapping from Modbus registers where the source data may be 0-based.

Device Object

Every BACnet device has exactly one Device object. It identifies the device on the network and advertises its capabilities.

PropertyDetail
Object IdentifierDevice Instance — must be unique across the entire BACnet internetwork (0–4,194,302)
Object NameHuman-readable device name
Vendor NameManufacturer name
Model NameProduct model
Protocol Services SupportedBitmask of supported BACnet services
Object ListList of all objects in the device

The Device object is what Who-Is / I-Am discovery reports. When a BMS discovers a QuickServer, it reads the Device object to learn the device’s identity and enumerate its objects.

Quick Reference: Object Type Selection

Use this table when deciding which BACnet object type to create for a given source data point:

Source Data CharacteristicRecommended BACnet Type
Read-only analog measurement (sensor)AI
Read/write analog setpoint or commandAO (physical) or AV (virtual)
Read-only 32-bit float from ModbusAI
Read/write 16-bit register from ModbusAV
Read-only discrete status (contact, alarm)BI
Read/write discrete command (relay, enable)BO (physical) or BV (virtual)
Read-only coil or discrete input from ModbusBI
Read/write coil from ModbusBO
Enumerated state (mode, speed stage)MSI (read-only) or MSV (read/write)
Bit extracted from a Modbus status registerBI or BV

Gateway Mapping Examples

Modbus to BACnet

Modbus SourceFunction CodeBACnet TargetNotes
Holding Register (temperature)FC03AIScale factor may apply
Holding Register (setpoint)FC03/FC06AV or AOFC06 for write
Holding Register (32-bit float, 2 regs)FC03/FC16AI or AVCheck word order
Input Register (measurement)FC04AIRead-only
Coil (relay command)FC01/FC05BODiscrete R/W
Discrete Input (alarm contact)FC02BIDiscrete read-only
Status register (bit field)FC03 + bit extractBI per bitBit extraction in gateway config

[!TIP] For bit extraction from Modbus status registers, configure the gateway to read the full 16-bit register and extract individual bits as separate BI or BV objects. This is a common pattern for generator controllers and power meters that pack multiple boolean statuses into a single register.

EtherNet/IP to BACnet

EtherNet/IP SourceBACnet TargetNotes
INT tag (sensor)AIScale appropriately
DINT tag (setpoint)AV32-bit integer
BOOL tag (status)BIDirect binary map
BOOL tag (command)BODirect binary map

Configuration Intake Checklist

What BACnet object types does the BMS expect?

Request the BMS point list from the integrator. It specifies which object types and instance numbers the BMS will poll. Your gateway config must match.

What is the Device Instance?

The Device Instance must be unique across the entire BACnet network. Coordinate with the BMS integrator to get an assigned instance number.

Are there existing objects to preserve?

When replacing a legacy gateway, the BMS may already have points configured for specific object types and instances. Changing these requires the BMS integrator to remap — avoid this by matching the old gateway’s object list exactly.

Does the source data need scaling or type conversion?

Modbus registers are unsigned 16-bit integers by default. If the BACnet side expects a float (AI/AO/AV), the gateway must apply a scale factor or register-pair combination. See Modbus Data Types & Byte Order Reference.

Chipkin Tools

  • QuickServer — Multi-protocol gateway supporting BACnet/IP, BACnet MS/TP, Modbus, EtherNet/IP
  • QuickServer — Protocol converter with web-based configuration
  • CAS BACnet Explorer — Discover, browse, and read/write BACnet objects
  • Chipkin Support — Configuration assistance and protocol integration help

Need more help?

If this page does not resolve the issue, contact Chipkin support with the product model, protocol details, and any diagnostics you have already captured.

Open Chipkin Support