What is a BACnet PICS, and how do I read one?
Updated 4 November 2026
A PICS (Protocol Implementation Conformance Statement) is the manufacturer's declaration of what BACnet a device supports: its device profile (B-BC, B-AAC, B-ASC and so on), the BIBBs or building blocks it implements, the object types it has and which properties are writable, its data links and baud rates, whether it supports segmentation, and whether it can act as a router or BBMD. It tells you whether a device can integrate the way you want. It is not a points list: it rarely names a single point.
Where to find one
Search the manufacturer's site for the product name plus "PICS". For products that have been tested by the BACnet Testing Laboratories (BTL), the BACnet International product catalog lists the PICS alongside the listing, and a BTL listing means the claims were tested rather than just written down. The format comes from Annex A of the BACnet standard, so most PICS read the same whoever wrote them.
The sections, and what to look for
| Section | What it tells you |
|---|---|
| Product and revision | Model, firmware, and the BACnet protocol revision it claims. Match it to the firmware actually installed. |
| Standardized device profile | The class of device: B-BC, B-AAC, B-ASC, B-SA, B-SS, B-OWS and others. |
| BIBBs supported | The real detail: which services it handles, as client (A) or server (B). |
| Object types | Which object types it has, whether it can create or delete them, and which properties are writable or optional. |
| Data link layers | BACnet IP, MS/TP (with the baud rates it supports), BACnet/SC, Ethernet and so on. |
| Segmentation | Whether it can send or receive segmented messages, and the window size. |
| Networking options | Router, BBMD, foreign device registration. |
| Character sets | Usually UTF-8 or ANSI X3.4. Matters for point names in other languages. |
Device profiles in one line each
- B-BC (Building Controller): supervisory or plant controller; scheduling, alarming, trending, usually routing.
- B-AAC (Advanced Application Controller): a programmable field controller that can also handle alarms and schedules.
- B-ASC (Application Specific Controller): built for one job, such as a VAV box or a unit controller; mostly shares data.
- B-SA / B-SS (Smart Actuator / Smart Sensor): the smallest devices, a few points each.
- B-OWS (Operator Workstation): the front end.
A profile sets the minimum. A B-ASC can support far more than B-ASC requires, so read the BIBB list rather than stopping at the profile box.
Reading BIBBs
A BIBB name has three parts: the area, the service, and A or B. DS-RP-B is
Data Sharing, ReadProperty, server side: the device answers reads. DS-RP-A
would mean it can read other devices. The ones that come up most:
| BIBB | Means the device can… |
|---|---|
| DS-RP-B / DS-WP-B | answer reads / accept writes |
| DS-RPM-B / DS-WPM-B | answer ReadPropertyMultiple / WritePropertyMultiple, which head-ends use to poll efficiently |
| DS-COV-B | accept COV subscriptions |
| DM-DDB-B | answer Who-Is with I-Am (discovery) |
| DM-DOB-B | answer Who-Has (find an object by name or ID) |
| DM-DCC-B / DM-RD-B | accept DeviceCommunicationControl / ReinitializeDevice |
| DM-TS-B / DM-UTC-B | accept time synchronization (local / UTC) |
| AE-N-I-B | generate alarm and event notifications |
| SCHED-I-B / T-VMT-I-B | hold its own schedules / trend logs |
Questions a PICS answers before you commit
- Will the head-end be able to use COV? Look for DS-COV-B.
- Can it be commanded the way the sequence needs? Check DS-WP-B and whether Present_Value on its Value objects is writable, and whether they have a priority array.
- Will it work on this trunk? Check the MS/TP baud rates against the trunk you're putting it on.
- Will big reads work? No segmentation means a head-end has to read long lists a piece at a time.
- Does it route? If you need its MS/TP devices visible on BACnet IP, the networking section has to say router.
For the points themselves, use the manufacturer's integration guide, the free points list library, or scan the device: a scan reads its actual object list. See how to find your BACnet IP points list.
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