Skip to content
Version 6.1.0
Contact Us

Lift

A Lift object represents one elevator car. It reports where the car is, which way it is moving, the state of its doors and any alarm or fault. Optional properties add calls, load and drive status. A lift controller exposes one per car so a building system can monitor traffic and equipment.

  • Show the floor and direction of each elevator car
  • Report door open and closed state for every landing
  • Raise an alarm on a passenger alarm button
  • Read the car load and the next stopping floor
Property What it holds
Car_Position The floor the car is at. Required.
Car_Moving_Direction The direction the car is moving, or that it is stopped. Required.
Car_Door_Status The state of each door of the car, one entry per door. Required.
Passenger_Alarm True while a passenger alarm is active. The standard’s intrinsic alarm watches it.
Fault_Signals The fault codes currently active. Required on a lift.
Elevator_Group The Elevator Group object this car belongs to.

A Lift is monitoring data, not commandable. Where it reports events itself, the standard pairs it with the CHANGE_OF_STATE algorithm watching Passenger_Alarm for TRUE. Reliability can use the FAULT_LISTED fault algorithm. A client sees the usual Event_State and notifications.

Enable it with the STACK_OPTION_OBJECT_TYPE_LIFT build option. Do not use BACnetStack_AddObject. Add the Elevator Group object first with BACnetStack_AddElevatorGroupObject, then call BACnetStack_AddLiftOrEscalatorObject with the Lift type, group, Group_ID and Installation_ID. You serve the rest through callbacks: the callback you register with BACnetStack_RegisterCallbackGetPropertyUnsignedInteger for Car_Position, the BACnetStack_RegisterCallbackGetPropertyEnumerated callback for Car_Moving_Direction and Car_Door_Status (the array index is the door number), the BACnetStack_RegisterCallbackGetPropertyBool callback for Passenger_Alarm and Out_Of_Service, and the BACnetStack_RegisterCallbackGetListOfEnumerations callback for Fault_Signals. Enable optional properties with BACnetStack_SetPropertyEnabled. An unserved Car_Position, Car_Moving_Direction, Car_Door_Status or Passenger_Alarm returns an error instead of an invented value. Arm the passenger alarm with BACnetStack_SetAlarmsAndEventsForObjectEnabled and then BACnetStack_SetIntrinsicChangeOfStateAlgorithmBool, with an alarm value of true.

Elevator Group, Escalator, Notification Class

The properties ASHRAE 135-2024 clause 12.59 defines for this object type.

How to read the table:

  • Conformance is what the standard asks of every object of this type: R is required, W is required and writable by a client, O is optional. A digit after the letter marks a condition in the standard that decides when the property is present or writable, such as support for intrinsic reporting.
  • Present by default: yes means the stack presents the property as soon as you add the object; no means it is optional and you turn it on with BACnetStack_SetPropertyEnabled. This is the stack’s starting setup, so it can differ from the conformance code.
  • Writable is whether a client can write the property by default. Change it with BACnetStack_SetPropertyWritable.
  • not in profile means the stack does not offer this property for this object type.
  • Value when your callback does not answer: “Held by the stack” means the stack stores and serves the value itself and does not ask your callbacks. Otherwise it is the value the stack answers when your callback declines or is not registered.
Property Datatype Conformance Present by default Writable Value when your callback does not answer
Object_Identifier BACnetObjectIdentifier R yes no Held by the stack.
Object_Name CharacterString R yes no "Object <type>,<instance>", such as "Object 0,1" for Analog Input 1.
Object_Type BACnetObjectType R yes no Held by the stack.
Description CharacterString O no no ""
Status_Flags BACnetStatusFlags R yes no Built by the stack from your callbacks.
Elevator_Group BACnetObjectIdentifier R yes no Held by the stack.
Group_ID Unsigned8 R yes no Held by the stack; a Get callback that answers wins.
Installation_ID Unsigned8 R yes no Held by the stack; a Get callback that answers wins.
Floor_Text BACnetARRAY[N] of CharacterString O no no ""
Car_Door_Text BACnetARRAY[N] of CharacterString O no no ""
Assigned_Landing_Calls BACnetARRAY[N] of BACnetAssignedLandingCalls O no no No default: the read fails.
Making_Car_Call BACnetARRAY[N] of Unsigned8 O no no (yes while Out_Of_Service is true) 0
Registered_Car_Call BACnetARRAY[N] of BACnetLiftCarCallList O no no No default: the read fails.
Car_Position Unsigned8 R yes no (yes while Out_Of_Service is true) No default: value-not-initialized until a callback or a client write supplies one.
Car_Moving_Direction BACnetLiftCarDirection R yes no (yes while Out_Of_Service is true) No default: value-not-initialized until a callback or a client write supplies one.
Car_Assigned_Direction BACnetLiftCarDirection O no no (yes while Out_Of_Service is true) 0
Car_Door_Status BACnetARRAY[N] of BACnetDoorStatus R yes no (yes while Out_Of_Service is true) No default: value-not-initialized until a callback or a client write supplies one.
Car_Door_Command BACnetARRAY[N] of BACnetLiftCarDoorCommand O no no (yes while Out_Of_Service is true) 0
Car_Door_Zone Boolean O no no (yes while Out_Of_Service is true) false
Car_Mode BACnetLiftCarMode O no no (yes while Out_Of_Service is true) 0
Car_Load Real O no no (yes while Out_Of_Service is true) 0.0
Car_Load_Units BACnetEngineeringUnits O1 no no 0
Next_Stopping_Floor Unsigned8 O no no (yes while Out_Of_Service is true) 0
Passenger_Alarm Boolean R yes no (yes while Out_Of_Service is true) No default: value-not-initialized until a callback or a client write supplies one.
Time_Delay Unsigned O2,3 no no 0
Time_Delay_Normal Unsigned O3 no no 0
Energy_Meter Real O no no (yes while Out_Of_Service is true) Held by the stack.
Energy_Meter_Ref BACnetDeviceObjectReference O no no Held by the stack once you set it with BACnetStack_SetLiftOrEscalatorEnergyMeterRef.
Reliability BACnetReliability O no no 0
Out_Of_Service Boolean R yes no false
Car_Drive_Status BACnetLiftCarDriveStatus O no no (yes while Out_Of_Service is true) 0
Fault_Signals BACnetLIST of BACnetLiftFault R yes no 0
Landing_Door_Status BACnetARRAY[N] of BACnetLandingDoorStatus O no no No default: the read fails.
Higher_Deck BACnetObjectIdentifier O no no Held by the stack once you set it with BACnetStack_SetLiftHigherLowerDeck.
Lower_Deck BACnetObjectIdentifier O no no Held by the stack once you set it with BACnetStack_SetLiftHigherLowerDeck.
Event_Detection_Enable Boolean O2,3 no no false
Notification_Class Unsigned O2,3 no no 0
Event_Enable BACnetEventTransitionBits O2,3 no no An empty bit string.
Event_State BACnetEventState O2,3 no no 0
Acked_Transitions BACnetEventTransitionBits O2,3 no no An empty bit string.
Notify_Type BACnetNotifyType O2,3 no no 0
Event_Time_Stamps BACnetARRAY[3] of BACnetTimeStamp O2,3 no no No default: the read fails.
Event_Message_Texts BACnetARRAY[3] of CharacterString O3 no no ""
Event_Message_Texts_Config BACnetARRAY[3] of CharacterString O3 no no ""
Event_Algorithm_Inhibit_Ref BACnetObjectPropertyReference O3 no no No default: the read fails.
Event_Algorithm_Inhibit Boolean O3,4 no no false
Reliability_Evaluation_Inhibit Boolean O5 no no false
Property_List BACnetARRAY[N] of BACnetPropertyIdentifier R yes no Held by the stack.
Audit_Level BACnetAuditLevel O6 not in profile not in profile No default: the read fails.
Auditable_Operations BACnetAuditOperationFlags O6 not in profile not in profile No default: the read fails.
Tags BACnetARRAY[N] of BACnetNameValue O no no No default: the read fails.
Profile_Location CharacterString O no no ""
Profile_Name CharacterString O no no ""