What the Access Zone Object Is
The Access Zone object, defined in Clause 12.32 of ANSI/ASHRAE 135-2024, is how a BACnet device represents a secured geographical area that credentials enter and leave under access control. Entry happens through entry Access Point objects and exit through exit Access Point objects; the zone ties them together.
Occupancy_State is the zone’s current condition, derived from an occupancy count and the configured limits. The zone can enforce occupancy limits, deny access when they are violated, and detect passback (a credential trying to enter a zone it is assumed to already be in) with hard, soft, or no enforcement. It can also keep a “who’s in” list of the credentials currently inside. Access Zone objects that support intrinsic reporting apply the CHANGE_OF_STATE event algorithm on Occupancy_State and deliver alarms through the event notification services.
Where You’ll See It
- Secured areas. A server room, a parking structure, or a floor whose entry and exit readers are Access Point objects that reference this zone.
- Occupancy enforcement. A zone with an upper limit rejects entry once full; a zone with a lower limit can require a minimum occupancy before a door releases.
- Anti-passback. A zone with passback enforcement flags a credential that tries to badge in twice without badging out.
Required Properties
Clause 12.32 requires every Access Zone object to provide these properties. Datatypes are the spec’s names: Unsigned is an integer, BOOLEAN a true/false flag, and the BACnet-prefixed types are structured values defined by the standard.
| Property | Datatype | What it holds |
|---|---|---|
Object_Identifier | BACnetObjectIdentifier | The object’s type and instance number, unique within the device |
Object_Name | CharacterString | The human-readable point name, unique within the device |
Object_Type | BACnetObjectType | Always access-zone for this object |
Global_Identifier | Unsigned | A shared identifier for the zone when it is represented in several devices. Writable |
Occupancy_State | BACnetAccessZoneOccupancyState | The zone’s occupancy condition (normal, below limit, at limit, above limit, disabled) |
Status_Flags | BACnetStatusFlags | Four health flags: in-alarm, fault, overridden, out-of-service |
Event_State | BACnetEventState | The object’s current event state (normal, off-normal, or fault) |
Reliability | BACnetReliability | Names the reason whenever the fault flag is set |
Out_Of_Service | BOOLEAN | When true, the object stops tracking live occupancy |
Entry_Points | BACnetLIST of BACnetDeviceObjectReference | The Access Point objects through which credentials enter the zone |
Exit_Points | BACnetLIST of BACnetDeviceObjectReference | The Access Point objects through which credentials leave the zone |
Property_List | BACnetARRAY[N] of BACnetPropertyIdentifier | The list of properties this instance actually implements |
Optional Properties
The properties integrators meet most are the occupancy group (Occupancy_Count, Occupancy_Upper_Limit, Occupancy_Lower_Limit), the passback controls (Passback_Mode, Passback_Timeout), and the “who’s in” list Credentials_In_Zone. The intrinsic-reporting group generally appears or is absent as a set. Audit_Level and Auditable_Operations are the audit-logging controls added in 135-2024.
| Property | Datatype | Group |
|---|---|---|
Description | CharacterString | General |
Occupancy_Count | Unsigned | Access model |
Occupancy_Count_Enable | BOOLEAN | Access model |
Adjust_Value | INTEGER | Access model |
Occupancy_Upper_Limit | Unsigned | Access model |
Occupancy_Lower_Limit | Unsigned | Access model |
Credentials_In_Zone | BACnetLIST of BACnetDeviceObjectReference | Access model |
Last_Credential_Added | BACnetDeviceObjectReference | Access model |
Last_Credential_Added_Time | BACnetDateTime | Access model |
Last_Credential_Removed | BACnetDeviceObjectReference | Access model |
Last_Credential_Removed_Time | BACnetDateTime | Access model |
Passback_Mode | BACnetAccessPassbackMode | Access model |
Passback_Timeout | Unsigned | Access model |
Time_Delay | Unsigned | Intrinsic reporting |
Notification_Class | Unsigned | Intrinsic reporting |
Alarm_Values | BACnetLIST of BACnetAccessZoneOccupancyState | Intrinsic reporting |
Event_Enable | BACnetEventTransitionBits | Intrinsic reporting |
Acked_Transitions | BACnetEventTransitionBits | Intrinsic reporting |
Notify_Type | BACnetNotifyType | Intrinsic reporting |
Event_Time_Stamps | BACnetARRAY[3] of BACnetTimeStamp | Intrinsic reporting |
Event_Message_Texts | BACnetARRAY[3] of CharacterString | Intrinsic reporting |
Event_Message_Texts_Config | BACnetARRAY[3] of CharacterString | Intrinsic reporting |
Event_Detection_Enable | BOOLEAN | Intrinsic reporting |
Event_Algorithm_Inhibit_Ref | BACnetObjectPropertyReference | Intrinsic reporting |
Event_Algorithm_Inhibit | BOOLEAN | Intrinsic reporting |
Time_Delay_Normal | Unsigned | Intrinsic reporting |
Reliability_Evaluation_Inhibit | BOOLEAN | Fault detection |
Audit_Level | BACnetAuditLevel | Auditing |
Auditable_Operations | BACnetAuditOperationFlags | Auditing |
Tags | BACnetARRAY[N] of BACnetNameValue | Tagging and profile |
Profile_Location | CharacterString | Tagging and profile |
Profile_Name | CharacterString | Tagging and profile |
Related Objects
- Access Point: the entry and exit points that add and remove credentials from this zone.
- Access Credential: the credentials the zone counts and lists as present.
- Access Door: the physical doors the zone’s access points command.
What Chipkin Provides
The Access Zone object, including occupancy counting, passback enforcement, and CHANGE_OF_STATE intrinsic reporting, is a first-class object type in the CAS BACnet Stack. Talk to us about modeling your device’s points.