What do the BACnet object types mean?
Updated 11 October 2026
BACnet describes everything in a controller as an object, and the type tells you what kind of data it holds and how it behaves. The ones you'll see on every job are Analog (numbers), Binary (two states) and Multi-state (a short list of named states), each in Input, Output and Value form. Roughly, Input is a sensor, Output drives something, and Value is a software point inside the controller.

Every type number, including the rare ones, is in the BACnet object types list.
The common types
| # | Type | What it is |
|---|---|---|
| 0 | Analog Input | A measured value: a temperature, pressure, flow, or a reading passed through from a drive or meter. |
| 1 | Analog Output | An analog command: valve or damper position, fan speed reference. |
| 2 | Analog Value | A number in the controller's logic: a setpoint, a calculated value, a tuning parameter. |
| 3 | Binary Input | A two-state input: fan status, flow switch, filter or freezestat contact. |
| 4 | Binary Output | A two-state command: a relay starting a fan or pump, a two-position valve. |
| 5 | Binary Value | A two-state software point: an enable, an occupancy flag, a software alarm. |
| 6 | Calendar | A list of dates (holidays) that schedules refer to. |
| 8 | Device | The controller itself: name, vendor, model, firmware, and the Object_List of everything else. |
| 10 | File | A file on the device, used by some vendors for programs, configuration or logs. |
| 12 | Loop | A PID loop: setpoint, controlled variable, output and tuning. |
| 13 | Multi-State Input | An input with named states, such as a drive's Run / Stop / Fault status. |
| 14 | Multi-State Output | A command with named states: Off / Low / High. |
| 15 | Notification Class | Where alarms are routed and who gets them. |
| 16 | Program | A control program running on the device. |
| 17 | Schedule | A weekly schedule with exceptions that writes to other points. |
| 19 | Multi-State Value | A software point with named states: Occupied / Unoccupied / Standby. |
| 20 | Trend Log | Samples of another point, logged inside the controller. |
| 23 | Accumulator | A running total, typically pulses from a utility meter. |
The numbers are the type codes sent on the wire. Type and instance are packed together into a 32-bit Object Identifier: 10 bits of type, 22 bits of instance. Our decoder tool splits one apart.
Input, Output, Value: what it means for writing
- Input objects follow their source. A write to
Present_Valueis normally refused (write access denied) unlessOut_Of_Serviceis set true first, which disconnects the object from the sensor so you can simulate a reading. Handy during commissioning, and easy to forget to undo. - Output objects are always commandable through the priority array.
- Value objects live in software. Many are commandable; others are plain writable values with no priority array, and some are read-only.
The Input/Output/Value split is a convention, not a guarantee. A BACnet card on a VFD or a packaged unit controller may expose plenty of AIs and BIs that aren't wired sensors at all. See BACnet priority and stuck overrides for what commandable means in practice.
How tools write an object address
A point is type plus instance, so Analog Input 4 and Binary Input 4 are two
different points on the same controller. Tools write it as AI:4,
AI-4, AI 4 or analog-input,4; all the same
thing.
Check it on your own network. Easy BACnet is a free Android app that finds BACnet IP devices and reads their points in a couple of taps.
Get it on Google Play