BACnet Access Door Object

The BACnet Access Door object (Clause 12.26) models a physical access-control door: its commandable door value, priority array, and full property tables.

What the Access Door Object Is

The Access Door object, defined in Clause 12.26 of ANSI/ASHRAE 135-2024, is how a BACnet device represents a physical access-control door. It is an abstract interface to the hardware that makes up a door: the lock, the door contact, and the Request-To-Exit device. Those parts may or may not be exposed individually, but together they form one door that a controller can lock, unlock, and monitor.

Present_Value is a door command (lock, unlock, and the pulse variants), written through a priority array so that several controllers and operators can command the same door without conflict. The object tracks the physical condition of the door through Door_Status, Lock_Status, and Secured_Status. Access Door objects that support intrinsic reporting apply the CHANGE_OF_STATE event algorithm on the door alarm state and deliver alarms through the event notification services.

Where You’ll See It

  • Controlled doors and gates. A door controller wired to an electric strike or maglock, a door contact, and a REX button presents the door as one Access Door object.
  • Access controllers. Panels that carry the b-acc and b-acdc access-control profiles host Access Door objects alongside Access Point objects that decide when to unlock them.
  • Momentary release. An operator or an Access Point granting entry pulses the door open for Door_Pulse_Time, then it re-locks automatically.

How Commanding Works

A WriteProperty to Present_Value does not set the door directly. It places a door command in one of 16 slots of the Priority_Array, chosen by the write’s priority (1 = highest, 16 = lowest). The object presents the highest-priority non-Null slot as Present_Value and drives the lock hardware to match. Writing Null at a priority clears that slot (relinquishes the command). When every slot is Null, the door falls back to Relinquish_Default. Current_Command_Priority reports which slot is currently in control. This is the same priority-array arbitration used by an Analog Output, applied to door commands rather than analog levels, so an override from an operator and a scheduled unlock never collide.

Required Properties

Clause 12.26 requires every Access Door 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.

PropertyDatatypeWhat it holds
Object_IdentifierBACnetObjectIdentifierThe object’s type and instance number, unique within the device
Object_NameCharacterStringThe human-readable point name, unique within the device
Object_TypeBACnetObjectTypeAlways access-door for this object
Present_ValueBACnetDoorValueThe commanded door state (lock, unlock, pulse). Writable, but through the priority array, not as a direct store
Status_FlagsBACnetStatusFlagsFour health flags: in-alarm, fault, overridden, out-of-service
Event_StateBACnetEventStateThe object’s current event state (normal, off-normal, or fault)
ReliabilityBACnetReliabilityNames the reason whenever the fault flag is set
Out_Of_ServiceBOOLEANWhen true, Present_Value is decoupled from the physical door for testing
Priority_ArrayBACnetPriorityArrayThe 16 command slots; the highest-priority non-Null slot wins
Relinquish_DefaultBACnetDoorValueThe door command taken when every priority slot is Null
Current_Command_PriorityBACnetOptionalUnsignedWhich priority slot (1-16) is currently in control, or none
Door_Pulse_TimeUnsignedHow long a momentary unlock stays released, in tenths of a second
Door_Extended_Pulse_TimeUnsignedThe longer pulse used when extended access time is granted
Door_Open_Too_Long_TimeUnsignedHow long the door may stay open before a door-open-too-long alarm
Property_ListBACnetARRAY[N] of BACnetPropertyIdentifierThe list of properties this instance actually implements

Optional Properties

The properties integrators meet most are the door-state group (Door_Status, Lock_Status, Secured_Status), which reports what the physical door is doing, Door_Members (the hardware or sub-doors this object aggregates), and the command-tracking group (Value_Source, Last_Command_Time), which records who last commanded the door. The intrinsic-reporting group generally appears or is absent as a set. The Audit_Level, Auditable_Operations, and Audit_Priority_Filter properties are the audit-logging controls added in 135-2024.

PropertyDatatypeGroup
DescriptionCharacterStringGeneral
Maintenance_RequiredBACnetMaintenanceGeneral
Door_StatusBACnetDoorStatusAccess model
Lock_StatusBACnetLockStatusAccess model
Secured_StatusBACnetDoorSecuredStatusAccess model
Door_MembersBACnetARRAY[N] of BACnetDeviceObjectReferenceAccess model
Door_Unlock_Delay_TimeUnsignedAccess model
Door_Alarm_StateBACnetDoorAlarmStateIntrinsic reporting
Masked_Alarm_ValuesBACnetLIST of BACnetDoorAlarmStateIntrinsic reporting
Alarm_ValuesBACnetLIST of BACnetDoorAlarmStateIntrinsic reporting
Fault_ValuesBACnetLIST of BACnetDoorAlarmStateFault detection
Time_DelayUnsignedIntrinsic reporting
Notification_ClassUnsignedIntrinsic reporting
Event_EnableBACnetEventTransitionBitsIntrinsic reporting
Acked_TransitionsBACnetEventTransitionBitsIntrinsic reporting
Notify_TypeBACnetNotifyTypeIntrinsic reporting
Event_Time_StampsBACnetARRAY[3] of BACnetTimeStampIntrinsic reporting
Event_Message_TextsBACnetARRAY[3] of CharacterStringIntrinsic reporting
Event_Message_Texts_ConfigBACnetARRAY[3] of CharacterStringIntrinsic reporting
Event_Detection_EnableBOOLEANIntrinsic reporting
Event_Algorithm_Inhibit_RefBACnetObjectPropertyReferenceIntrinsic reporting
Event_Algorithm_InhibitBOOLEANIntrinsic reporting
Time_Delay_NormalUnsignedIntrinsic reporting
Reliability_Evaluation_InhibitBOOLEANFault detection
Value_SourceBACnetValueSourceCommanding
Value_Source_ArrayBACnetARRAY[16] of BACnetValueSourceCommanding
Last_Command_TimeBACnetTimeStampCommanding
Command_Time_ArrayBACnetARRAY[16] of BACnetTimeStampCommanding
Audit_LevelBACnetAuditLevelAuditing
Auditable_OperationsBACnetAuditOperationFlagsAuditing
Audit_Priority_FilterBACnetOptionalPriorityFilterAuditing
TagsBACnetARRAY[N] of BACnetNameValueTagging and profile
Profile_LocationCharacterStringTagging and profile
Profile_NameCharacterStringTagging and profile
  • Access Point: the object that authenticates and authorizes a credential, then commands this door to unlock.
  • Access Zone: the secured area reached through the access points that control these doors.
  • Binary Output: the general-purpose commandable two-state output, when a door needs no access-control model behind it.

What Chipkin Provides

The Access Door object, including its door-command priority array and door-state model, is a first-class object type in the CAS BACnet Stack. Talk to us about modeling your device’s points.