You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@plc4x.apache.org by sr...@apache.org on 2022/06/09 14:21:33 UTC

[plc4x] branch develop updated: feat(bacnet): added safeguard against wrongly implemented constructed data

This is an automated email from the ASF dual-hosted git repository.

sruehl pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/plc4x.git


The following commit(s) were added to refs/heads/develop by this push:
     new d97c819ce8 feat(bacnet): added safeguard against wrongly implemented constructed data
d97c819ce8 is described below

commit d97c819ce83eadaf4d54a36c0e7c7108c98de185
Author: Sebastian Rühl <sr...@apache.org>
AuthorDate: Thu Jun 9 16:21:26 2022 +0200

    feat(bacnet): added safeguard against wrongly implemented constructed data
---
 .../readwrite/model/BACnetConstructedData.go       | 762 +++++++++---------
 .../resources/protocols/bacnetip/bacnetip.mspec    | 896 +++++++++++----------
 2 files changed, 830 insertions(+), 828 deletions(-)

diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedData.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedData.go
index 8a84007dc3..6e6b701541 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedData.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetConstructedData.go
@@ -199,61 +199,61 @@ func BACnetConstructedDataParse(readBuffer utils.ReadBuffer, tagNumber uint8, ob
 	var _child BACnetConstructedDataChild
 	var typeSwitchError error
 	switch {
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_ABSENTEE_LIMIT: // BACnetConstructedDataAbsenteeLimit
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_ABSENTEE_LIMIT && peekedTagNumber == uint8(2): // BACnetConstructedDataAbsenteeLimit
 		_child, typeSwitchError = BACnetConstructedDataAbsenteeLimitParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_ACCEPTED_MODES: // BACnetConstructedDataAcceptedModes
 		_child, typeSwitchError = BACnetConstructedDataAcceptedModesParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_ACCESS_ALARM_EVENTS: // BACnetConstructedDataAccessAlarmEvents
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_ACCESS_ALARM_EVENTS && peekedTagNumber == uint8(9): // BACnetConstructedDataAccessAlarmEvents
 		_child, typeSwitchError = BACnetConstructedDataAccessAlarmEventsParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_ACCESS_DOORS: // BACnetConstructedDataAccessDoors
 		_child, typeSwitchError = BACnetConstructedDataAccessDoorsParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_ACCESS_EVENT: // BACnetConstructedDataAccessEvent
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_ACCESS_EVENT && peekedTagNumber == uint8(9): // BACnetConstructedDataAccessEvent
 		_child, typeSwitchError = BACnetConstructedDataAccessEventParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_ACCESS_EVENT_AUTHENTICATION_FACTOR: // BACnetConstructedDataAccessEventAuthenticationFactor
 		_child, typeSwitchError = BACnetConstructedDataAccessEventAuthenticationFactorParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_ACCESS_EVENT_CREDENTIAL: // BACnetConstructedDataAccessEventCredential
 		_child, typeSwitchError = BACnetConstructedDataAccessEventCredentialParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_ACCESS_EVENT_TAG: // BACnetConstructedDataAccessEventTag
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_ACCESS_EVENT_TAG && peekedTagNumber == uint8(2): // BACnetConstructedDataAccessEventTag
 		_child, typeSwitchError = BACnetConstructedDataAccessEventTagParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_ACCESS_EVENT_TIME: // BACnetConstructedDataAccessEventTime
 		_child, typeSwitchError = BACnetConstructedDataAccessEventTimeParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_ACCESS_TRANSACTION_EVENTS: // BACnetConstructedDataAccessTransactionEvents
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_ACCESS_TRANSACTION_EVENTS && peekedTagNumber == uint8(9): // BACnetConstructedDataAccessTransactionEvents
 		_child, typeSwitchError = BACnetConstructedDataAccessTransactionEventsParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_ACCOMPANIMENT: // BACnetConstructedDataAccompaniment
 		_child, typeSwitchError = BACnetConstructedDataAccompanimentParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_ACCOMPANIMENT_TIME: // BACnetConstructedDataAccompanimentTime
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_ACCOMPANIMENT_TIME && peekedTagNumber == uint8(2): // BACnetConstructedDataAccompanimentTime
 		_child, typeSwitchError = BACnetConstructedDataAccompanimentTimeParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_ACK_REQUIRED: // BACnetConstructedDataAckRequired
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_ACK_REQUIRED && peekedTagNumber == uint8(9): // BACnetConstructedDataAckRequired
 		_child, typeSwitchError = BACnetConstructedDataAckRequiredParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_ACKED_TRANSITIONS: // BACnetConstructedDataAckedTransitions
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_ACKED_TRANSITIONS && peekedTagNumber == uint8(9): // BACnetConstructedDataAckedTransitions
 		_child, typeSwitchError = BACnetConstructedDataAckedTransitionsParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case objectTypeArgument == BACnetObjectType_LOOP && propertyIdentifierArgument == BACnetPropertyIdentifier_ACTION: // BACnetConstructedDataLoopAction
+	case objectTypeArgument == BACnetObjectType_LOOP && propertyIdentifierArgument == BACnetPropertyIdentifier_ACTION && peekedTagNumber == uint8(9): // BACnetConstructedDataLoopAction
 		_child, typeSwitchError = BACnetConstructedDataLoopActionParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case objectTypeArgument == BACnetObjectType_COMMAND && propertyIdentifierArgument == BACnetPropertyIdentifier_ACTION: // BACnetConstructedDataCommandAction
 		_child, typeSwitchError = BACnetConstructedDataCommandActionParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_ACTION: // BACnetConstructedDataAction
 		_child, typeSwitchError = BACnetConstructedDataActionParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_ACTION_TEXT: // BACnetConstructedDataActionText
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_ACTION_TEXT && peekedTagNumber == uint8(7): // BACnetConstructedDataActionText
 		_child, typeSwitchError = BACnetConstructedDataActionTextParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_ACTIVATION_TIME: // BACnetConstructedDataActivationTime
 		_child, typeSwitchError = BACnetConstructedDataActivationTimeParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_ACTIVE_AUTHENTICATION_POLICY: // BACnetConstructedDataActiveAuthenticationPolicy
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_ACTIVE_AUTHENTICATION_POLICY && peekedTagNumber == uint8(2): // BACnetConstructedDataActiveAuthenticationPolicy
 		_child, typeSwitchError = BACnetConstructedDataActiveAuthenticationPolicyParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_ACTIVE_COV_MULTIPLE_SUBSCRIPTIONS: // BACnetConstructedDataActiveCOVMultipleSubscriptions
 		_child, typeSwitchError = BACnetConstructedDataActiveCOVMultipleSubscriptionsParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_ACTIVE_COV_SUBSCRIPTIONS: // BACnetConstructedDataActiveCOVSubscriptions
 		_child, typeSwitchError = BACnetConstructedDataActiveCOVSubscriptionsParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_ACTIVE_TEXT: // BACnetConstructedDataActiveText
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_ACTIVE_TEXT && peekedTagNumber == uint8(7): // BACnetConstructedDataActiveText
 		_child, typeSwitchError = BACnetConstructedDataActiveTextParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_ACTIVE_VT_SESSIONS: // BACnetConstructedDataActiveVTSessions
 		_child, typeSwitchError = BACnetConstructedDataActiveVTSessionsParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_ACTUAL_SHED_LEVEL: // BACnetConstructedDataActualShedLevel
 		_child, typeSwitchError = BACnetConstructedDataActualShedLevelParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case objectTypeArgument == BACnetObjectType_ACCESS_ZONE && propertyIdentifierArgument == BACnetPropertyIdentifier_ADJUST_VALUE: // BACnetConstructedDataAccessZoneAdjustValue
+	case objectTypeArgument == BACnetObjectType_ACCESS_ZONE && propertyIdentifierArgument == BACnetPropertyIdentifier_ADJUST_VALUE && peekedTagNumber == uint8(3): // BACnetConstructedDataAccessZoneAdjustValue
 		_child, typeSwitchError = BACnetConstructedDataAccessZoneAdjustValueParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case objectTypeArgument == BACnetObjectType_PULSE_CONVERTER && propertyIdentifierArgument == BACnetPropertyIdentifier_ADJUST_VALUE: // BACnetConstructedDataPulseConverterAdjustValue
+	case objectTypeArgument == BACnetObjectType_PULSE_CONVERTER && propertyIdentifierArgument == BACnetPropertyIdentifier_ADJUST_VALUE && peekedTagNumber == uint8(4): // BACnetConstructedDataPulseConverterAdjustValue
 		_child, typeSwitchError = BACnetConstructedDataPulseConverterAdjustValueParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_ADJUST_VALUE: // BACnetConstructedDataAdjustValue
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_ADJUST_VALUE && peekedTagNumber == uint8(3): // BACnetConstructedDataAdjustValue
 		_child, typeSwitchError = BACnetConstructedDataAdjustValueParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_ALARM_VALUE && peekedTagNumber == uint8(9): // BACnetConstructedDataAlarmValue
 		_child, typeSwitchError = BACnetConstructedDataAlarmValueParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
@@ -261,7 +261,7 @@ func BACnetConstructedDataParse(readBuffer utils.ReadBuffer, tagNumber uint8, ob
 		_child, typeSwitchError = BACnetConstructedDataAccessDoorAlarmValuesParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case objectTypeArgument == BACnetObjectType_ACCESS_ZONE && propertyIdentifierArgument == BACnetPropertyIdentifier_ALARM_VALUES: // BACnetConstructedDataAccessZoneAlarmValues
 		_child, typeSwitchError = BACnetConstructedDataAccessZoneAlarmValuesParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case objectTypeArgument == BACnetObjectType_BITSTRING_VALUE && propertyIdentifierArgument == BACnetPropertyIdentifier_ALARM_VALUES: // BACnetConstructedDataBitStringValueAlarmValues
+	case objectTypeArgument == BACnetObjectType_BITSTRING_VALUE && propertyIdentifierArgument == BACnetPropertyIdentifier_ALARM_VALUES && peekedTagNumber == uint8(8): // BACnetConstructedDataBitStringValueAlarmValues
 		_child, typeSwitchError = BACnetConstructedDataBitStringValueAlarmValuesParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case objectTypeArgument == BACnetObjectType_CHARACTERSTRING_VALUE && propertyIdentifierArgument == BACnetPropertyIdentifier_ALARM_VALUES: // BACnetConstructedDataCharacterStringValueAlarmValues
 		_child, typeSwitchError = BACnetConstructedDataCharacterStringValueAlarmValuesParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
@@ -269,15 +269,15 @@ func BACnetConstructedDataParse(readBuffer utils.ReadBuffer, tagNumber uint8, ob
 		_child, typeSwitchError = BACnetConstructedDataLifeSafetyPointAlarmValuesParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case objectTypeArgument == BACnetObjectType_LIFE_SAFETY_ZONE && propertyIdentifierArgument == BACnetPropertyIdentifier_ALARM_VALUES: // BACnetConstructedDataLifeSafetyZoneAlarmValues
 		_child, typeSwitchError = BACnetConstructedDataLifeSafetyZoneAlarmValuesParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case objectTypeArgument == BACnetObjectType_MULTI_STATE_INPUT && propertyIdentifierArgument == BACnetPropertyIdentifier_ALARM_VALUES: // BACnetConstructedDataMultiStateInputAlarmValues
+	case objectTypeArgument == BACnetObjectType_MULTI_STATE_INPUT && propertyIdentifierArgument == BACnetPropertyIdentifier_ALARM_VALUES && peekedTagNumber == uint8(2): // BACnetConstructedDataMultiStateInputAlarmValues
 		_child, typeSwitchError = BACnetConstructedDataMultiStateInputAlarmValuesParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case objectTypeArgument == BACnetObjectType_MULTI_STATE_VALUE && propertyIdentifierArgument == BACnetPropertyIdentifier_ALARM_VALUES: // BACnetConstructedDataMultiStateValueAlarmValues
+	case objectTypeArgument == BACnetObjectType_MULTI_STATE_VALUE && propertyIdentifierArgument == BACnetPropertyIdentifier_ALARM_VALUES && peekedTagNumber == uint8(2): // BACnetConstructedDataMultiStateValueAlarmValues
 		_child, typeSwitchError = BACnetConstructedDataMultiStateValueAlarmValuesParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case objectTypeArgument == BACnetObjectType_TIMER && propertyIdentifierArgument == BACnetPropertyIdentifier_ALARM_VALUES: // BACnetConstructedDataTimerAlarmValues
 		_child, typeSwitchError = BACnetConstructedDataTimerAlarmValuesParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_ALARM_VALUES: // BACnetConstructedDataAlarmValues
 		_child, typeSwitchError = BACnetConstructedDataAlarmValuesParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_ALIGN_INTERVALS: // BACnetConstructedDataAlignIntervals
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_ALIGN_INTERVALS && peekedTagNumber == uint8(1): // BACnetConstructedDataAlignIntervals
 		_child, typeSwitchError = BACnetConstructedDataAlignIntervalsParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case objectTypeArgument == BACnetObjectType_ACCESS_CREDENTIAL && propertyIdentifierArgument == BACnetPropertyIdentifier_ALL: // BACnetConstructedDataAccessCredentialAl
 		_child, typeSwitchError = BACnetConstructedDataAccessCredentialAlParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
@@ -399,67 +399,67 @@ func BACnetConstructedDataParse(readBuffer utils.ReadBuffer, tagNumber uint8, ob
 		_child, typeSwitchError = BACnetConstructedDataTrendLogAllParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case objectTypeArgument == BACnetObjectType_TREND_LOG_MULTIPLE && propertyIdentifierArgument == BACnetPropertyIdentifier_ALL: // BACnetConstructedDataTrendLogMultipleAll
 		_child, typeSwitchError = BACnetConstructedDataTrendLogMultipleAllParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_ALL_WRITES_SUCCESSFUL: // BACnetConstructedDataAllWritesSuccessful
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_ALL_WRITES_SUCCESSFUL && peekedTagNumber == uint8(1): // BACnetConstructedDataAllWritesSuccessful
 		_child, typeSwitchError = BACnetConstructedDataAllWritesSuccessfulParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_ALLOW_GROUP_DELAY_INHIBIT: // BACnetConstructedDataAllowGroupDelayInhibit
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_ALLOW_GROUP_DELAY_INHIBIT && peekedTagNumber == uint8(1): // BACnetConstructedDataAllowGroupDelayInhibit
 		_child, typeSwitchError = BACnetConstructedDataAllowGroupDelayInhibitParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_APDU_LENGTH: // BACnetConstructedDataAPDULength
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_APDU_LENGTH && peekedTagNumber == uint8(2): // BACnetConstructedDataAPDULength
 		_child, typeSwitchError = BACnetConstructedDataAPDULengthParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_APDU_SEGMENT_TIMEOUT: // BACnetConstructedDataAPDUSegmentTimeout
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_APDU_SEGMENT_TIMEOUT && peekedTagNumber == uint8(2): // BACnetConstructedDataAPDUSegmentTimeout
 		_child, typeSwitchError = BACnetConstructedDataAPDUSegmentTimeoutParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_APDU_TIMEOUT: // BACnetConstructedDataAPDUTimeout
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_APDU_TIMEOUT && peekedTagNumber == uint8(2): // BACnetConstructedDataAPDUTimeout
 		_child, typeSwitchError = BACnetConstructedDataAPDUTimeoutParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_APPLICATION_SOFTWARE_VERSION: // BACnetConstructedDataApplicationSoftwareVersion
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_APPLICATION_SOFTWARE_VERSION && peekedTagNumber == uint8(7): // BACnetConstructedDataApplicationSoftwareVersion
 		_child, typeSwitchError = BACnetConstructedDataApplicationSoftwareVersionParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_ARCHIVE: // BACnetConstructedDataArchive
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_ARCHIVE && peekedTagNumber == uint8(1): // BACnetConstructedDataArchive
 		_child, typeSwitchError = BACnetConstructedDataArchiveParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_ASSIGNED_ACCESS_RIGHTS: // BACnetConstructedDataAssignedAccessRights
 		_child, typeSwitchError = BACnetConstructedDataAssignedAccessRightsParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_ASSIGNED_LANDING_CALLS: // BACnetConstructedDataAssignedLandingCalls
 		_child, typeSwitchError = BACnetConstructedDataAssignedLandingCallsParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_ATTEMPTED_SAMPLES: // BACnetConstructedDataAttemptedSamples
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_ATTEMPTED_SAMPLES && peekedTagNumber == uint8(2): // BACnetConstructedDataAttemptedSamples
 		_child, typeSwitchError = BACnetConstructedDataAttemptedSamplesParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_AUTHENTICATION_FACTORS: // BACnetConstructedDataAuthenticationFactors
 		_child, typeSwitchError = BACnetConstructedDataAuthenticationFactorsParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_AUTHENTICATION_POLICY_LIST: // BACnetConstructedDataAuthenticationPolicyList
 		_child, typeSwitchError = BACnetConstructedDataAuthenticationPolicyListParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_AUTHENTICATION_POLICY_NAMES: // BACnetConstructedDataAuthenticationPolicyNames
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_AUTHENTICATION_POLICY_NAMES && peekedTagNumber == uint8(7): // BACnetConstructedDataAuthenticationPolicyNames
 		_child, typeSwitchError = BACnetConstructedDataAuthenticationPolicyNamesParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_AUTHENTICATION_STATUS: // BACnetConstructedDataAuthenticationStatus
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_AUTHENTICATION_STATUS && peekedTagNumber == uint8(9): // BACnetConstructedDataAuthenticationStatus
 		_child, typeSwitchError = BACnetConstructedDataAuthenticationStatusParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_AUTHORIZATION_EXEMPTIONS: // BACnetConstructedDataAuthorizationExemptions
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_AUTHORIZATION_EXEMPTIONS && peekedTagNumber == uint8(9): // BACnetConstructedDataAuthorizationExemptions
 		_child, typeSwitchError = BACnetConstructedDataAuthorizationExemptionsParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_AUTHORIZATION_MODE: // BACnetConstructedDataAuthorizationMode
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_AUTHORIZATION_MODE && peekedTagNumber == uint8(9): // BACnetConstructedDataAuthorizationMode
 		_child, typeSwitchError = BACnetConstructedDataAuthorizationModeParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_AUTO_SLAVE_DISCOVERY: // BACnetConstructedDataAutoSlaveDiscovery
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_AUTO_SLAVE_DISCOVERY && peekedTagNumber == uint8(1): // BACnetConstructedDataAutoSlaveDiscovery
 		_child, typeSwitchError = BACnetConstructedDataAutoSlaveDiscoveryParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_AVERAGE_VALUE: // BACnetConstructedDataAverageValue
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_AVERAGE_VALUE && peekedTagNumber == uint8(4): // BACnetConstructedDataAverageValue
 		_child, typeSwitchError = BACnetConstructedDataAverageValueParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_BACKUP_AND_RESTORE_STATE: // BACnetConstructedDataBackupAndRestoreState
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_BACKUP_AND_RESTORE_STATE && peekedTagNumber == uint8(9): // BACnetConstructedDataBackupAndRestoreState
 		_child, typeSwitchError = BACnetConstructedDataBackupAndRestoreStateParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_BACKUP_FAILURE_TIMEOUT: // BACnetConstructedDataBackupFailureTimeout
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_BACKUP_FAILURE_TIMEOUT && peekedTagNumber == uint8(2): // BACnetConstructedDataBackupFailureTimeout
 		_child, typeSwitchError = BACnetConstructedDataBackupFailureTimeoutParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_BACKUP_PREPARATION_TIME: // BACnetConstructedDataBackupPreparationTime
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_BACKUP_PREPARATION_TIME && peekedTagNumber == uint8(2): // BACnetConstructedDataBackupPreparationTime
 		_child, typeSwitchError = BACnetConstructedDataBackupPreparationTimeParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_BACNET_IP_GLOBAL_ADDRESS: // BACnetConstructedDataBACnetIPGlobalAddress
 		_child, typeSwitchError = BACnetConstructedDataBACnetIPGlobalAddressParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_BACNET_IP_MODE: // BACnetConstructedDataBACnetIPMode
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_BACNET_IP_MODE && peekedTagNumber == uint8(9): // BACnetConstructedDataBACnetIPMode
 		_child, typeSwitchError = BACnetConstructedDataBACnetIPModeParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_BACNET_IP_MULTICAST_ADDRESS: // BACnetConstructedDataBACnetIPMulticastAddress
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_BACNET_IP_MULTICAST_ADDRESS && peekedTagNumber == uint8(6): // BACnetConstructedDataBACnetIPMulticastAddress
 		_child, typeSwitchError = BACnetConstructedDataBACnetIPMulticastAddressParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_BACNET_IP_NAT_TRAVERSAL: // BACnetConstructedDataBACnetIPNATTraversal
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_BACNET_IP_NAT_TRAVERSAL && peekedTagNumber == uint8(1): // BACnetConstructedDataBACnetIPNATTraversal
 		_child, typeSwitchError = BACnetConstructedDataBACnetIPNATTraversalParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_BACNET_IP_UDP_PORT: // BACnetConstructedDataBACnetIPUDPPort
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_BACNET_IP_UDP_PORT && peekedTagNumber == uint8(2): // BACnetConstructedDataBACnetIPUDPPort
 		_child, typeSwitchError = BACnetConstructedDataBACnetIPUDPPortParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_BACNET_IPV6_MODE: // BACnetConstructedDataBACnetIPv6Mode
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_BACNET_IPV6_MODE && peekedTagNumber == uint8(9): // BACnetConstructedDataBACnetIPv6Mode
 		_child, typeSwitchError = BACnetConstructedDataBACnetIPv6ModeParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_BACNET_IPV6_UDP_PORT: // BACnetConstructedDataBACnetIPv6UDPPort
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_BACNET_IPV6_UDP_PORT && peekedTagNumber == uint8(2): // BACnetConstructedDataBACnetIPv6UDPPort
 		_child, typeSwitchError = BACnetConstructedDataBACnetIPv6UDPPortParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_BACNET_IPV6_MULTICAST_ADDRESS: // BACnetConstructedDataBACnetIPv6MulticastAddress
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_BACNET_IPV6_MULTICAST_ADDRESS && peekedTagNumber == uint8(6): // BACnetConstructedDataBACnetIPv6MulticastAddress
 		_child, typeSwitchError = BACnetConstructedDataBACnetIPv6MulticastAddressParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_BASE_DEVICE_SECURITY_POLICY: // BACnetConstructedDataBaseDeviceSecurityPolicy
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_BASE_DEVICE_SECURITY_POLICY && peekedTagNumber == uint8(9): // BACnetConstructedDataBaseDeviceSecurityPolicy
 		_child, typeSwitchError = BACnetConstructedDataBaseDeviceSecurityPolicyParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_BBMD_ACCEPT_FD_REGISTRATIONS: // BACnetConstructedDataBBMDAcceptFDRegistrations
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_BBMD_ACCEPT_FD_REGISTRATIONS && peekedTagNumber == uint8(1): // BACnetConstructedDataBBMDAcceptFDRegistrations
 		_child, typeSwitchError = BACnetConstructedDataBBMDAcceptFDRegistrationsParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_BBMD_BROADCAST_DISTRIBUTION_TABLE: // BACnetConstructedDataBBMDBroadcastDistributionTable
 		_child, typeSwitchError = BACnetConstructedDataBBMDBroadcastDistributionTableParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
@@ -467,87 +467,87 @@ func BACnetConstructedDataParse(readBuffer utils.ReadBuffer, tagNumber uint8, ob
 		_child, typeSwitchError = BACnetConstructedDataBBMDForeignDeviceTableParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_BELONGS_TO: // BACnetConstructedDataBelongsTo
 		_child, typeSwitchError = BACnetConstructedDataBelongsToParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_BIAS: // BACnetConstructedDataBias
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_BIAS && peekedTagNumber == uint8(4): // BACnetConstructedDataBias
 		_child, typeSwitchError = BACnetConstructedDataBiasParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_BIT_MASK: // BACnetConstructedDataBitMask
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_BIT_MASK && peekedTagNumber == uint8(8): // BACnetConstructedDataBitMask
 		_child, typeSwitchError = BACnetConstructedDataBitMaskParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_BIT_TEXT: // BACnetConstructedDataBitText
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_BIT_TEXT && peekedTagNumber == uint8(7): // BACnetConstructedDataBitText
 		_child, typeSwitchError = BACnetConstructedDataBitTextParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_BLINK_WARN_ENABLE: // BACnetConstructedDataBlinkWarnEnable
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_BLINK_WARN_ENABLE && peekedTagNumber == uint8(1): // BACnetConstructedDataBlinkWarnEnable
 		_child, typeSwitchError = BACnetConstructedDataBlinkWarnEnableParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_BUFFER_SIZE: // BACnetConstructedDataBufferSize
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_BUFFER_SIZE && peekedTagNumber == uint8(2): // BACnetConstructedDataBufferSize
 		_child, typeSwitchError = BACnetConstructedDataBufferSizeParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_CAR_ASSIGNED_DIRECTION: // BACnetConstructedDataCarAssignedDirection
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_CAR_ASSIGNED_DIRECTION && peekedTagNumber == uint8(9): // BACnetConstructedDataCarAssignedDirection
 		_child, typeSwitchError = BACnetConstructedDataCarAssignedDirectionParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_CAR_DOOR_COMMAND: // BACnetConstructedDataCarDoorCommand
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_CAR_DOOR_COMMAND && peekedTagNumber == uint8(9): // BACnetConstructedDataCarDoorCommand
 		_child, typeSwitchError = BACnetConstructedDataCarDoorCommandParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_CAR_DOOR_STATUS: // BACnetConstructedDataCarDoorStatus
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_CAR_DOOR_STATUS && peekedTagNumber == uint8(9): // BACnetConstructedDataCarDoorStatus
 		_child, typeSwitchError = BACnetConstructedDataCarDoorStatusParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_CAR_DOOR_TEXT: // BACnetConstructedDataCarDoorText
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_CAR_DOOR_TEXT && peekedTagNumber == uint8(7): // BACnetConstructedDataCarDoorText
 		_child, typeSwitchError = BACnetConstructedDataCarDoorTextParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_CAR_DOOR_ZONE: // BACnetConstructedDataCarDoorZone
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_CAR_DOOR_ZONE && peekedTagNumber == uint8(1): // BACnetConstructedDataCarDoorZone
 		_child, typeSwitchError = BACnetConstructedDataCarDoorZoneParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_CAR_DRIVE_STATUS: // BACnetConstructedDataCarDriveStatus
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_CAR_DRIVE_STATUS && peekedTagNumber == uint8(9): // BACnetConstructedDataCarDriveStatus
 		_child, typeSwitchError = BACnetConstructedDataCarDriveStatusParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_CAR_LOAD: // BACnetConstructedDataCarLoad
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_CAR_LOAD && peekedTagNumber == uint8(4): // BACnetConstructedDataCarLoad
 		_child, typeSwitchError = BACnetConstructedDataCarLoadParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_CAR_LOAD_UNITS: // BACnetConstructedDataCarLoadUnits
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_CAR_LOAD_UNITS && peekedTagNumber == uint8(9): // BACnetConstructedDataCarLoadUnits
 		_child, typeSwitchError = BACnetConstructedDataCarLoadUnitsParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_CAR_MODE: // BACnetConstructedDataCarMode
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_CAR_MODE && peekedTagNumber == uint8(9): // BACnetConstructedDataCarMode
 		_child, typeSwitchError = BACnetConstructedDataCarModeParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_CAR_MOVING_DIRECTION: // BACnetConstructedDataCarMovingDirection
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_CAR_MOVING_DIRECTION && peekedTagNumber == uint8(9): // BACnetConstructedDataCarMovingDirection
 		_child, typeSwitchError = BACnetConstructedDataCarMovingDirectionParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_CAR_POSITION: // BACnetConstructedDataCarPosition
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_CAR_POSITION && peekedTagNumber == uint8(2): // BACnetConstructedDataCarPosition
 		_child, typeSwitchError = BACnetConstructedDataCarPositionParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_CHANGE_OF_STATE_COUNT: // BACnetConstructedDataChangeOfStateCount
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_CHANGE_OF_STATE_COUNT && peekedTagNumber == uint8(2): // BACnetConstructedDataChangeOfStateCount
 		_child, typeSwitchError = BACnetConstructedDataChangeOfStateCountParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_CHANGE_OF_STATE_TIME: // BACnetConstructedDataChangeOfStateTime
 		_child, typeSwitchError = BACnetConstructedDataChangeOfStateTimeParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_CHANGES_PENDING: // BACnetConstructedDataChangesPending
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_CHANGES_PENDING && peekedTagNumber == uint8(1): // BACnetConstructedDataChangesPending
 		_child, typeSwitchError = BACnetConstructedDataChangesPendingParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_CHANNEL_NUMBER: // BACnetConstructedDataChannelNumber
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_CHANNEL_NUMBER && peekedTagNumber == uint8(2): // BACnetConstructedDataChannelNumber
 		_child, typeSwitchError = BACnetConstructedDataChannelNumberParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_CLIENT_COV_INCREMENT: // BACnetConstructedDataClientCOVIncrement
 		_child, typeSwitchError = BACnetConstructedDataClientCOVIncrementParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_COMMAND: // BACnetConstructedDataCommand
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_COMMAND && peekedTagNumber == uint8(9): // BACnetConstructedDataCommand
 		_child, typeSwitchError = BACnetConstructedDataCommandParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_COMMAND_TIME_ARRAY: // BACnetConstructedDataCommandTimeArray
 		_child, typeSwitchError = BACnetConstructedDataCommandTimeArrayParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_CONFIGURATION_FILES: // BACnetConstructedDataConfigurationFiles
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_CONFIGURATION_FILES && peekedTagNumber == uint8(12): // BACnetConstructedDataConfigurationFiles
 		_child, typeSwitchError = BACnetConstructedDataConfigurationFilesParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_CONTROL_GROUPS: // BACnetConstructedDataControlGroups
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_CONTROL_GROUPS && peekedTagNumber == uint8(2): // BACnetConstructedDataControlGroups
 		_child, typeSwitchError = BACnetConstructedDataControlGroupsParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_CONTROLLED_VARIABLE_REFERENCE: // BACnetConstructedDataControlledVariableReference
 		_child, typeSwitchError = BACnetConstructedDataControlledVariableReferenceParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_CONTROLLED_VARIABLE_UNITS: // BACnetConstructedDataControlledVariableUnits
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_CONTROLLED_VARIABLE_UNITS && peekedTagNumber == uint8(9): // BACnetConstructedDataControlledVariableUnits
 		_child, typeSwitchError = BACnetConstructedDataControlledVariableUnitsParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_CONTROLLED_VARIABLE_VALUE: // BACnetConstructedDataControlledVariableValue
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_CONTROLLED_VARIABLE_VALUE && peekedTagNumber == uint8(4): // BACnetConstructedDataControlledVariableValue
 		_child, typeSwitchError = BACnetConstructedDataControlledVariableValueParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_COUNT: // BACnetConstructedDataCount
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_COUNT && peekedTagNumber == uint8(2): // BACnetConstructedDataCount
 		_child, typeSwitchError = BACnetConstructedDataCountParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_COUNT_BEFORE_CHANGE: // BACnetConstructedDataCountBeforeChange
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_COUNT_BEFORE_CHANGE && peekedTagNumber == uint8(2): // BACnetConstructedDataCountBeforeChange
 		_child, typeSwitchError = BACnetConstructedDataCountBeforeChangeParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_COUNT_CHANGE_TIME: // BACnetConstructedDataCountChangeTime
 		_child, typeSwitchError = BACnetConstructedDataCountChangeTimeParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case objectTypeArgument == BACnetObjectType_INTEGER_VALUE && propertyIdentifierArgument == BACnetPropertyIdentifier_COV_INCREMENT: // BACnetConstructedDataIntegerValueCOVIncrement
+	case objectTypeArgument == BACnetObjectType_INTEGER_VALUE && propertyIdentifierArgument == BACnetPropertyIdentifier_COV_INCREMENT && peekedTagNumber == uint8(2): // BACnetConstructedDataIntegerValueCOVIncrement
 		_child, typeSwitchError = BACnetConstructedDataIntegerValueCOVIncrementParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case objectTypeArgument == BACnetObjectType_LARGE_ANALOG_VALUE && propertyIdentifierArgument == BACnetPropertyIdentifier_COV_INCREMENT: // BACnetConstructedDataLargeAnalogValueCOVIncrement
+	case objectTypeArgument == BACnetObjectType_LARGE_ANALOG_VALUE && propertyIdentifierArgument == BACnetPropertyIdentifier_COV_INCREMENT && peekedTagNumber == uint8(5): // BACnetConstructedDataLargeAnalogValueCOVIncrement
 		_child, typeSwitchError = BACnetConstructedDataLargeAnalogValueCOVIncrementParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case objectTypeArgument == BACnetObjectType_POSITIVE_INTEGER_VALUE && propertyIdentifierArgument == BACnetPropertyIdentifier_COV_INCREMENT: // BACnetConstructedDataPositiveIntegerValueCOVIncrement
+	case objectTypeArgument == BACnetObjectType_POSITIVE_INTEGER_VALUE && propertyIdentifierArgument == BACnetPropertyIdentifier_COV_INCREMENT && peekedTagNumber == uint8(2): // BACnetConstructedDataPositiveIntegerValueCOVIncrement
 		_child, typeSwitchError = BACnetConstructedDataPositiveIntegerValueCOVIncrementParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_COV_INCREMENT: // BACnetConstructedDataCOVIncrement
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_COV_INCREMENT && peekedTagNumber == uint8(4): // BACnetConstructedDataCOVIncrement
 		_child, typeSwitchError = BACnetConstructedDataCOVIncrementParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_COV_PERIOD: // BACnetConstructedDataCOVPeriod
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_COV_PERIOD && peekedTagNumber == uint8(2): // BACnetConstructedDataCOVPeriod
 		_child, typeSwitchError = BACnetConstructedDataCOVPeriodParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_COV_RESUBSCRIPTION_INTERVAL: // BACnetConstructedDataCOVResubscriptionInterval
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_COV_RESUBSCRIPTION_INTERVAL && peekedTagNumber == uint8(2): // BACnetConstructedDataCOVResubscriptionInterval
 		_child, typeSwitchError = BACnetConstructedDataCOVResubscriptionIntervalParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_COVU_PERIOD: // BACnetConstructedDataCOVUPeriod
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_COVU_PERIOD && peekedTagNumber == uint8(2): // BACnetConstructedDataCOVUPeriod
 		_child, typeSwitchError = BACnetConstructedDataCOVUPeriodParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_COVU_RECIPIENTS: // BACnetConstructedDataCOVURecipients
 		_child, typeSwitchError = BACnetConstructedDataCOVURecipientsParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_CREDENTIAL_DISABLE: // BACnetConstructedDataCredentialDisable
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_CREDENTIAL_DISABLE && peekedTagNumber == uint8(9): // BACnetConstructedDataCredentialDisable
 		_child, typeSwitchError = BACnetConstructedDataCredentialDisableParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_CREDENTIAL_STATUS: // BACnetConstructedDataCredentialStatus
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_CREDENTIAL_STATUS && peekedTagNumber == uint8(9): // BACnetConstructedDataCredentialStatus
 		_child, typeSwitchError = BACnetConstructedDataCredentialStatusParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_CREDENTIALS: // BACnetConstructedDataCredentials
 		_child, typeSwitchError = BACnetConstructedDataCredentialsParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
@@ -555,97 +555,97 @@ func BACnetConstructedDataParse(readBuffer utils.ReadBuffer, tagNumber uint8, ob
 		_child, typeSwitchError = BACnetConstructedDataCredentialsInZoneParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_CURRENT_COMMAND_PRIORITY: // BACnetConstructedDataCurrentCommandPriority
 		_child, typeSwitchError = BACnetConstructedDataCurrentCommandPriorityParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_DATABASE_REVISION: // BACnetConstructedDataDatabaseRevision
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_DATABASE_REVISION && peekedTagNumber == uint8(2): // BACnetConstructedDataDatabaseRevision
 		_child, typeSwitchError = BACnetConstructedDataDatabaseRevisionParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_DATE_LIST: // BACnetConstructedDataDateList
 		_child, typeSwitchError = BACnetConstructedDataDateListParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_DAYLIGHT_SAVINGS_STATUS: // BACnetConstructedDataDaylightSavingsStatus
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_DAYLIGHT_SAVINGS_STATUS && peekedTagNumber == uint8(1): // BACnetConstructedDataDaylightSavingsStatus
 		_child, typeSwitchError = BACnetConstructedDataDaylightSavingsStatusParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_DAYS_REMAINING: // BACnetConstructedDataDaysRemaining
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_DAYS_REMAINING && peekedTagNumber == uint8(3): // BACnetConstructedDataDaysRemaining
 		_child, typeSwitchError = BACnetConstructedDataDaysRemainingParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case objectTypeArgument == BACnetObjectType_INTEGER_VALUE && propertyIdentifierArgument == BACnetPropertyIdentifier_DEADBAND: // BACnetConstructedDataIntegerValueDeadband
+	case objectTypeArgument == BACnetObjectType_INTEGER_VALUE && propertyIdentifierArgument == BACnetPropertyIdentifier_DEADBAND && peekedTagNumber == uint8(2): // BACnetConstructedDataIntegerValueDeadband
 		_child, typeSwitchError = BACnetConstructedDataIntegerValueDeadbandParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case objectTypeArgument == BACnetObjectType_LARGE_ANALOG_VALUE && propertyIdentifierArgument == BACnetPropertyIdentifier_DEADBAND: // BACnetConstructedDataLargeAnalogValueDeadband
+	case objectTypeArgument == BACnetObjectType_LARGE_ANALOG_VALUE && propertyIdentifierArgument == BACnetPropertyIdentifier_DEADBAND && peekedTagNumber == uint8(5): // BACnetConstructedDataLargeAnalogValueDeadband
 		_child, typeSwitchError = BACnetConstructedDataLargeAnalogValueDeadbandParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case objectTypeArgument == BACnetObjectType_POSITIVE_INTEGER_VALUE && propertyIdentifierArgument == BACnetPropertyIdentifier_DEADBAND: // BACnetConstructedDataPositiveIntegerValueDeadband
+	case objectTypeArgument == BACnetObjectType_POSITIVE_INTEGER_VALUE && propertyIdentifierArgument == BACnetPropertyIdentifier_DEADBAND && peekedTagNumber == uint8(2): // BACnetConstructedDataPositiveIntegerValueDeadband
 		_child, typeSwitchError = BACnetConstructedDataPositiveIntegerValueDeadbandParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_DEADBAND: // BACnetConstructedDataDeadband
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_DEADBAND && peekedTagNumber == uint8(4): // BACnetConstructedDataDeadband
 		_child, typeSwitchError = BACnetConstructedDataDeadbandParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_DEFAULT_FADE_TIME: // BACnetConstructedDataDefaultFadeTime
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_DEFAULT_FADE_TIME && peekedTagNumber == uint8(2): // BACnetConstructedDataDefaultFadeTime
 		_child, typeSwitchError = BACnetConstructedDataDefaultFadeTimeParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_DEFAULT_RAMP_RATE: // BACnetConstructedDataDefaultRampRate
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_DEFAULT_RAMP_RATE && peekedTagNumber == uint8(4): // BACnetConstructedDataDefaultRampRate
 		_child, typeSwitchError = BACnetConstructedDataDefaultRampRateParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_DEFAULT_STEP_INCREMENT: // BACnetConstructedDataDefaultStepIncrement
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_DEFAULT_STEP_INCREMENT && peekedTagNumber == uint8(4): // BACnetConstructedDataDefaultStepIncrement
 		_child, typeSwitchError = BACnetConstructedDataDefaultStepIncrementParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_DEFAULT_SUBORDINATE_RELATIONSHIP: // BACnetConstructedDataDefaultSubordinateRelationship
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_DEFAULT_SUBORDINATE_RELATIONSHIP && peekedTagNumber == uint8(9): // BACnetConstructedDataDefaultSubordinateRelationship
 		_child, typeSwitchError = BACnetConstructedDataDefaultSubordinateRelationshipParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_DEFAULT_TIMEOUT: // BACnetConstructedDataDefaultTimeout
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_DEFAULT_TIMEOUT && peekedTagNumber == uint8(2): // BACnetConstructedDataDefaultTimeout
 		_child, typeSwitchError = BACnetConstructedDataDefaultTimeoutParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_DEPLOYED_PROFILE_LOCATION: // BACnetConstructedDataDeployedProfileLocation
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_DEPLOYED_PROFILE_LOCATION && peekedTagNumber == uint8(7): // BACnetConstructedDataDeployedProfileLocation
 		_child, typeSwitchError = BACnetConstructedDataDeployedProfileLocationParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_DERIVATIVE_CONSTANT: // BACnetConstructedDataDerivativeConstant
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_DERIVATIVE_CONSTANT && peekedTagNumber == uint8(4): // BACnetConstructedDataDerivativeConstant
 		_child, typeSwitchError = BACnetConstructedDataDerivativeConstantParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_DERIVATIVE_CONSTANT_UNITS: // BACnetConstructedDataDerivativeConstantUnits
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_DERIVATIVE_CONSTANT_UNITS && peekedTagNumber == uint8(9): // BACnetConstructedDataDerivativeConstantUnits
 		_child, typeSwitchError = BACnetConstructedDataDerivativeConstantUnitsParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_DESCRIPTION: // BACnetConstructedDataDescription
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_DESCRIPTION && peekedTagNumber == uint8(7): // BACnetConstructedDataDescription
 		_child, typeSwitchError = BACnetConstructedDataDescriptionParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_DESCRIPTION_OF_HALT: // BACnetConstructedDataDescriptionOfHalt
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_DESCRIPTION_OF_HALT && peekedTagNumber == uint8(7): // BACnetConstructedDataDescriptionOfHalt
 		_child, typeSwitchError = BACnetConstructedDataDescriptionOfHaltParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_DEVICE_ADDRESS_BINDING: // BACnetConstructedDataDeviceAddressBinding
 		_child, typeSwitchError = BACnetConstructedDataDeviceAddressBindingParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_DEVICE_TYPE: // BACnetConstructedDataDeviceType
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_DEVICE_TYPE && peekedTagNumber == uint8(7): // BACnetConstructedDataDeviceType
 		_child, typeSwitchError = BACnetConstructedDataDeviceTypeParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_DIRECT_READING: // BACnetConstructedDataDirectReading
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_DIRECT_READING && peekedTagNumber == uint8(4): // BACnetConstructedDataDirectReading
 		_child, typeSwitchError = BACnetConstructedDataDirectReadingParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_DISTRIBUTION_KEY_REVISION: // BACnetConstructedDataDistributionKeyRevision
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_DISTRIBUTION_KEY_REVISION && peekedTagNumber == uint8(2): // BACnetConstructedDataDistributionKeyRevision
 		_child, typeSwitchError = BACnetConstructedDataDistributionKeyRevisionParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_DO_NOT_HIDE: // BACnetConstructedDataDoNotHide
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_DO_NOT_HIDE && peekedTagNumber == uint8(1): // BACnetConstructedDataDoNotHide
 		_child, typeSwitchError = BACnetConstructedDataDoNotHideParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_DOOR_ALARM_STATE: // BACnetConstructedDataDoorAlarmState
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_DOOR_ALARM_STATE && peekedTagNumber == uint8(9): // BACnetConstructedDataDoorAlarmState
 		_child, typeSwitchError = BACnetConstructedDataDoorAlarmStateParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_DOOR_EXTENDED_PULSE_TIME: // BACnetConstructedDataDoorExtendedPulseTime
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_DOOR_EXTENDED_PULSE_TIME && peekedTagNumber == uint8(2): // BACnetConstructedDataDoorExtendedPulseTime
 		_child, typeSwitchError = BACnetConstructedDataDoorExtendedPulseTimeParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_DOOR_MEMBERS: // BACnetConstructedDataDoorMembers
 		_child, typeSwitchError = BACnetConstructedDataDoorMembersParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_DOOR_OPEN_TOO_LONG_TIME: // BACnetConstructedDataDoorOpenTooLongTime
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_DOOR_OPEN_TOO_LONG_TIME && peekedTagNumber == uint8(2): // BACnetConstructedDataDoorOpenTooLongTime
 		_child, typeSwitchError = BACnetConstructedDataDoorOpenTooLongTimeParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_DOOR_PULSE_TIME: // BACnetConstructedDataDoorPulseTime
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_DOOR_PULSE_TIME && peekedTagNumber == uint8(2): // BACnetConstructedDataDoorPulseTime
 		_child, typeSwitchError = BACnetConstructedDataDoorPulseTimeParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_DOOR_STATUS: // BACnetConstructedDataDoorStatus
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_DOOR_STATUS && peekedTagNumber == uint8(9): // BACnetConstructedDataDoorStatus
 		_child, typeSwitchError = BACnetConstructedDataDoorStatusParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_DOOR_UNLOCK_DELAY_TIME: // BACnetConstructedDataDoorUnlockDelayTime
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_DOOR_UNLOCK_DELAY_TIME && peekedTagNumber == uint8(2): // BACnetConstructedDataDoorUnlockDelayTime
 		_child, typeSwitchError = BACnetConstructedDataDoorUnlockDelayTimeParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_DUTY_WINDOW: // BACnetConstructedDataDutyWindow
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_DUTY_WINDOW && peekedTagNumber == uint8(2): // BACnetConstructedDataDutyWindow
 		_child, typeSwitchError = BACnetConstructedDataDutyWindowParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_EFFECTIVE_PERIOD: // BACnetConstructedDataEffectivePeriod
 		_child, typeSwitchError = BACnetConstructedDataEffectivePeriodParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_EGRESS_ACTIVE: // BACnetConstructedDataEgressActive
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_EGRESS_ACTIVE && peekedTagNumber == uint8(1): // BACnetConstructedDataEgressActive
 		_child, typeSwitchError = BACnetConstructedDataEgressActiveParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_EGRESS_TIME: // BACnetConstructedDataEgressTime
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_EGRESS_TIME && peekedTagNumber == uint8(2): // BACnetConstructedDataEgressTime
 		_child, typeSwitchError = BACnetConstructedDataEgressTimeParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_ELAPSED_ACTIVE_TIME: // BACnetConstructedDataElapsedActiveTime
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_ELAPSED_ACTIVE_TIME && peekedTagNumber == uint8(2): // BACnetConstructedDataElapsedActiveTime
 		_child, typeSwitchError = BACnetConstructedDataElapsedActiveTimeParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_ELEVATOR_GROUP: // BACnetConstructedDataElevatorGroup
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_ELEVATOR_GROUP && peekedTagNumber == uint8(12): // BACnetConstructedDataElevatorGroup
 		_child, typeSwitchError = BACnetConstructedDataElevatorGroupParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_ENABLE: // BACnetConstructedDataEnable
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_ENABLE && peekedTagNumber == uint8(1): // BACnetConstructedDataEnable
 		_child, typeSwitchError = BACnetConstructedDataEnableParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_ENERGY_METER: // BACnetConstructedDataEnergyMeter
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_ENERGY_METER && peekedTagNumber == uint8(4): // BACnetConstructedDataEnergyMeter
 		_child, typeSwitchError = BACnetConstructedDataEnergyMeterParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_ENERGY_METER_REF: // BACnetConstructedDataEnergyMeterRef
 		_child, typeSwitchError = BACnetConstructedDataEnergyMeterRefParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_ENTRY_POINTS: // BACnetConstructedDataEntryPoints
 		_child, typeSwitchError = BACnetConstructedDataEntryPointsParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_ERROR_LIMIT: // BACnetConstructedDataErrorLimit
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_ERROR_LIMIT && peekedTagNumber == uint8(4): // BACnetConstructedDataErrorLimit
 		_child, typeSwitchError = BACnetConstructedDataErrorLimitParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_ESCALATOR_MODE: // BACnetConstructedDataEscalatorMode
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_ESCALATOR_MODE && peekedTagNumber == uint8(9): // BACnetConstructedDataEscalatorMode
 		_child, typeSwitchError = BACnetConstructedDataEscalatorModeParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_EVENT_ALGORITHM_INHIBIT: // BACnetConstructedDataEventAlgorithmInhibit
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_EVENT_ALGORITHM_INHIBIT && peekedTagNumber == uint8(1): // BACnetConstructedDataEventAlgorithmInhibit
 		_child, typeSwitchError = BACnetConstructedDataEventAlgorithmInhibitParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_EVENT_ALGORITHM_INHIBIT_REF: // BACnetConstructedDataEventAlgorithmInhibitRef
 		_child, typeSwitchError = BACnetConstructedDataEventAlgorithmInhibitRefParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_EVENT_DETECTION_ENABLE: // BACnetConstructedDataEventDetectionEnable
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_EVENT_DETECTION_ENABLE && peekedTagNumber == uint8(1): // BACnetConstructedDataEventDetectionEnable
 		_child, typeSwitchError = BACnetConstructedDataEventDetectionEnableParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_EVENT_ENABLE: // BACnetConstructedDataEventEnable
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_EVENT_ENABLE && peekedTagNumber == uint8(8): // BACnetConstructedDataEventEnable
 		_child, typeSwitchError = BACnetConstructedDataEventEnableParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_EVENT_MESSAGE_TEXTS: // BACnetConstructedDataEventMessageTexts
 		_child, typeSwitchError = BACnetConstructedDataEventMessageTextsParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
@@ -653,15 +653,15 @@ func BACnetConstructedDataParse(readBuffer utils.ReadBuffer, tagNumber uint8, ob
 		_child, typeSwitchError = BACnetConstructedDataEventMessageTextsConfigParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_EVENT_PARAMETERS: // BACnetConstructedDataEventParameters
 		_child, typeSwitchError = BACnetConstructedDataEventParametersParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_EVENT_STATE: // BACnetConstructedDataEventState
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_EVENT_STATE && peekedTagNumber == uint8(9): // BACnetConstructedDataEventState
 		_child, typeSwitchError = BACnetConstructedDataEventStateParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_EVENT_TIME_STAMPS: // BACnetConstructedDataEventTimeStamps
 		_child, typeSwitchError = BACnetConstructedDataEventTimeStampsParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_EVENT_TYPE: // BACnetConstructedDataEventType
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_EVENT_TYPE && peekedTagNumber == uint8(9): // BACnetConstructedDataEventType
 		_child, typeSwitchError = BACnetConstructedDataEventTypeParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_EXCEPTION_SCHEDULE: // BACnetConstructedDataExceptionSchedule
 		_child, typeSwitchError = BACnetConstructedDataExceptionScheduleParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_EXECUTION_DELAY: // BACnetConstructedDataExecutionDelay
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_EXECUTION_DELAY && peekedTagNumber == uint8(2): // BACnetConstructedDataExecutionDelay
 		_child, typeSwitchError = BACnetConstructedDataExecutionDelayParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_EXIT_POINTS: // BACnetConstructedDataExitPoints
 		_child, typeSwitchError = BACnetConstructedDataExitPointsParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
@@ -669,41 +669,41 @@ func BACnetConstructedDataParse(readBuffer utils.ReadBuffer, tagNumber uint8, ob
 		_child, typeSwitchError = BACnetConstructedDataExpectedShedLevelParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_EXPIRATION_TIME: // BACnetConstructedDataExpirationTime
 		_child, typeSwitchError = BACnetConstructedDataExpirationTimeParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_EXTENDED_TIME_ENABLE: // BACnetConstructedDataExtendedTimeEnable
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_EXTENDED_TIME_ENABLE && peekedTagNumber == uint8(1): // BACnetConstructedDataExtendedTimeEnable
 		_child, typeSwitchError = BACnetConstructedDataExtendedTimeEnableParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_FAILED_ATTEMPT_EVENTS: // BACnetConstructedDataFailedAttemptEvents
 		_child, typeSwitchError = BACnetConstructedDataFailedAttemptEventsParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_FAILED_ATTEMPTS: // BACnetConstructedDataFailedAttempts
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_FAILED_ATTEMPTS && peekedTagNumber == uint8(2): // BACnetConstructedDataFailedAttempts
 		_child, typeSwitchError = BACnetConstructedDataFailedAttemptsParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_FAILED_ATTEMPTS_TIME: // BACnetConstructedDataFailedAttemptsTime
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_FAILED_ATTEMPTS_TIME && peekedTagNumber == uint8(2): // BACnetConstructedDataFailedAttemptsTime
 		_child, typeSwitchError = BACnetConstructedDataFailedAttemptsTimeParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case objectTypeArgument == BACnetObjectType_ACCUMULATOR && propertyIdentifierArgument == BACnetPropertyIdentifier_FAULT_HIGH_LIMIT: // BACnetConstructedDataAccumulatorFaultHighLimit
+	case objectTypeArgument == BACnetObjectType_ACCUMULATOR && propertyIdentifierArgument == BACnetPropertyIdentifier_FAULT_HIGH_LIMIT && peekedTagNumber == uint8(2): // BACnetConstructedDataAccumulatorFaultHighLimit
 		_child, typeSwitchError = BACnetConstructedDataAccumulatorFaultHighLimitParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case objectTypeArgument == BACnetObjectType_ANALOG_INPUT && propertyIdentifierArgument == BACnetPropertyIdentifier_FAULT_HIGH_LIMIT: // BACnetConstructedDataAnalogInputFaultHighLimit
+	case objectTypeArgument == BACnetObjectType_ANALOG_INPUT && propertyIdentifierArgument == BACnetPropertyIdentifier_FAULT_HIGH_LIMIT && peekedTagNumber == uint8(4): // BACnetConstructedDataAnalogInputFaultHighLimit
 		_child, typeSwitchError = BACnetConstructedDataAnalogInputFaultHighLimitParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case objectTypeArgument == BACnetObjectType_ANALOG_VALUE && propertyIdentifierArgument == BACnetPropertyIdentifier_FAULT_HIGH_LIMIT: // BACnetConstructedDataAnalogValueFaultHighLimit
+	case objectTypeArgument == BACnetObjectType_ANALOG_VALUE && propertyIdentifierArgument == BACnetPropertyIdentifier_FAULT_HIGH_LIMIT && peekedTagNumber == uint8(4): // BACnetConstructedDataAnalogValueFaultHighLimit
 		_child, typeSwitchError = BACnetConstructedDataAnalogValueFaultHighLimitParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case objectTypeArgument == BACnetObjectType_INTEGER_VALUE && propertyIdentifierArgument == BACnetPropertyIdentifier_FAULT_HIGH_LIMIT: // BACnetConstructedDataIntegerValueFaultHighLimit
+	case objectTypeArgument == BACnetObjectType_INTEGER_VALUE && propertyIdentifierArgument == BACnetPropertyIdentifier_FAULT_HIGH_LIMIT && peekedTagNumber == uint8(3): // BACnetConstructedDataIntegerValueFaultHighLimit
 		_child, typeSwitchError = BACnetConstructedDataIntegerValueFaultHighLimitParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case objectTypeArgument == BACnetObjectType_LARGE_ANALOG_VALUE && propertyIdentifierArgument == BACnetPropertyIdentifier_FAULT_HIGH_LIMIT: // BACnetConstructedDataLargeAnalogValueFaultHighLimit
+	case objectTypeArgument == BACnetObjectType_LARGE_ANALOG_VALUE && propertyIdentifierArgument == BACnetPropertyIdentifier_FAULT_HIGH_LIMIT && peekedTagNumber == uint8(5): // BACnetConstructedDataLargeAnalogValueFaultHighLimit
 		_child, typeSwitchError = BACnetConstructedDataLargeAnalogValueFaultHighLimitParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case objectTypeArgument == BACnetObjectType_POSITIVE_INTEGER_VALUE && propertyIdentifierArgument == BACnetPropertyIdentifier_FAULT_HIGH_LIMIT: // BACnetConstructedDataPositiveIntegerValueFaultHighLimit
+	case objectTypeArgument == BACnetObjectType_POSITIVE_INTEGER_VALUE && propertyIdentifierArgument == BACnetPropertyIdentifier_FAULT_HIGH_LIMIT && peekedTagNumber == uint8(2): // BACnetConstructedDataPositiveIntegerValueFaultHighLimit
 		_child, typeSwitchError = BACnetConstructedDataPositiveIntegerValueFaultHighLimitParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_FAULT_HIGH_LIMIT: // BACnetConstructedDataFaultHighLimit
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_FAULT_HIGH_LIMIT && peekedTagNumber == uint8(2): // BACnetConstructedDataFaultHighLimit
 		_child, typeSwitchError = BACnetConstructedDataFaultHighLimitParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case objectTypeArgument == BACnetObjectType_ACCUMULATOR && propertyIdentifierArgument == BACnetPropertyIdentifier_FAULT_LOW_LIMIT: // BACnetConstructedDataAccumulatorFaultLowLimit
+	case objectTypeArgument == BACnetObjectType_ACCUMULATOR && propertyIdentifierArgument == BACnetPropertyIdentifier_FAULT_LOW_LIMIT && peekedTagNumber == uint8(2): // BACnetConstructedDataAccumulatorFaultLowLimit
 		_child, typeSwitchError = BACnetConstructedDataAccumulatorFaultLowLimitParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case objectTypeArgument == BACnetObjectType_ANALOG_INPUT && propertyIdentifierArgument == BACnetPropertyIdentifier_FAULT_LOW_LIMIT: // BACnetConstructedDataAnalogInputFaultLowLimit
+	case objectTypeArgument == BACnetObjectType_ANALOG_INPUT && propertyIdentifierArgument == BACnetPropertyIdentifier_FAULT_LOW_LIMIT && peekedTagNumber == uint8(4): // BACnetConstructedDataAnalogInputFaultLowLimit
 		_child, typeSwitchError = BACnetConstructedDataAnalogInputFaultLowLimitParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case objectTypeArgument == BACnetObjectType_ANALOG_VALUE && propertyIdentifierArgument == BACnetPropertyIdentifier_FAULT_LOW_LIMIT: // BACnetConstructedDataAnalogValueFaultLowLimit
+	case objectTypeArgument == BACnetObjectType_ANALOG_VALUE && propertyIdentifierArgument == BACnetPropertyIdentifier_FAULT_LOW_LIMIT && peekedTagNumber == uint8(4): // BACnetConstructedDataAnalogValueFaultLowLimit
 		_child, typeSwitchError = BACnetConstructedDataAnalogValueFaultLowLimitParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case objectTypeArgument == BACnetObjectType_LARGE_ANALOG_VALUE && propertyIdentifierArgument == BACnetPropertyIdentifier_FAULT_LOW_LIMIT: // BACnetConstructedDataLargeAnalogValueFaultLowLimit
+	case objectTypeArgument == BACnetObjectType_LARGE_ANALOG_VALUE && propertyIdentifierArgument == BACnetPropertyIdentifier_FAULT_LOW_LIMIT && peekedTagNumber == uint8(5): // BACnetConstructedDataLargeAnalogValueFaultLowLimit
 		_child, typeSwitchError = BACnetConstructedDataLargeAnalogValueFaultLowLimitParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case objectTypeArgument == BACnetObjectType_INTEGER_VALUE && propertyIdentifierArgument == BACnetPropertyIdentifier_FAULT_LOW_LIMIT: // BACnetConstructedDataIntegerValueFaultLowLimit
+	case objectTypeArgument == BACnetObjectType_INTEGER_VALUE && propertyIdentifierArgument == BACnetPropertyIdentifier_FAULT_LOW_LIMIT && peekedTagNumber == uint8(3): // BACnetConstructedDataIntegerValueFaultLowLimit
 		_child, typeSwitchError = BACnetConstructedDataIntegerValueFaultLowLimitParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case objectTypeArgument == BACnetObjectType_POSITIVE_INTEGER_VALUE && propertyIdentifierArgument == BACnetPropertyIdentifier_FAULT_LOW_LIMIT: // BACnetConstructedDataPositiveIntegerValueFaultLowLimit
+	case objectTypeArgument == BACnetObjectType_POSITIVE_INTEGER_VALUE && propertyIdentifierArgument == BACnetPropertyIdentifier_FAULT_LOW_LIMIT && peekedTagNumber == uint8(2): // BACnetConstructedDataPositiveIntegerValueFaultLowLimit
 		_child, typeSwitchError = BACnetConstructedDataPositiveIntegerValueFaultLowLimitParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_FAULT_LOW_LIMIT: // BACnetConstructedDataFaultLowLimit
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_FAULT_LOW_LIMIT && peekedTagNumber == uint8(4): // BACnetConstructedDataFaultLowLimit
 		_child, typeSwitchError = BACnetConstructedDataFaultLowLimitParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_FAULT_PARAMETERS: // BACnetConstructedDataFaultParameters
 		_child, typeSwitchError = BACnetConstructedDataFaultParametersParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
@@ -713,7 +713,7 @@ func BACnetConstructedDataParse(readBuffer utils.ReadBuffer, tagNumber uint8, ob
 		_child, typeSwitchError = BACnetConstructedDataLiftFaultSignalsParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_FAULT_SIGNALS: // BACnetConstructedDataFaultSignals
 		_child, typeSwitchError = BACnetConstructedDataFaultSignalsParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_FAULT_TYPE: // BACnetConstructedDataFaultType
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_FAULT_TYPE && peekedTagNumber == uint8(9): // BACnetConstructedDataFaultType
 		_child, typeSwitchError = BACnetConstructedDataFaultTypeParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case objectTypeArgument == BACnetObjectType_ACCESS_DOOR && propertyIdentifierArgument == BACnetPropertyIdentifier_FAULT_VALUES: // BACnetConstructedDataAccessDoorFaultValues
 		_child, typeSwitchError = BACnetConstructedDataAccessDoorFaultValuesParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
@@ -723,81 +723,81 @@ func BACnetConstructedDataParse(readBuffer utils.ReadBuffer, tagNumber uint8, ob
 		_child, typeSwitchError = BACnetConstructedDataLifeSafetyPointFaultValuesParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case objectTypeArgument == BACnetObjectType_LIFE_SAFETY_ZONE && propertyIdentifierArgument == BACnetPropertyIdentifier_FAULT_VALUES: // BACnetConstructedDataLifeSafetyZoneFaultValues
 		_child, typeSwitchError = BACnetConstructedDataLifeSafetyZoneFaultValuesParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case objectTypeArgument == BACnetObjectType_MULTI_STATE_INPUT && propertyIdentifierArgument == BACnetPropertyIdentifier_FAULT_VALUES: // BACnetConstructedDataMultiStateInputFaultValues
+	case objectTypeArgument == BACnetObjectType_MULTI_STATE_INPUT && propertyIdentifierArgument == BACnetPropertyIdentifier_FAULT_VALUES && peekedTagNumber == uint8(2): // BACnetConstructedDataMultiStateInputFaultValues
 		_child, typeSwitchError = BACnetConstructedDataMultiStateInputFaultValuesParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case objectTypeArgument == BACnetObjectType_MULTI_STATE_VALUE && propertyIdentifierArgument == BACnetPropertyIdentifier_FAULT_VALUES: // BACnetConstructedDataMultiStateValueFaultValues
+	case objectTypeArgument == BACnetObjectType_MULTI_STATE_VALUE && propertyIdentifierArgument == BACnetPropertyIdentifier_FAULT_VALUES && peekedTagNumber == uint8(2): // BACnetConstructedDataMultiStateValueFaultValues
 		_child, typeSwitchError = BACnetConstructedDataMultiStateValueFaultValuesParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_FAULT_VALUES: // BACnetConstructedDataFaultValues
 		_child, typeSwitchError = BACnetConstructedDataFaultValuesParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_FD_BBMD_ADDRESS: // BACnetConstructedDataFDBBMDAddress
 		_child, typeSwitchError = BACnetConstructedDataFDBBMDAddressParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_FD_SUBSCRIPTION_LIFETIME: // BACnetConstructedDataFDSubscriptionLifetime
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_FD_SUBSCRIPTION_LIFETIME && peekedTagNumber == uint8(2): // BACnetConstructedDataFDSubscriptionLifetime
 		_child, typeSwitchError = BACnetConstructedDataFDSubscriptionLifetimeParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case objectTypeArgument == BACnetObjectType_BINARY_LIGHTING_OUTPUT && propertyIdentifierArgument == BACnetPropertyIdentifier_FEEDBACK_VALUE: // BACnetConstructedDataBinaryLightingOutputFeedbackValue
+	case objectTypeArgument == BACnetObjectType_BINARY_LIGHTING_OUTPUT && propertyIdentifierArgument == BACnetPropertyIdentifier_FEEDBACK_VALUE && peekedTagNumber == uint8(9): // BACnetConstructedDataBinaryLightingOutputFeedbackValue
 		_child, typeSwitchError = BACnetConstructedDataBinaryLightingOutputFeedbackValueParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case objectTypeArgument == BACnetObjectType_BINARY_OUTPUT && propertyIdentifierArgument == BACnetPropertyIdentifier_FEEDBACK_VALUE: // BACnetConstructedDataBinaryOutputFeedbackValue
+	case objectTypeArgument == BACnetObjectType_BINARY_OUTPUT && propertyIdentifierArgument == BACnetPropertyIdentifier_FEEDBACK_VALUE && peekedTagNumber == uint8(9): // BACnetConstructedDataBinaryOutputFeedbackValue
 		_child, typeSwitchError = BACnetConstructedDataBinaryOutputFeedbackValueParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case objectTypeArgument == BACnetObjectType_LIGHTING_OUTPUT && propertyIdentifierArgument == BACnetPropertyIdentifier_FEEDBACK_VALUE: // BACnetConstructedDataLightingOutputFeedbackValue
+	case objectTypeArgument == BACnetObjectType_LIGHTING_OUTPUT && propertyIdentifierArgument == BACnetPropertyIdentifier_FEEDBACK_VALUE && peekedTagNumber == uint8(4): // BACnetConstructedDataLightingOutputFeedbackValue
 		_child, typeSwitchError = BACnetConstructedDataLightingOutputFeedbackValueParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case objectTypeArgument == BACnetObjectType_MULTI_STATE_OUTPUT && propertyIdentifierArgument == BACnetPropertyIdentifier_FEEDBACK_VALUE: // BACnetConstructedDataMultiStateOutputFeedbackValue
+	case objectTypeArgument == BACnetObjectType_MULTI_STATE_OUTPUT && propertyIdentifierArgument == BACnetPropertyIdentifier_FEEDBACK_VALUE && peekedTagNumber == uint8(2): // BACnetConstructedDataMultiStateOutputFeedbackValue
 		_child, typeSwitchError = BACnetConstructedDataMultiStateOutputFeedbackValueParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_FILE_ACCESS_METHOD: // BACnetConstructedDataFileAccessMethod
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_FILE_ACCESS_METHOD && peekedTagNumber == uint8(9): // BACnetConstructedDataFileAccessMethod
 		_child, typeSwitchError = BACnetConstructedDataFileAccessMethodParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_FILE_SIZE: // BACnetConstructedDataFileSize
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_FILE_SIZE && peekedTagNumber == uint8(2): // BACnetConstructedDataFileSize
 		_child, typeSwitchError = BACnetConstructedDataFileSizeParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_FILE_TYPE: // BACnetConstructedDataFileType
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_FILE_TYPE && peekedTagNumber == uint8(7): // BACnetConstructedDataFileType
 		_child, typeSwitchError = BACnetConstructedDataFileTypeParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_FIRMWARE_REVISION: // BACnetConstructedDataFirmwareRevision
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_FIRMWARE_REVISION && peekedTagNumber == uint8(7): // BACnetConstructedDataFirmwareRevision
 		_child, typeSwitchError = BACnetConstructedDataFirmwareRevisionParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_FLOOR_TEXT: // BACnetConstructedDataFloorText
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_FLOOR_TEXT && peekedTagNumber == uint8(7): // BACnetConstructedDataFloorText
 		_child, typeSwitchError = BACnetConstructedDataFloorTextParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_FULL_DUTY_BASELINE: // BACnetConstructedDataFullDutyBaseline
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_FULL_DUTY_BASELINE && peekedTagNumber == uint8(4): // BACnetConstructedDataFullDutyBaseline
 		_child, typeSwitchError = BACnetConstructedDataFullDutyBaselineParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_GLOBAL_IDENTIFIER: // BACnetConstructedDataGlobalIdentifier
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_GLOBAL_IDENTIFIER && peekedTagNumber == uint8(2): // BACnetConstructedDataGlobalIdentifier
 		_child, typeSwitchError = BACnetConstructedDataGlobalIdentifierParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_GROUP_ID: // BACnetConstructedDataGroupID
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_GROUP_ID && peekedTagNumber == uint8(2): // BACnetConstructedDataGroupID
 		_child, typeSwitchError = BACnetConstructedDataGroupIDParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_GROUP_MEMBER_NAMES: // BACnetConstructedDataGroupMemberNames
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_GROUP_MEMBER_NAMES && peekedTagNumber == uint8(7): // BACnetConstructedDataGroupMemberNames
 		_child, typeSwitchError = BACnetConstructedDataGroupMemberNamesParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case objectTypeArgument == BACnetObjectType_GLOBAL_GROUP && propertyIdentifierArgument == BACnetPropertyIdentifier_GROUP_MEMBERS: // BACnetConstructedDataGlobalGroupGroupMembers
 		_child, typeSwitchError = BACnetConstructedDataGlobalGroupGroupMembersParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case objectTypeArgument == BACnetObjectType_ELEVATOR_GROUP && propertyIdentifierArgument == BACnetPropertyIdentifier_GROUP_MEMBERS: // BACnetConstructedDataElevatorGroupGroupMembers
+	case objectTypeArgument == BACnetObjectType_ELEVATOR_GROUP && propertyIdentifierArgument == BACnetPropertyIdentifier_GROUP_MEMBERS && peekedTagNumber == uint8(12): // BACnetConstructedDataElevatorGroupGroupMembers
 		_child, typeSwitchError = BACnetConstructedDataElevatorGroupGroupMembersParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_GROUP_MEMBERS: // BACnetConstructedDataGroupMembers
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_GROUP_MEMBERS && peekedTagNumber == uint8(12): // BACnetConstructedDataGroupMembers
 		_child, typeSwitchError = BACnetConstructedDataGroupMembersParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_GROUP_MODE: // BACnetConstructedDataGroupMode
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_GROUP_MODE && peekedTagNumber == uint8(9): // BACnetConstructedDataGroupMode
 		_child, typeSwitchError = BACnetConstructedDataGroupModeParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case objectTypeArgument == BACnetObjectType_ACCUMULATOR && propertyIdentifierArgument == BACnetPropertyIdentifier_HIGH_LIMIT: // BACnetConstructedDataAccumulatorHighLimit
+	case objectTypeArgument == BACnetObjectType_ACCUMULATOR && propertyIdentifierArgument == BACnetPropertyIdentifier_HIGH_LIMIT && peekedTagNumber == uint8(2): // BACnetConstructedDataAccumulatorHighLimit
 		_child, typeSwitchError = BACnetConstructedDataAccumulatorHighLimitParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case objectTypeArgument == BACnetObjectType_LARGE_ANALOG_VALUE && propertyIdentifierArgument == BACnetPropertyIdentifier_HIGH_LIMIT: // BACnetConstructedDataLargeAnalogValueHighLimit
+	case objectTypeArgument == BACnetObjectType_LARGE_ANALOG_VALUE && propertyIdentifierArgument == BACnetPropertyIdentifier_HIGH_LIMIT && peekedTagNumber == uint8(5): // BACnetConstructedDataLargeAnalogValueHighLimit
 		_child, typeSwitchError = BACnetConstructedDataLargeAnalogValueHighLimitParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case objectTypeArgument == BACnetObjectType_INTEGER_VALUE && propertyIdentifierArgument == BACnetPropertyIdentifier_HIGH_LIMIT: // BACnetConstructedDataIntegerValueHighLimit
+	case objectTypeArgument == BACnetObjectType_INTEGER_VALUE && propertyIdentifierArgument == BACnetPropertyIdentifier_HIGH_LIMIT && peekedTagNumber == uint8(3): // BACnetConstructedDataIntegerValueHighLimit
 		_child, typeSwitchError = BACnetConstructedDataIntegerValueHighLimitParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case objectTypeArgument == BACnetObjectType_POSITIVE_INTEGER_VALUE && propertyIdentifierArgument == BACnetPropertyIdentifier_HIGH_LIMIT: // BACnetConstructedDataPositiveIntegerValueHighLimit
+	case objectTypeArgument == BACnetObjectType_POSITIVE_INTEGER_VALUE && propertyIdentifierArgument == BACnetPropertyIdentifier_HIGH_LIMIT && peekedTagNumber == uint8(2): // BACnetConstructedDataPositiveIntegerValueHighLimit
 		_child, typeSwitchError = BACnetConstructedDataPositiveIntegerValueHighLimitParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_HIGH_LIMIT: // BACnetConstructedDataHighLimit
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_HIGH_LIMIT && peekedTagNumber == uint8(4): // BACnetConstructedDataHighLimit
 		_child, typeSwitchError = BACnetConstructedDataHighLimitParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_HIGHER_DECK: // BACnetConstructedDataHigherDeck
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_HIGHER_DECK && peekedTagNumber == uint8(12): // BACnetConstructedDataHigherDeck
 		_child, typeSwitchError = BACnetConstructedDataHigherDeckParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_IN_PROCESS: // BACnetConstructedDataInProcess
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_IN_PROCESS && peekedTagNumber == uint8(1): // BACnetConstructedDataInProcess
 		_child, typeSwitchError = BACnetConstructedDataInProcessParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_IN_PROGRESS: // BACnetConstructedDataInProgress
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_IN_PROGRESS && peekedTagNumber == uint8(9): // BACnetConstructedDataInProgress
 		_child, typeSwitchError = BACnetConstructedDataInProgressParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_INACTIVE_TEXT: // BACnetConstructedDataInactiveText
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_INACTIVE_TEXT && peekedTagNumber == uint8(7): // BACnetConstructedDataInactiveText
 		_child, typeSwitchError = BACnetConstructedDataInactiveTextParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_INITIAL_TIMEOUT: // BACnetConstructedDataInitialTimeout
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_INITIAL_TIMEOUT && peekedTagNumber == uint8(2): // BACnetConstructedDataInitialTimeout
 		_child, typeSwitchError = BACnetConstructedDataInitialTimeoutParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_INPUT_REFERENCE: // BACnetConstructedDataInputReference
 		_child, typeSwitchError = BACnetConstructedDataInputReferenceParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_INSTALLATION_ID: // BACnetConstructedDataInstallationID
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_INSTALLATION_ID && peekedTagNumber == uint8(2): // BACnetConstructedDataInstallationID
 		_child, typeSwitchError = BACnetConstructedDataInstallationIDParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_INSTANCE_OF: // BACnetConstructedDataInstanceOf
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_INSTANCE_OF && peekedTagNumber == uint8(7): // BACnetConstructedDataInstanceOf
 		_child, typeSwitchError = BACnetConstructedDataInstanceOfParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_INSTANTANEOUS_POWER: // BACnetConstructedDataInstantaneousPower
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_INSTANTANEOUS_POWER && peekedTagNumber == uint8(4): // BACnetConstructedDataInstantaneousPower
 		_child, typeSwitchError = BACnetConstructedDataInstantaneousPowerParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_INTEGRAL_CONSTANT: // BACnetConstructedDataIntegralConstant
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_INTEGRAL_CONSTANT && peekedTagNumber == uint8(4): // BACnetConstructedDataIntegralConstant
 		_child, typeSwitchError = BACnetConstructedDataIntegralConstantParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_INTEGRAL_CONSTANT_UNITS: // BACnetConstructedDataIntegralConstantUnits
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_INTEGRAL_CONSTANT_UNITS && peekedTagNumber == uint8(9): // BACnetConstructedDataIntegralConstantUnits
 		_child, typeSwitchError = BACnetConstructedDataIntegralConstantUnitsParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case objectTypeArgument == BACnetObjectType_ANALOG_INPUT && propertyIdentifierArgument == BACnetPropertyIdentifier_INTERFACE_VALUE: // BACnetConstructedDataAnalogInputInterfaceValue
 		_child, typeSwitchError = BACnetConstructedDataAnalogInputInterfaceValueParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
@@ -811,43 +811,43 @@ func BACnetConstructedDataParse(readBuffer utils.ReadBuffer, tagNumber uint8, ob
 		_child, typeSwitchError = BACnetConstructedDataMultiStateInputInterfaceValueParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case objectTypeArgument == BACnetObjectType_MULTI_STATE_OUTPUT && propertyIdentifierArgument == BACnetPropertyIdentifier_INTERFACE_VALUE: // BACnetConstructedDataMultiStateOutputInterfaceValue
 		_child, typeSwitchError = BACnetConstructedDataMultiStateOutputInterfaceValueParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_INTERVAL_OFFSET: // BACnetConstructedDataIntervalOffset
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_INTERVAL_OFFSET && peekedTagNumber == uint8(2): // BACnetConstructedDataIntervalOffset
 		_child, typeSwitchError = BACnetConstructedDataIntervalOffsetParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_IP_ADDRESS: // BACnetConstructedDataIPAddress
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_IP_ADDRESS && peekedTagNumber == uint8(6): // BACnetConstructedDataIPAddress
 		_child, typeSwitchError = BACnetConstructedDataIPAddressParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_IP_DEFAULT_GATEWAY: // BACnetConstructedDataIPDefaultGateway
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_IP_DEFAULT_GATEWAY && peekedTagNumber == uint8(6): // BACnetConstructedDataIPDefaultGateway
 		_child, typeSwitchError = BACnetConstructedDataIPDefaultGatewayParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_IP_DHCP_ENABLE: // BACnetConstructedDataIPDHCPEnable
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_IP_DHCP_ENABLE && peekedTagNumber == uint8(1): // BACnetConstructedDataIPDHCPEnable
 		_child, typeSwitchError = BACnetConstructedDataIPDHCPEnableParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_IP_DHCP_LEASE_TIME: // BACnetConstructedDataIPDHCPLeaseTime
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_IP_DHCP_LEASE_TIME && peekedTagNumber == uint8(2): // BACnetConstructedDataIPDHCPLeaseTime
 		_child, typeSwitchError = BACnetConstructedDataIPDHCPLeaseTimeParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_IP_DHCP_LEASE_TIME_REMAINING: // BACnetConstructedDataIPDHCPLeaseTimeRemaining
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_IP_DHCP_LEASE_TIME_REMAINING && peekedTagNumber == uint8(2): // BACnetConstructedDataIPDHCPLeaseTimeRemaining
 		_child, typeSwitchError = BACnetConstructedDataIPDHCPLeaseTimeRemainingParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_IP_DHCP_SERVER: // BACnetConstructedDataIPDHCPServer
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_IP_DHCP_SERVER && peekedTagNumber == uint8(6): // BACnetConstructedDataIPDHCPServer
 		_child, typeSwitchError = BACnetConstructedDataIPDHCPServerParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_IP_DNS_SERVER: // BACnetConstructedDataIPDNSServer
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_IP_DNS_SERVER && peekedTagNumber == uint8(6): // BACnetConstructedDataIPDNSServer
 		_child, typeSwitchError = BACnetConstructedDataIPDNSServerParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_IP_SUBNET_MASK: // BACnetConstructedDataIPSubnetMask
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_IP_SUBNET_MASK && peekedTagNumber == uint8(6): // BACnetConstructedDataIPSubnetMask
 		_child, typeSwitchError = BACnetConstructedDataIPSubnetMaskParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_IPV6_ADDRESS: // BACnetConstructedDataIPv6Address
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_IPV6_ADDRESS && peekedTagNumber == uint8(6): // BACnetConstructedDataIPv6Address
 		_child, typeSwitchError = BACnetConstructedDataIPv6AddressParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_IPV6_AUTO_ADDRESSING_ENABLE: // BACnetConstructedDataIPv6AutoAddressingEnable
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_IPV6_AUTO_ADDRESSING_ENABLE && peekedTagNumber == uint8(1): // BACnetConstructedDataIPv6AutoAddressingEnable
 		_child, typeSwitchError = BACnetConstructedDataIPv6AutoAddressingEnableParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_IPV6_DEFAULT_GATEWAY: // BACnetConstructedDataIPv6DefaultGateway
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_IPV6_DEFAULT_GATEWAY && peekedTagNumber == uint8(6): // BACnetConstructedDataIPv6DefaultGateway
 		_child, typeSwitchError = BACnetConstructedDataIPv6DefaultGatewayParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_IPV6_DHCP_LEASE_TIME: // BACnetConstructedDataIPv6DHCPLeaseTime
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_IPV6_DHCP_LEASE_TIME && peekedTagNumber == uint8(2): // BACnetConstructedDataIPv6DHCPLeaseTime
 		_child, typeSwitchError = BACnetConstructedDataIPv6DHCPLeaseTimeParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_IPV6_DHCP_LEASE_TIME_REMAINING: // BACnetConstructedDataIPv6DHCPLeaseTimeRemaining
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_IPV6_DHCP_LEASE_TIME_REMAINING && peekedTagNumber == uint8(2): // BACnetConstructedDataIPv6DHCPLeaseTimeRemaining
 		_child, typeSwitchError = BACnetConstructedDataIPv6DHCPLeaseTimeRemainingParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_IPV6_DHCP_SERVER: // BACnetConstructedDataIPv6DHCPServer
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_IPV6_DHCP_SERVER && peekedTagNumber == uint8(6): // BACnetConstructedDataIPv6DHCPServer
 		_child, typeSwitchError = BACnetConstructedDataIPv6DHCPServerParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_IPV6_DNS_SERVER: // BACnetConstructedDataIPv6DNSServer
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_IPV6_DNS_SERVER && peekedTagNumber == uint8(6): // BACnetConstructedDataIPv6DNSServer
 		_child, typeSwitchError = BACnetConstructedDataIPv6DNSServerParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_IPV6_PREFIX_LENGTH: // BACnetConstructedDataIPv6PrefixLength
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_IPV6_PREFIX_LENGTH && peekedTagNumber == uint8(2): // BACnetConstructedDataIPv6PrefixLength
 		_child, typeSwitchError = BACnetConstructedDataIPv6PrefixLengthParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_IPV6_ZONE_INDEX: // BACnetConstructedDataIPv6ZoneIndex
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_IPV6_ZONE_INDEX && peekedTagNumber == uint8(7): // BACnetConstructedDataIPv6ZoneIndex
 		_child, typeSwitchError = BACnetConstructedDataIPv6ZoneIndexParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_IS_UTC: // BACnetConstructedDataIsUTC
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_IS_UTC && peekedTagNumber == uint8(1): // BACnetConstructedDataIsUTC
 		_child, typeSwitchError = BACnetConstructedDataIsUTCParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_KEY_SETS: // BACnetConstructedDataKeySets
 		_child, typeSwitchError = BACnetConstructedDataKeySetsParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
@@ -857,7 +857,7 @@ func BACnetConstructedDataParse(readBuffer utils.ReadBuffer, tagNumber uint8, ob
 		_child, typeSwitchError = BACnetConstructedDataLandingCallsParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_LANDING_DOOR_STATUS: // BACnetConstructedDataLandingDoorStatus
 		_child, typeSwitchError = BACnetConstructedDataLandingDoorStatusParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_LAST_ACCESS_EVENT: // BACnetConstructedDataLastAccessEvent
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_LAST_ACCESS_EVENT && peekedTagNumber == uint8(9): // BACnetConstructedDataLastAccessEvent
 		_child, typeSwitchError = BACnetConstructedDataLastAccessEventParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_LAST_ACCESS_POINT: // BACnetConstructedDataLastAccessPoint
 		_child, typeSwitchError = BACnetConstructedDataLastAccessPointParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
@@ -873,33 +873,33 @@ func BACnetConstructedDataParse(readBuffer utils.ReadBuffer, tagNumber uint8, ob
 		_child, typeSwitchError = BACnetConstructedDataLastCredentialRemovedTimeParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_LAST_KEY_SERVER: // BACnetConstructedDataLastKeyServer
 		_child, typeSwitchError = BACnetConstructedDataLastKeyServerParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_LAST_NOTIFY_RECORD: // BACnetConstructedDataLastNotifyRecord
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_LAST_NOTIFY_RECORD && peekedTagNumber == uint8(2): // BACnetConstructedDataLastNotifyRecord
 		_child, typeSwitchError = BACnetConstructedDataLastNotifyRecordParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_LAST_PRIORITY: // BACnetConstructedDataLastPriority
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_LAST_PRIORITY && peekedTagNumber == uint8(2): // BACnetConstructedDataLastPriority
 		_child, typeSwitchError = BACnetConstructedDataLastPriorityParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_LAST_RESTART_REASON: // BACnetConstructedDataLastRestartReason
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_LAST_RESTART_REASON && peekedTagNumber == uint8(9): // BACnetConstructedDataLastRestartReason
 		_child, typeSwitchError = BACnetConstructedDataLastRestartReasonParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_LAST_RESTORE_TIME: // BACnetConstructedDataLastRestoreTime
 		_child, typeSwitchError = BACnetConstructedDataLastRestoreTimeParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_LAST_STATE_CHANGE: // BACnetConstructedDataLastStateChange
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_LAST_STATE_CHANGE && peekedTagNumber == uint8(9): // BACnetConstructedDataLastStateChange
 		_child, typeSwitchError = BACnetConstructedDataLastStateChangeParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_LAST_USE_TIME: // BACnetConstructedDataLastUseTime
 		_child, typeSwitchError = BACnetConstructedDataLastUseTimeParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_LIFE_SAFETY_ALARM_VALUES: // BACnetConstructedDataLifeSafetyAlarmValues
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_LIFE_SAFETY_ALARM_VALUES && peekedTagNumber == uint8(9): // BACnetConstructedDataLifeSafetyAlarmValues
 		_child, typeSwitchError = BACnetConstructedDataLifeSafetyAlarmValuesParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_LIGHTING_COMMAND: // BACnetConstructedDataLightingCommand
 		_child, typeSwitchError = BACnetConstructedDataLightingCommandParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_LIGHTING_COMMAND_DEFAULT_PRIORITY: // BACnetConstructedDataLightingCommandDefaultPriority
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_LIGHTING_COMMAND_DEFAULT_PRIORITY && peekedTagNumber == uint8(2): // BACnetConstructedDataLightingCommandDefaultPriority
 		_child, typeSwitchError = BACnetConstructedDataLightingCommandDefaultPriorityParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_LIMIT_ENABLE: // BACnetConstructedDataLimitEnable
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_LIMIT_ENABLE && peekedTagNumber == uint8(8): // BACnetConstructedDataLimitEnable
 		_child, typeSwitchError = BACnetConstructedDataLimitEnableParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_LIMIT_MONITORING_INTERVAL: // BACnetConstructedDataLimitMonitoringInterval
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_LIMIT_MONITORING_INTERVAL && peekedTagNumber == uint8(2): // BACnetConstructedDataLimitMonitoringInterval
 		_child, typeSwitchError = BACnetConstructedDataLimitMonitoringIntervalParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_LINK_SPEED: // BACnetConstructedDataLinkSpeed
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_LINK_SPEED && peekedTagNumber == uint8(4): // BACnetConstructedDataLinkSpeed
 		_child, typeSwitchError = BACnetConstructedDataLinkSpeedParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_LINK_SPEED_AUTONEGOTIATE: // BACnetConstructedDataLinkSpeedAutonegotiate
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_LINK_SPEED_AUTONEGOTIATE && peekedTagNumber == uint8(1): // BACnetConstructedDataLinkSpeedAutonegotiate
 		_child, typeSwitchError = BACnetConstructedDataLinkSpeedAutonegotiateParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_LINK_SPEEDS: // BACnetConstructedDataLinkSpeeds
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_LINK_SPEEDS && peekedTagNumber == uint8(4): // BACnetConstructedDataLinkSpeeds
 		_child, typeSwitchError = BACnetConstructedDataLinkSpeedsParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_LIST_OF_GROUP_MEMBERS: // BACnetConstructedDataListOfGroupMembers
 		_child, typeSwitchError = BACnetConstructedDataListOfGroupMembersParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
@@ -907,19 +907,19 @@ func BACnetConstructedDataParse(readBuffer utils.ReadBuffer, tagNumber uint8, ob
 		_child, typeSwitchError = BACnetConstructedDataChannelListOfObjectPropertyReferencesParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_LIST_OF_OBJECT_PROPERTY_REFERENCES: // BACnetConstructedDataListOfObjectPropertyReferences
 		_child, typeSwitchError = BACnetConstructedDataListOfObjectPropertyReferencesParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_LOCAL_DATE: // BACnetConstructedDataLocalDate
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_LOCAL_DATE && peekedTagNumber == uint8(10): // BACnetConstructedDataLocalDate
 		_child, typeSwitchError = BACnetConstructedDataLocalDateParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_LOCAL_FORWARDING_ONLY: // BACnetConstructedDataLocalForwardingOnly
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_LOCAL_FORWARDING_ONLY && peekedTagNumber == uint8(1): // BACnetConstructedDataLocalForwardingOnly
 		_child, typeSwitchError = BACnetConstructedDataLocalForwardingOnlyParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_LOCAL_TIME: // BACnetConstructedDataLocalTime
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_LOCAL_TIME && peekedTagNumber == uint8(11): // BACnetConstructedDataLocalTime
 		_child, typeSwitchError = BACnetConstructedDataLocalTimeParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_LOCATION: // BACnetConstructedDataLocation
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_LOCATION && peekedTagNumber == uint8(7): // BACnetConstructedDataLocation
 		_child, typeSwitchError = BACnetConstructedDataLocationParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_LOCK_STATUS: // BACnetConstructedDataLockStatus
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_LOCK_STATUS && peekedTagNumber == uint8(9): // BACnetConstructedDataLockStatus
 		_child, typeSwitchError = BACnetConstructedDataLockStatusParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_LOCKOUT: // BACnetConstructedDataLockout
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_LOCKOUT && peekedTagNumber == uint8(1): // BACnetConstructedDataLockout
 		_child, typeSwitchError = BACnetConstructedDataLockoutParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_LOCKOUT_RELINQUISH_TIME: // BACnetConstructedDataLockoutRelinquishTime
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_LOCKOUT_RELINQUISH_TIME && peekedTagNumber == uint8(2): // BACnetConstructedDataLockoutRelinquishTime
 		_child, typeSwitchError = BACnetConstructedDataLockoutRelinquishTimeParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case objectTypeArgument == BACnetObjectType_EVENT_LOG && propertyIdentifierArgument == BACnetPropertyIdentifier_LOG_BUFFER: // BACnetConstructedDataEventLogLogBuffer
 		_child, typeSwitchError = BACnetConstructedDataEventLogLogBufferParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
@@ -935,35 +935,35 @@ func BACnetConstructedDataParse(readBuffer utils.ReadBuffer, tagNumber uint8, ob
 		_child, typeSwitchError = BACnetConstructedDataTrendLogMultipleLogDeviceObjectPropertyParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_LOG_DEVICE_OBJECT_PROPERTY: // BACnetConstructedDataLogDeviceObjectProperty
 		_child, typeSwitchError = BACnetConstructedDataLogDeviceObjectPropertyParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_LOG_INTERVAL: // BACnetConstructedDataLogInterval
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_LOG_INTERVAL && peekedTagNumber == uint8(2): // BACnetConstructedDataLogInterval
 		_child, typeSwitchError = BACnetConstructedDataLogIntervalParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_LOGGING_OBJECT: // BACnetConstructedDataLoggingObject
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_LOGGING_OBJECT && peekedTagNumber == uint8(12): // BACnetConstructedDataLoggingObject
 		_child, typeSwitchError = BACnetConstructedDataLoggingObjectParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_LOGGING_RECORD: // BACnetConstructedDataLoggingRecord
 		_child, typeSwitchError = BACnetConstructedDataLoggingRecordParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_LOGGING_TYPE: // BACnetConstructedDataLoggingType
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_LOGGING_TYPE && peekedTagNumber == uint8(9): // BACnetConstructedDataLoggingType
 		_child, typeSwitchError = BACnetConstructedDataLoggingTypeParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_LOW_DIFF_LIMIT: // BACnetConstructedDataLowDiffLimit
 		_child, typeSwitchError = BACnetConstructedDataLowDiffLimitParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case objectTypeArgument == BACnetObjectType_ACCUMULATOR && propertyIdentifierArgument == BACnetPropertyIdentifier_LOW_LIMIT: // BACnetConstructedDataAccumulatorLowLimit
+	case objectTypeArgument == BACnetObjectType_ACCUMULATOR && propertyIdentifierArgument == BACnetPropertyIdentifier_LOW_LIMIT && peekedTagNumber == uint8(2): // BACnetConstructedDataAccumulatorLowLimit
 		_child, typeSwitchError = BACnetConstructedDataAccumulatorLowLimitParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case objectTypeArgument == BACnetObjectType_LARGE_ANALOG_VALUE && propertyIdentifierArgument == BACnetPropertyIdentifier_LOW_LIMIT: // BACnetConstructedDataLargeAnalogValueLowLimit
+	case objectTypeArgument == BACnetObjectType_LARGE_ANALOG_VALUE && propertyIdentifierArgument == BACnetPropertyIdentifier_LOW_LIMIT && peekedTagNumber == uint8(5): // BACnetConstructedDataLargeAnalogValueLowLimit
 		_child, typeSwitchError = BACnetConstructedDataLargeAnalogValueLowLimitParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case objectTypeArgument == BACnetObjectType_INTEGER_VALUE && propertyIdentifierArgument == BACnetPropertyIdentifier_LOW_LIMIT: // BACnetConstructedDataIntegerValueLowLimit
+	case objectTypeArgument == BACnetObjectType_INTEGER_VALUE && propertyIdentifierArgument == BACnetPropertyIdentifier_LOW_LIMIT && peekedTagNumber == uint8(3): // BACnetConstructedDataIntegerValueLowLimit
 		_child, typeSwitchError = BACnetConstructedDataIntegerValueLowLimitParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case objectTypeArgument == BACnetObjectType_POSITIVE_INTEGER_VALUE && propertyIdentifierArgument == BACnetPropertyIdentifier_LOW_LIMIT: // BACnetConstructedDataPositiveIntegerValueLowLimit
+	case objectTypeArgument == BACnetObjectType_POSITIVE_INTEGER_VALUE && propertyIdentifierArgument == BACnetPropertyIdentifier_LOW_LIMIT && peekedTagNumber == uint8(2): // BACnetConstructedDataPositiveIntegerValueLowLimit
 		_child, typeSwitchError = BACnetConstructedDataPositiveIntegerValueLowLimitParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_LOW_LIMIT: // BACnetConstructedDataLowLimit
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_LOW_LIMIT && peekedTagNumber == uint8(4): // BACnetConstructedDataLowLimit
 		_child, typeSwitchError = BACnetConstructedDataLowLimitParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_LOWER_DECK: // BACnetConstructedDataLowerDeck
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_LOWER_DECK && peekedTagNumber == uint8(12): // BACnetConstructedDataLowerDeck
 		_child, typeSwitchError = BACnetConstructedDataLowerDeckParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_MAC_ADDRESS: // BACnetConstructedDataMACAddress
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_MAC_ADDRESS && peekedTagNumber == uint8(6): // BACnetConstructedDataMACAddress
 		_child, typeSwitchError = BACnetConstructedDataMACAddressParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_MACHINE_ROOM_ID: // BACnetConstructedDataMachineRoomID
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_MACHINE_ROOM_ID && peekedTagNumber == uint8(12): // BACnetConstructedDataMachineRoomID
 		_child, typeSwitchError = BACnetConstructedDataMachineRoomIDParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case objectTypeArgument == BACnetObjectType_LIFE_SAFETY_ZONE && propertyIdentifierArgument == BACnetPropertyIdentifier_MAINTENANCE_REQUIRED && peekedTagNumber == uint8(1): // BACnetConstructedDataLifeSafetyZoneMaintenanceRequired
 		_child, typeSwitchError = BACnetConstructedDataLifeSafetyZoneMaintenanceRequiredParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_MAINTENANCE_REQUIRED: // BACnetConstructedDataMaintenanceRequired
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_MAINTENANCE_REQUIRED && peekedTagNumber == uint8(9): // BACnetConstructedDataMaintenanceRequired
 		_child, typeSwitchError = BACnetConstructedDataMaintenanceRequiredParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_MAKING_CAR_CALL: // BACnetConstructedDataMakingCarCall
 		_child, typeSwitchError = BACnetConstructedDataMakingCarCallParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
@@ -971,173 +971,173 @@ func BACnetConstructedDataParse(readBuffer utils.ReadBuffer, tagNumber uint8, ob
 		_child, typeSwitchError = BACnetConstructedDataManipulatedVariableReferenceParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_MANUAL_SLAVE_ADDRESS_BINDING: // BACnetConstructedDataManualSlaveAddressBinding
 		_child, typeSwitchError = BACnetConstructedDataManualSlaveAddressBindingParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_MASKED_ALARM_VALUES: // BACnetConstructedDataMaskedAlarmValues
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_MASKED_ALARM_VALUES && peekedTagNumber == uint8(9): // BACnetConstructedDataMaskedAlarmValues
 		_child, typeSwitchError = BACnetConstructedDataMaskedAlarmValuesParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_MAX_ACTUAL_VALUE: // BACnetConstructedDataMaxActualValue
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_MAX_ACTUAL_VALUE && peekedTagNumber == uint8(4): // BACnetConstructedDataMaxActualValue
 		_child, typeSwitchError = BACnetConstructedDataMaxActualValueParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_MAX_APDU_LENGTH_ACCEPTED: // BACnetConstructedDataMaxAPDULengthAccepted
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_MAX_APDU_LENGTH_ACCEPTED && peekedTagNumber == uint8(2): // BACnetConstructedDataMaxAPDULengthAccepted
 		_child, typeSwitchError = BACnetConstructedDataMaxAPDULengthAcceptedParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_MAX_FAILED_ATTEMPTS: // BACnetConstructedDataMaxFailedAttempts
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_MAX_FAILED_ATTEMPTS && peekedTagNumber == uint8(2): // BACnetConstructedDataMaxFailedAttempts
 		_child, typeSwitchError = BACnetConstructedDataMaxFailedAttemptsParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case objectTypeArgument == BACnetObjectType_DEVICE && propertyIdentifierArgument == BACnetPropertyIdentifier_MAX_INFO_FRAMES: // BACnetConstructedDataDeviceMaxInfoFrames
+	case objectTypeArgument == BACnetObjectType_DEVICE && propertyIdentifierArgument == BACnetPropertyIdentifier_MAX_INFO_FRAMES && peekedTagNumber == uint8(2): // BACnetConstructedDataDeviceMaxInfoFrames
 		_child, typeSwitchError = BACnetConstructedDataDeviceMaxInfoFramesParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case objectTypeArgument == BACnetObjectType_NETWORK_PORT && propertyIdentifierArgument == BACnetPropertyIdentifier_MAX_INFO_FRAMES: // BACnetConstructedDataNetworkPortMaxInfoFrames
+	case objectTypeArgument == BACnetObjectType_NETWORK_PORT && propertyIdentifierArgument == BACnetPropertyIdentifier_MAX_INFO_FRAMES && peekedTagNumber == uint8(2): // BACnetConstructedDataNetworkPortMaxInfoFrames
 		_child, typeSwitchError = BACnetConstructedDataNetworkPortMaxInfoFramesParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_MAX_INFO_FRAMES: // BACnetConstructedDataMaxInfoFrames
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_MAX_INFO_FRAMES && peekedTagNumber == uint8(2): // BACnetConstructedDataMaxInfoFrames
 		_child, typeSwitchError = BACnetConstructedDataMaxInfoFramesParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case objectTypeArgument == BACnetObjectType_DEVICE && propertyIdentifierArgument == BACnetPropertyIdentifier_MAX_MASTER: // BACnetConstructedDataDeviceMaxMaster
+	case objectTypeArgument == BACnetObjectType_DEVICE && propertyIdentifierArgument == BACnetPropertyIdentifier_MAX_MASTER && peekedTagNumber == uint8(2): // BACnetConstructedDataDeviceMaxMaster
 		_child, typeSwitchError = BACnetConstructedDataDeviceMaxMasterParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case objectTypeArgument == BACnetObjectType_NETWORK_PORT && propertyIdentifierArgument == BACnetPropertyIdentifier_MAX_MASTER: // BACnetConstructedDataNetworkPortMaxMaster
+	case objectTypeArgument == BACnetObjectType_NETWORK_PORT && propertyIdentifierArgument == BACnetPropertyIdentifier_MAX_MASTER && peekedTagNumber == uint8(2): // BACnetConstructedDataNetworkPortMaxMaster
 		_child, typeSwitchError = BACnetConstructedDataNetworkPortMaxMasterParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_MAX_MASTER: // BACnetConstructedDataMaxMaster
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_MAX_MASTER && peekedTagNumber == uint8(2): // BACnetConstructedDataMaxMaster
 		_child, typeSwitchError = BACnetConstructedDataMaxMasterParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case objectTypeArgument == BACnetObjectType_ACCUMULATOR && propertyIdentifierArgument == BACnetPropertyIdentifier_MAX_PRES_VALUE: // BACnetConstructedDataAccumulatorMaxPresValue
+	case objectTypeArgument == BACnetObjectType_ACCUMULATOR && propertyIdentifierArgument == BACnetPropertyIdentifier_MAX_PRES_VALUE && peekedTagNumber == uint8(2): // BACnetConstructedDataAccumulatorMaxPresValue
 		_child, typeSwitchError = BACnetConstructedDataAccumulatorMaxPresValueParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case objectTypeArgument == BACnetObjectType_ANALOG_INPUT && propertyIdentifierArgument == BACnetPropertyIdentifier_MAX_PRES_VALUE: // BACnetConstructedDataAnalogInputMaxPresValue
+	case objectTypeArgument == BACnetObjectType_ANALOG_INPUT && propertyIdentifierArgument == BACnetPropertyIdentifier_MAX_PRES_VALUE && peekedTagNumber == uint8(4): // BACnetConstructedDataAnalogInputMaxPresValue
 		_child, typeSwitchError = BACnetConstructedDataAnalogInputMaxPresValueParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case objectTypeArgument == BACnetObjectType_ANALOG_OUTPUT && propertyIdentifierArgument == BACnetPropertyIdentifier_MAX_PRES_VALUE: // BACnetConstructedDataAnalogOutputMaxPresValue
+	case objectTypeArgument == BACnetObjectType_ANALOG_OUTPUT && propertyIdentifierArgument == BACnetPropertyIdentifier_MAX_PRES_VALUE && peekedTagNumber == uint8(4): // BACnetConstructedDataAnalogOutputMaxPresValue
 		_child, typeSwitchError = BACnetConstructedDataAnalogOutputMaxPresValueParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case objectTypeArgument == BACnetObjectType_ANALOG_VALUE && propertyIdentifierArgument == BACnetPropertyIdentifier_MAX_PRES_VALUE: // BACnetConstructedDataAnalogValueMaxPresValue
+	case objectTypeArgument == BACnetObjectType_ANALOG_VALUE && propertyIdentifierArgument == BACnetPropertyIdentifier_MAX_PRES_VALUE && peekedTagNumber == uint8(4): // BACnetConstructedDataAnalogValueMaxPresValue
 		_child, typeSwitchError = BACnetConstructedDataAnalogValueMaxPresValueParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case objectTypeArgument == BACnetObjectType_LARGE_ANALOG_VALUE && propertyIdentifierArgument == BACnetPropertyIdentifier_MAX_PRES_VALUE: // BACnetConstructedDataLargeAnalogValueMaxPresValue
+	case objectTypeArgument == BACnetObjectType_LARGE_ANALOG_VALUE && propertyIdentifierArgument == BACnetPropertyIdentifier_MAX_PRES_VALUE && peekedTagNumber == uint8(5): // BACnetConstructedDataLargeAnalogValueMaxPresValue
 		_child, typeSwitchError = BACnetConstructedDataLargeAnalogValueMaxPresValueParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case objectTypeArgument == BACnetObjectType_INTEGER_VALUE && propertyIdentifierArgument == BACnetPropertyIdentifier_MAX_PRES_VALUE: // BACnetConstructedDataIntegerValueMaxPresValue
+	case objectTypeArgument == BACnetObjectType_INTEGER_VALUE && propertyIdentifierArgument == BACnetPropertyIdentifier_MAX_PRES_VALUE && peekedTagNumber == uint8(3): // BACnetConstructedDataIntegerValueMaxPresValue
 		_child, typeSwitchError = BACnetConstructedDataIntegerValueMaxPresValueParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case objectTypeArgument == BACnetObjectType_POSITIVE_INTEGER_VALUE && propertyIdentifierArgument == BACnetPropertyIdentifier_MAX_PRES_VALUE: // BACnetConstructedDataPositiveIntegerValueMaxPresValue
+	case objectTypeArgument == BACnetObjectType_POSITIVE_INTEGER_VALUE && propertyIdentifierArgument == BACnetPropertyIdentifier_MAX_PRES_VALUE && peekedTagNumber == uint8(2): // BACnetConstructedDataPositiveIntegerValueMaxPresValue
 		_child, typeSwitchError = BACnetConstructedDataPositiveIntegerValueMaxPresValueParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case objectTypeArgument == BACnetObjectType_TIMER && propertyIdentifierArgument == BACnetPropertyIdentifier_MAX_PRES_VALUE: // BACnetConstructedDataTimerMaxPresValue
+	case objectTypeArgument == BACnetObjectType_TIMER && propertyIdentifierArgument == BACnetPropertyIdentifier_MAX_PRES_VALUE && peekedTagNumber == uint8(2): // BACnetConstructedDataTimerMaxPresValue
 		_child, typeSwitchError = BACnetConstructedDataTimerMaxPresValueParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_MAX_PRES_VALUE: // BACnetConstructedDataMaxPresValue
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_MAX_PRES_VALUE && peekedTagNumber == uint8(4): // BACnetConstructedDataMaxPresValue
 		_child, typeSwitchError = BACnetConstructedDataMaxPresValueParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_MAX_SEGMENTS_ACCEPTED: // BACnetConstructedDataMaxSegmentsAccepted
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_MAX_SEGMENTS_ACCEPTED && peekedTagNumber == uint8(2): // BACnetConstructedDataMaxSegmentsAccepted
 		_child, typeSwitchError = BACnetConstructedDataMaxSegmentsAcceptedParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_MAXIMUM_OUTPUT: // BACnetConstructedDataMaximumOutput
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_MAXIMUM_OUTPUT && peekedTagNumber == uint8(4): // BACnetConstructedDataMaximumOutput
 		_child, typeSwitchError = BACnetConstructedDataMaximumOutputParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_MAXIMUM_VALUE: // BACnetConstructedDataMaximumValue
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_MAXIMUM_VALUE && peekedTagNumber == uint8(4): // BACnetConstructedDataMaximumValue
 		_child, typeSwitchError = BACnetConstructedDataMaximumValueParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_MAXIMUM_VALUE_TIMESTAMP: // BACnetConstructedDataMaximumValueTimestamp
 		_child, typeSwitchError = BACnetConstructedDataMaximumValueTimestampParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_MEMBER_OF: // BACnetConstructedDataMemberOf
 		_child, typeSwitchError = BACnetConstructedDataMemberOfParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_MEMBER_STATUS_FLAGS: // BACnetConstructedDataMemberStatusFlags
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_MEMBER_STATUS_FLAGS && peekedTagNumber == uint8(8): // BACnetConstructedDataMemberStatusFlags
 		_child, typeSwitchError = BACnetConstructedDataMemberStatusFlagsParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_MEMBERS: // BACnetConstructedDataMembers
 		_child, typeSwitchError = BACnetConstructedDataMembersParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_MIN_ACTUAL_VALUE: // BACnetConstructedDataMinActualValue
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_MIN_ACTUAL_VALUE && peekedTagNumber == uint8(4): // BACnetConstructedDataMinActualValue
 		_child, typeSwitchError = BACnetConstructedDataMinActualValueParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case objectTypeArgument == BACnetObjectType_ACCUMULATOR && propertyIdentifierArgument == BACnetPropertyIdentifier_MIN_PRES_VALUE: // BACnetConstructedDataAccumulatorMinPresValue
+	case objectTypeArgument == BACnetObjectType_ACCUMULATOR && propertyIdentifierArgument == BACnetPropertyIdentifier_MIN_PRES_VALUE && peekedTagNumber == uint8(2): // BACnetConstructedDataAccumulatorMinPresValue
 		_child, typeSwitchError = BACnetConstructedDataAccumulatorMinPresValueParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case objectTypeArgument == BACnetObjectType_INTEGER_VALUE && propertyIdentifierArgument == BACnetPropertyIdentifier_MIN_PRES_VALUE: // BACnetConstructedDataIntegerValueMinPresValue
+	case objectTypeArgument == BACnetObjectType_INTEGER_VALUE && propertyIdentifierArgument == BACnetPropertyIdentifier_MIN_PRES_VALUE && peekedTagNumber == uint8(3): // BACnetConstructedDataIntegerValueMinPresValue
 		_child, typeSwitchError = BACnetConstructedDataIntegerValueMinPresValueParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case objectTypeArgument == BACnetObjectType_POSITIVE_INTEGER_VALUE && propertyIdentifierArgument == BACnetPropertyIdentifier_MIN_PRES_VALUE: // BACnetConstructedDataPositiveIntegerValueMinPresValue
+	case objectTypeArgument == BACnetObjectType_POSITIVE_INTEGER_VALUE && propertyIdentifierArgument == BACnetPropertyIdentifier_MIN_PRES_VALUE && peekedTagNumber == uint8(2): // BACnetConstructedDataPositiveIntegerValueMinPresValue
 		_child, typeSwitchError = BACnetConstructedDataPositiveIntegerValueMinPresValueParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case objectTypeArgument == BACnetObjectType_LARGE_ANALOG_VALUE && propertyIdentifierArgument == BACnetPropertyIdentifier_MIN_PRES_VALUE: // BACnetConstructedDataLargeAnalogValueMinPresValue
+	case objectTypeArgument == BACnetObjectType_LARGE_ANALOG_VALUE && propertyIdentifierArgument == BACnetPropertyIdentifier_MIN_PRES_VALUE && peekedTagNumber == uint8(5): // BACnetConstructedDataLargeAnalogValueMinPresValue
 		_child, typeSwitchError = BACnetConstructedDataLargeAnalogValueMinPresValueParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case objectTypeArgument == BACnetObjectType_TIMER && propertyIdentifierArgument == BACnetPropertyIdentifier_MIN_PRES_VALUE: // BACnetConstructedDataTimerMinPresValue
+	case objectTypeArgument == BACnetObjectType_TIMER && propertyIdentifierArgument == BACnetPropertyIdentifier_MIN_PRES_VALUE && peekedTagNumber == uint8(2): // BACnetConstructedDataTimerMinPresValue
 		_child, typeSwitchError = BACnetConstructedDataTimerMinPresValueParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_MIN_PRES_VALUE: // BACnetConstructedDataMinPresValue
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_MIN_PRES_VALUE && peekedTagNumber == uint8(4): // BACnetConstructedDataMinPresValue
 		_child, typeSwitchError = BACnetConstructedDataMinPresValueParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_MINIMUM_OFF_TIME: // BACnetConstructedDataMinimumOffTime
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_MINIMUM_OFF_TIME && peekedTagNumber == uint8(2): // BACnetConstructedDataMinimumOffTime
 		_child, typeSwitchError = BACnetConstructedDataMinimumOffTimeParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_MINIMUM_ON_TIME: // BACnetConstructedDataMinimumOnTime
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_MINIMUM_ON_TIME && peekedTagNumber == uint8(2): // BACnetConstructedDataMinimumOnTime
 		_child, typeSwitchError = BACnetConstructedDataMinimumOnTimeParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_MINIMUM_OUTPUT: // BACnetConstructedDataMinimumOutput
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_MINIMUM_OUTPUT && peekedTagNumber == uint8(4): // BACnetConstructedDataMinimumOutput
 		_child, typeSwitchError = BACnetConstructedDataMinimumOutputParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_MINIMUM_VALUE: // BACnetConstructedDataMinimumValue
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_MINIMUM_VALUE && peekedTagNumber == uint8(4): // BACnetConstructedDataMinimumValue
 		_child, typeSwitchError = BACnetConstructedDataMinimumValueParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_MINIMUM_VALUE_TIMESTAMP: // BACnetConstructedDataMinimumValueTimestamp
 		_child, typeSwitchError = BACnetConstructedDataMinimumValueTimestampParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_MODE: // BACnetConstructedDataMode
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_MODE && peekedTagNumber == uint8(9): // BACnetConstructedDataMode
 		_child, typeSwitchError = BACnetConstructedDataModeParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_MODEL_NAME: // BACnetConstructedDataModelName
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_MODEL_NAME && peekedTagNumber == uint8(7): // BACnetConstructedDataModelName
 		_child, typeSwitchError = BACnetConstructedDataModelNameParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_MODIFICATION_DATE: // BACnetConstructedDataModificationDate
 		_child, typeSwitchError = BACnetConstructedDataModificationDateParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_MUSTER_POINT: // BACnetConstructedDataMusterPoint
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_MUSTER_POINT && peekedTagNumber == uint8(1): // BACnetConstructedDataMusterPoint
 		_child, typeSwitchError = BACnetConstructedDataMusterPointParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_NEGATIVE_ACCESS_RULES: // BACnetConstructedDataNegativeAccessRules
 		_child, typeSwitchError = BACnetConstructedDataNegativeAccessRulesParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_NETWORK_ACCESS_SECURITY_POLICIES: // BACnetConstructedDataNetworkAccessSecurityPolicies
 		_child, typeSwitchError = BACnetConstructedDataNetworkAccessSecurityPoliciesParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_NETWORK_INTERFACE_NAME: // BACnetConstructedDataNetworkInterfaceName
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_NETWORK_INTERFACE_NAME && peekedTagNumber == uint8(7): // BACnetConstructedDataNetworkInterfaceName
 		_child, typeSwitchError = BACnetConstructedDataNetworkInterfaceNameParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_NETWORK_NUMBER: // BACnetConstructedDataNetworkNumber
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_NETWORK_NUMBER && peekedTagNumber == uint8(2): // BACnetConstructedDataNetworkNumber
 		_child, typeSwitchError = BACnetConstructedDataNetworkNumberParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_NETWORK_NUMBER_QUALITY: // BACnetConstructedDataNetworkNumberQuality
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_NETWORK_NUMBER_QUALITY && peekedTagNumber == uint8(9): // BACnetConstructedDataNetworkNumberQuality
 		_child, typeSwitchError = BACnetConstructedDataNetworkNumberQualityParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_NETWORK_TYPE: // BACnetConstructedDataNetworkType
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_NETWORK_TYPE && peekedTagNumber == uint8(9): // BACnetConstructedDataNetworkType
 		_child, typeSwitchError = BACnetConstructedDataNetworkTypeParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_NEXT_STOPPING_FLOOR: // BACnetConstructedDataNextStoppingFloor
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_NEXT_STOPPING_FLOOR && peekedTagNumber == uint8(2): // BACnetConstructedDataNextStoppingFloor
 		_child, typeSwitchError = BACnetConstructedDataNextStoppingFloorParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_NODE_SUBTYPE: // BACnetConstructedDataNodeSubtype
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_NODE_SUBTYPE && peekedTagNumber == uint8(7): // BACnetConstructedDataNodeSubtype
 		_child, typeSwitchError = BACnetConstructedDataNodeSubtypeParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_NODE_TYPE: // BACnetConstructedDataNodeType
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_NODE_TYPE && peekedTagNumber == uint8(9): // BACnetConstructedDataNodeType
 		_child, typeSwitchError = BACnetConstructedDataNodeTypeParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_NOTIFICATION_CLASS: // BACnetConstructedDataNotificationClass
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_NOTIFICATION_CLASS && peekedTagNumber == uint8(2): // BACnetConstructedDataNotificationClass
 		_child, typeSwitchError = BACnetConstructedDataNotificationClassParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_NOTIFICATION_THRESHOLD: // BACnetConstructedDataNotificationThreshold
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_NOTIFICATION_THRESHOLD && peekedTagNumber == uint8(2): // BACnetConstructedDataNotificationThreshold
 		_child, typeSwitchError = BACnetConstructedDataNotificationThresholdParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_NOTIFY_TYPE: // BACnetConstructedDataNotifyType
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_NOTIFY_TYPE && peekedTagNumber == uint8(9): // BACnetConstructedDataNotifyType
 		_child, typeSwitchError = BACnetConstructedDataNotifyTypeParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_NUMBER_OF_APDU_RETRIES: // BACnetConstructedDataNumberOfAPDURetries
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_NUMBER_OF_APDU_RETRIES && peekedTagNumber == uint8(2): // BACnetConstructedDataNumberOfAPDURetries
 		_child, typeSwitchError = BACnetConstructedDataNumberOfAPDURetriesParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_NUMBER_OF_AUTHENTICATION_POLICIES: // BACnetConstructedDataNumberOfAuthenticationPolicies
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_NUMBER_OF_AUTHENTICATION_POLICIES && peekedTagNumber == uint8(2): // BACnetConstructedDataNumberOfAuthenticationPolicies
 		_child, typeSwitchError = BACnetConstructedDataNumberOfAuthenticationPoliciesParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_NUMBER_OF_STATES: // BACnetConstructedDataNumberOfStates
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_NUMBER_OF_STATES && peekedTagNumber == uint8(2): // BACnetConstructedDataNumberOfStates
 		_child, typeSwitchError = BACnetConstructedDataNumberOfStatesParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_OBJECT_IDENTIFIER: // BACnetConstructedDataObjectIdentifier
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_OBJECT_IDENTIFIER && peekedTagNumber == uint8(12): // BACnetConstructedDataObjectIdentifier
 		_child, typeSwitchError = BACnetConstructedDataObjectIdentifierParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_OBJECT_LIST: // BACnetConstructedDataObjectList
 		_child, typeSwitchError = BACnetConstructedDataObjectListParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_OBJECT_NAME: // BACnetConstructedDataObjectName
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_OBJECT_NAME && peekedTagNumber == uint8(7): // BACnetConstructedDataObjectName
 		_child, typeSwitchError = BACnetConstructedDataObjectNameParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_OBJECT_PROPERTY_REFERENCE: // BACnetConstructedDataObjectPropertyReference
 		_child, typeSwitchError = BACnetConstructedDataObjectPropertyReferenceParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_OBJECT_TYPE: // BACnetConstructedDataObjectType
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_OBJECT_TYPE && peekedTagNumber == uint8(9): // BACnetConstructedDataObjectType
 		_child, typeSwitchError = BACnetConstructedDataObjectTypeParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_OCCUPANCY_COUNT: // BACnetConstructedDataOccupancyCount
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_OCCUPANCY_COUNT && peekedTagNumber == uint8(2): // BACnetConstructedDataOccupancyCount
 		_child, typeSwitchError = BACnetConstructedDataOccupancyCountParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_OCCUPANCY_COUNT_ADJUST: // BACnetConstructedDataOccupancyCountAdjust
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_OCCUPANCY_COUNT_ADJUST && peekedTagNumber == uint8(1): // BACnetConstructedDataOccupancyCountAdjust
 		_child, typeSwitchError = BACnetConstructedDataOccupancyCountAdjustParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_OCCUPANCY_COUNT_ENABLE: // BACnetConstructedDataOccupancyCountEnable
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_OCCUPANCY_COUNT_ENABLE && peekedTagNumber == uint8(1): // BACnetConstructedDataOccupancyCountEnable
 		_child, typeSwitchError = BACnetConstructedDataOccupancyCountEnableParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_OCCUPANCY_LOWER_LIMIT: // BACnetConstructedDataOccupancyLowerLimit
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_OCCUPANCY_LOWER_LIMIT && peekedTagNumber == uint8(2): // BACnetConstructedDataOccupancyLowerLimit
 		_child, typeSwitchError = BACnetConstructedDataOccupancyLowerLimitParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_OCCUPANCY_LOWER_LIMIT_ENFORCED: // BACnetConstructedDataOccupancyLowerLimitEnforced
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_OCCUPANCY_LOWER_LIMIT_ENFORCED && peekedTagNumber == uint8(1): // BACnetConstructedDataOccupancyLowerLimitEnforced
 		_child, typeSwitchError = BACnetConstructedDataOccupancyLowerLimitEnforcedParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_OCCUPANCY_STATE: // BACnetConstructedDataOccupancyState
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_OCCUPANCY_STATE && peekedTagNumber == uint8(9): // BACnetConstructedDataOccupancyState
 		_child, typeSwitchError = BACnetConstructedDataOccupancyStateParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_OCCUPANCY_UPPER_LIMIT: // BACnetConstructedDataOccupancyUpperLimit
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_OCCUPANCY_UPPER_LIMIT && peekedTagNumber == uint8(2): // BACnetConstructedDataOccupancyUpperLimit
 		_child, typeSwitchError = BACnetConstructedDataOccupancyUpperLimitParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_OCCUPANCY_UPPER_LIMIT_ENFORCED: // BACnetConstructedDataOccupancyUpperLimitEnforced
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_OCCUPANCY_UPPER_LIMIT_ENFORCED && peekedTagNumber == uint8(1): // BACnetConstructedDataOccupancyUpperLimitEnforced
 		_child, typeSwitchError = BACnetConstructedDataOccupancyUpperLimitEnforcedParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_OPERATION_DIRECTION: // BACnetConstructedDataOperationDirection
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_OPERATION_DIRECTION && peekedTagNumber == uint8(9): // BACnetConstructedDataOperationDirection
 		_child, typeSwitchError = BACnetConstructedDataOperationDirectionParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_OPERATION_EXPECTED: // BACnetConstructedDataOperationExpected
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_OPERATION_EXPECTED && peekedTagNumber == uint8(9): // BACnetConstructedDataOperationExpected
 		_child, typeSwitchError = BACnetConstructedDataOperationExpectedParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_OPTIONAL: // BACnetConstructedDataOptional
 		_child, typeSwitchError = BACnetConstructedDataOptionalParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_OUT_OF_SERVICE: // BACnetConstructedDataOutOfService
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_OUT_OF_SERVICE && peekedTagNumber == uint8(1): // BACnetConstructedDataOutOfService
 		_child, typeSwitchError = BACnetConstructedDataOutOfServiceParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_OUTPUT_UNITS: // BACnetConstructedDataOutputUnits
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_OUTPUT_UNITS && peekedTagNumber == uint8(9): // BACnetConstructedDataOutputUnits
 		_child, typeSwitchError = BACnetConstructedDataOutputUnitsParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_PACKET_REORDER_TIME: // BACnetConstructedDataPacketReorderTime
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_PACKET_REORDER_TIME && peekedTagNumber == uint8(2): // BACnetConstructedDataPacketReorderTime
 		_child, typeSwitchError = BACnetConstructedDataPacketReorderTimeParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_PASSBACK_MODE: // BACnetConstructedDataPassbackMode
 		_child, typeSwitchError = BACnetConstructedDataPassbackModeParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_PASSBACK_TIMEOUT: // BACnetConstructedDataPassbackTimeout
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_PASSBACK_TIMEOUT && peekedTagNumber == uint8(2): // BACnetConstructedDataPassbackTimeout
 		_child, typeSwitchError = BACnetConstructedDataPassbackTimeoutParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_PASSENGER_ALARM: // BACnetConstructedDataPassengerAlarm
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_PASSENGER_ALARM && peekedTagNumber == uint8(1): // BACnetConstructedDataPassengerAlarm
 		_child, typeSwitchError = BACnetConstructedDataPassengerAlarmParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_POLARITY: // BACnetConstructedDataPolarity
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_POLARITY && peekedTagNumber == uint8(9): // BACnetConstructedDataPolarity
 		_child, typeSwitchError = BACnetConstructedDataPolarityParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_PORT_FILTER: // BACnetConstructedDataPortFilter
 		_child, typeSwitchError = BACnetConstructedDataPortFilterParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_POSITIVE_ACCESS_RULES: // BACnetConstructedDataPositiveAccessRules
 		_child, typeSwitchError = BACnetConstructedDataPositiveAccessRulesParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_POWER: // BACnetConstructedDataPower
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_POWER && peekedTagNumber == uint8(4): // BACnetConstructedDataPower
 		_child, typeSwitchError = BACnetConstructedDataPowerParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_POWER_MODE: // BACnetConstructedDataPowerMode
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_POWER_MODE && peekedTagNumber == uint8(1): // BACnetConstructedDataPowerMode
 		_child, typeSwitchError = BACnetConstructedDataPowerModeParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_PRESCALE: // BACnetConstructedDataPrescale
 		_child, typeSwitchError = BACnetConstructedDataPrescaleParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
@@ -1211,59 +1211,59 @@ func BACnetConstructedDataParse(readBuffer utils.ReadBuffer, tagNumber uint8, ob
 		_child, typeSwitchError = BACnetConstructedDataPriorityParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_PRIORITY_ARRAY: // BACnetConstructedDataPriorityArray
 		_child, typeSwitchError = BACnetConstructedDataPriorityArrayParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_PRIORITY_FOR_WRITING: // BACnetConstructedDataPriorityForWriting
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_PRIORITY_FOR_WRITING && peekedTagNumber == uint8(2): // BACnetConstructedDataPriorityForWriting
 		_child, typeSwitchError = BACnetConstructedDataPriorityForWritingParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_PROCESS_IDENTIFIER: // BACnetConstructedDataProcessIdentifier
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_PROCESS_IDENTIFIER && peekedTagNumber == uint8(2): // BACnetConstructedDataProcessIdentifier
 		_child, typeSwitchError = BACnetConstructedDataProcessIdentifierParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_PROCESS_IDENTIFIER_FILTER: // BACnetConstructedDataProcessIdentifierFilter
 		_child, typeSwitchError = BACnetConstructedDataProcessIdentifierFilterParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_PROFILE_LOCATION: // BACnetConstructedDataProfileLocation
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_PROFILE_LOCATION && peekedTagNumber == uint8(7): // BACnetConstructedDataProfileLocation
 		_child, typeSwitchError = BACnetConstructedDataProfileLocationParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_PROFILE_NAME: // BACnetConstructedDataProfileName
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_PROFILE_NAME && peekedTagNumber == uint8(7): // BACnetConstructedDataProfileName
 		_child, typeSwitchError = BACnetConstructedDataProfileNameParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_PROGRAM_CHANGE: // BACnetConstructedDataProgramChange
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_PROGRAM_CHANGE && peekedTagNumber == uint8(9): // BACnetConstructedDataProgramChange
 		_child, typeSwitchError = BACnetConstructedDataProgramChangeParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_PROGRAM_LOCATION: // BACnetConstructedDataProgramLocation
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_PROGRAM_LOCATION && peekedTagNumber == uint8(7): // BACnetConstructedDataProgramLocation
 		_child, typeSwitchError = BACnetConstructedDataProgramLocationParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_PROGRAM_STATE: // BACnetConstructedDataProgramState
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_PROGRAM_STATE && peekedTagNumber == uint8(9): // BACnetConstructedDataProgramState
 		_child, typeSwitchError = BACnetConstructedDataProgramStateParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_PROPERTY_LIST: // BACnetConstructedDataPropertyList
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_PROPERTY_LIST && peekedTagNumber == uint8(9): // BACnetConstructedDataPropertyList
 		_child, typeSwitchError = BACnetConstructedDataPropertyListParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_PROPORTIONAL_CONSTANT: // BACnetConstructedDataProportionalConstant
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_PROPORTIONAL_CONSTANT && peekedTagNumber == uint8(4): // BACnetConstructedDataProportionalConstant
 		_child, typeSwitchError = BACnetConstructedDataProportionalConstantParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_PROPORTIONAL_CONSTANT_UNITS: // BACnetConstructedDataProportionalConstantUnits
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_PROPORTIONAL_CONSTANT_UNITS && peekedTagNumber == uint8(9): // BACnetConstructedDataProportionalConstantUnits
 		_child, typeSwitchError = BACnetConstructedDataProportionalConstantUnitsParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_PROTOCOL_LEVEL: // BACnetConstructedDataProtocolLevel
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_PROTOCOL_LEVEL && peekedTagNumber == uint8(9): // BACnetConstructedDataProtocolLevel
 		_child, typeSwitchError = BACnetConstructedDataProtocolLevelParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_PROTOCOL_OBJECT_TYPES_SUPPORTED: // BACnetConstructedDataProtocolObjectTypesSupported
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_PROTOCOL_OBJECT_TYPES_SUPPORTED && peekedTagNumber == uint8(8): // BACnetConstructedDataProtocolObjectTypesSupported
 		_child, typeSwitchError = BACnetConstructedDataProtocolObjectTypesSupportedParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_PROTOCOL_REVISION: // BACnetConstructedDataProtocolRevision
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_PROTOCOL_REVISION && peekedTagNumber == uint8(2): // BACnetConstructedDataProtocolRevision
 		_child, typeSwitchError = BACnetConstructedDataProtocolRevisionParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_PROTOCOL_SERVICES_SUPPORTED: // BACnetConstructedDataProtocolServicesSupported
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_PROTOCOL_SERVICES_SUPPORTED && peekedTagNumber == uint8(8): // BACnetConstructedDataProtocolServicesSupported
 		_child, typeSwitchError = BACnetConstructedDataProtocolServicesSupportedParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_PROTOCOL_VERSION: // BACnetConstructedDataProtocolVersion
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_PROTOCOL_VERSION && peekedTagNumber == uint8(2): // BACnetConstructedDataProtocolVersion
 		_child, typeSwitchError = BACnetConstructedDataProtocolVersionParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_PULSE_RATE: // BACnetConstructedDataPulseRate
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_PULSE_RATE && peekedTagNumber == uint8(2): // BACnetConstructedDataPulseRate
 		_child, typeSwitchError = BACnetConstructedDataPulseRateParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_READ_ONLY: // BACnetConstructedDataReadOnly
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_READ_ONLY && peekedTagNumber == uint8(1): // BACnetConstructedDataReadOnly
 		_child, typeSwitchError = BACnetConstructedDataReadOnlyParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_REASON_FOR_DISABLE: // BACnetConstructedDataReasonForDisable
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_REASON_FOR_DISABLE && peekedTagNumber == uint8(9): // BACnetConstructedDataReasonForDisable
 		_child, typeSwitchError = BACnetConstructedDataReasonForDisableParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_REASON_FOR_HALT: // BACnetConstructedDataReasonForHalt
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_REASON_FOR_HALT && peekedTagNumber == uint8(9): // BACnetConstructedDataReasonForHalt
 		_child, typeSwitchError = BACnetConstructedDataReasonForHaltParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_RECIPIENT_LIST: // BACnetConstructedDataRecipientList
 		_child, typeSwitchError = BACnetConstructedDataRecipientListParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case objectTypeArgument == BACnetObjectType_FILE && propertyIdentifierArgument == BACnetPropertyIdentifier_RECORD_COUNT: // BACnetConstructedDataFileRecordCount
+	case objectTypeArgument == BACnetObjectType_FILE && propertyIdentifierArgument == BACnetPropertyIdentifier_RECORD_COUNT && peekedTagNumber == uint8(2): // BACnetConstructedDataFileRecordCount
 		_child, typeSwitchError = BACnetConstructedDataFileRecordCountParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_RECORD_COUNT: // BACnetConstructedDataRecordCount
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_RECORD_COUNT && peekedTagNumber == uint8(2): // BACnetConstructedDataRecordCount
 		_child, typeSwitchError = BACnetConstructedDataRecordCountParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_RECORDS_SINCE_NOTIFICATION: // BACnetConstructedDataRecordsSinceNotification
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_RECORDS_SINCE_NOTIFICATION && peekedTagNumber == uint8(2): // BACnetConstructedDataRecordsSinceNotification
 		_child, typeSwitchError = BACnetConstructedDataRecordsSinceNotificationParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_REFERENCE_PORT: // BACnetConstructedDataReferencePort
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_REFERENCE_PORT && peekedTagNumber == uint8(2): // BACnetConstructedDataReferencePort
 		_child, typeSwitchError = BACnetConstructedDataReferencePortParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_REGISTERED_CAR_CALL: // BACnetConstructedDataRegisteredCarCall
 		_child, typeSwitchError = BACnetConstructedDataRegisteredCarCallParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_RELIABILITY: // BACnetConstructedDataReliability
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_RELIABILITY && peekedTagNumber == uint8(9): // BACnetConstructedDataReliability
 		_child, typeSwitchError = BACnetConstructedDataReliabilityParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_RELIABILITY_EVALUATION_INHIBIT && peekedTagNumber == uint8(1): // BACnetConstructedDataReliabilityEvaluationInhibit
 		_child, typeSwitchError = BACnetConstructedDataReliabilityEvaluationInhibitParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
@@ -1315,77 +1315,77 @@ func BACnetConstructedDataParse(readBuffer utils.ReadBuffer, tagNumber uint8, ob
 		_child, typeSwitchError = BACnetConstructedDataRepresentsParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_REQUESTED_SHED_LEVEL: // BACnetConstructedDataRequestedShedLevel
 		_child, typeSwitchError = BACnetConstructedDataRequestedShedLevelParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_REQUESTED_UPDATE_INTERVAL: // BACnetConstructedDataRequestedUpdateInterval
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_REQUESTED_UPDATE_INTERVAL && peekedTagNumber == uint8(2): // BACnetConstructedDataRequestedUpdateInterval
 		_child, typeSwitchError = BACnetConstructedDataRequestedUpdateIntervalParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_REQUIRED: // BACnetConstructedDataRequired
 		_child, typeSwitchError = BACnetConstructedDataRequiredParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case objectTypeArgument == BACnetObjectType_LARGE_ANALOG_VALUE && propertyIdentifierArgument == BACnetPropertyIdentifier_RESOLUTION: // BACnetConstructedDataLargeAnalogValueResolution
+	case objectTypeArgument == BACnetObjectType_LARGE_ANALOG_VALUE && propertyIdentifierArgument == BACnetPropertyIdentifier_RESOLUTION && peekedTagNumber == uint8(5): // BACnetConstructedDataLargeAnalogValueResolution
 		_child, typeSwitchError = BACnetConstructedDataLargeAnalogValueResolutionParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case objectTypeArgument == BACnetObjectType_INTEGER_VALUE && propertyIdentifierArgument == BACnetPropertyIdentifier_RESOLUTION: // BACnetConstructedDataIntegerValueResolution
+	case objectTypeArgument == BACnetObjectType_INTEGER_VALUE && propertyIdentifierArgument == BACnetPropertyIdentifier_RESOLUTION && peekedTagNumber == uint8(3): // BACnetConstructedDataIntegerValueResolution
 		_child, typeSwitchError = BACnetConstructedDataIntegerValueResolutionParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case objectTypeArgument == BACnetObjectType_POSITIVE_INTEGER_VALUE && propertyIdentifierArgument == BACnetPropertyIdentifier_RESOLUTION: // BACnetConstructedDataPositiveIntegerValueResolution
+	case objectTypeArgument == BACnetObjectType_POSITIVE_INTEGER_VALUE && propertyIdentifierArgument == BACnetPropertyIdentifier_RESOLUTION && peekedTagNumber == uint8(2): // BACnetConstructedDataPositiveIntegerValueResolution
 		_child, typeSwitchError = BACnetConstructedDataPositiveIntegerValueResolutionParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case objectTypeArgument == BACnetObjectType_TIMER && propertyIdentifierArgument == BACnetPropertyIdentifier_RESOLUTION: // BACnetConstructedDataTimerResolution
+	case objectTypeArgument == BACnetObjectType_TIMER && propertyIdentifierArgument == BACnetPropertyIdentifier_RESOLUTION && peekedTagNumber == uint8(2): // BACnetConstructedDataTimerResolution
 		_child, typeSwitchError = BACnetConstructedDataTimerResolutionParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_RESOLUTION: // BACnetConstructedDataResolution
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_RESOLUTION && peekedTagNumber == uint8(4): // BACnetConstructedDataResolution
 		_child, typeSwitchError = BACnetConstructedDataResolutionParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_RESTART_NOTIFICATION_RECIPIENTS: // BACnetConstructedDataRestartNotificationRecipients
 		_child, typeSwitchError = BACnetConstructedDataRestartNotificationRecipientsParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_RESTORE_COMPLETION_TIME: // BACnetConstructedDataRestoreCompletionTime
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_RESTORE_COMPLETION_TIME && peekedTagNumber == uint8(2): // BACnetConstructedDataRestoreCompletionTime
 		_child, typeSwitchError = BACnetConstructedDataRestoreCompletionTimeParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_RESTORE_PREPARATION_TIME: // BACnetConstructedDataRestorePreparationTime
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_RESTORE_PREPARATION_TIME && peekedTagNumber == uint8(2): // BACnetConstructedDataRestorePreparationTime
 		_child, typeSwitchError = BACnetConstructedDataRestorePreparationTimeParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_ROUTING_TABLE: // BACnetConstructedDataRoutingTable
 		_child, typeSwitchError = BACnetConstructedDataRoutingTableParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_SCALE: // BACnetConstructedDataScale
 		_child, typeSwitchError = BACnetConstructedDataScaleParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_SCALE_FACTOR: // BACnetConstructedDataScaleFactor
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_SCALE_FACTOR && peekedTagNumber == uint8(4): // BACnetConstructedDataScaleFactor
 		_child, typeSwitchError = BACnetConstructedDataScaleFactorParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_SCHEDULE_DEFAULT: // BACnetConstructedDataScheduleDefault
 		_child, typeSwitchError = BACnetConstructedDataScheduleDefaultParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_SECURED_STATUS: // BACnetConstructedDataSecuredStatus
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_SECURED_STATUS && peekedTagNumber == uint8(9): // BACnetConstructedDataSecuredStatus
 		_child, typeSwitchError = BACnetConstructedDataSecuredStatusParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_SECURITY_PDU_TIMEOUT: // BACnetConstructedDataSecurityPDUTimeout
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_SECURITY_PDU_TIMEOUT && peekedTagNumber == uint8(2): // BACnetConstructedDataSecurityPDUTimeout
 		_child, typeSwitchError = BACnetConstructedDataSecurityPDUTimeoutParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_SECURITY_TIME_WINDOW: // BACnetConstructedDataSecurityTimeWindow
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_SECURITY_TIME_WINDOW && peekedTagNumber == uint8(2): // BACnetConstructedDataSecurityTimeWindow
 		_child, typeSwitchError = BACnetConstructedDataSecurityTimeWindowParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_SEGMENTATION_SUPPORTED: // BACnetConstructedDataSegmentationSupported
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_SEGMENTATION_SUPPORTED && peekedTagNumber == uint8(9): // BACnetConstructedDataSegmentationSupported
 		_child, typeSwitchError = BACnetConstructedDataSegmentationSupportedParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_SERIAL_NUMBER: // BACnetConstructedDataSerialNumber
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_SERIAL_NUMBER && peekedTagNumber == uint8(7): // BACnetConstructedDataSerialNumber
 		_child, typeSwitchError = BACnetConstructedDataSerialNumberParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_SETPOINT: // BACnetConstructedDataSetpoint
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_SETPOINT && peekedTagNumber == uint8(4): // BACnetConstructedDataSetpoint
 		_child, typeSwitchError = BACnetConstructedDataSetpointParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_SETPOINT_REFERENCE: // BACnetConstructedDataSetpointReference
 		_child, typeSwitchError = BACnetConstructedDataSetpointReferenceParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_SETTING: // BACnetConstructedDataSetting
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_SETTING && peekedTagNumber == uint8(2): // BACnetConstructedDataSetting
 		_child, typeSwitchError = BACnetConstructedDataSettingParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_SHED_DURATION: // BACnetConstructedDataShedDuration
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_SHED_DURATION && peekedTagNumber == uint8(2): // BACnetConstructedDataShedDuration
 		_child, typeSwitchError = BACnetConstructedDataShedDurationParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_SHED_LEVEL_DESCRIPTIONS: // BACnetConstructedDataShedLevelDescriptions
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_SHED_LEVEL_DESCRIPTIONS && peekedTagNumber == uint8(7): // BACnetConstructedDataShedLevelDescriptions
 		_child, typeSwitchError = BACnetConstructedDataShedLevelDescriptionsParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_SHED_LEVELS: // BACnetConstructedDataShedLevels
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_SHED_LEVELS && peekedTagNumber == uint8(2): // BACnetConstructedDataShedLevels
 		_child, typeSwitchError = BACnetConstructedDataShedLevelsParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_SILENCED: // BACnetConstructedDataSilenced
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_SILENCED && peekedTagNumber == uint8(9): // BACnetConstructedDataSilenced
 		_child, typeSwitchError = BACnetConstructedDataSilencedParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_SLAVE_ADDRESS_BINDING: // BACnetConstructedDataSlaveAddressBinding
 		_child, typeSwitchError = BACnetConstructedDataSlaveAddressBindingParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_SLAVE_PROXY_ENABLE: // BACnetConstructedDataSlaveProxyEnable
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_SLAVE_PROXY_ENABLE && peekedTagNumber == uint8(1): // BACnetConstructedDataSlaveProxyEnable
 		_child, typeSwitchError = BACnetConstructedDataSlaveProxyEnableParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_START_TIME: // BACnetConstructedDataStartTime
 		_child, typeSwitchError = BACnetConstructedDataStartTimeParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_STATE_CHANGE_VALUES: // BACnetConstructedDataStateChangeValues
 		_child, typeSwitchError = BACnetConstructedDataStateChangeValuesParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_STATE_DESCRIPTION: // BACnetConstructedDataStateDescription
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_STATE_DESCRIPTION && peekedTagNumber == uint8(7): // BACnetConstructedDataStateDescription
 		_child, typeSwitchError = BACnetConstructedDataStateDescriptionParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_STATE_TEXT: // BACnetConstructedDataStateText
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_STATE_TEXT && peekedTagNumber == uint8(7): // BACnetConstructedDataStateText
 		_child, typeSwitchError = BACnetConstructedDataStateTextParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_STATUS_FLAGS: // BACnetConstructedDataStatusFlags
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_STATUS_FLAGS && peekedTagNumber == uint8(8): // BACnetConstructedDataStatusFlags
 		_child, typeSwitchError = BACnetConstructedDataStatusFlagsParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_STOP_TIME: // BACnetConstructedDataStopTime
 		_child, typeSwitchError = BACnetConstructedDataStopTimeParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_STOP_WHEN_FULL: // BACnetConstructedDataStopWhenFull
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_STOP_WHEN_FULL && peekedTagNumber == uint8(1): // BACnetConstructedDataStopWhenFull
 		_child, typeSwitchError = BACnetConstructedDataStopWhenFullParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_STRIKE_COUNT: // BACnetConstructedDataStrikeCount
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_STRIKE_COUNT && peekedTagNumber == uint8(2): // BACnetConstructedDataStrikeCount
 		_child, typeSwitchError = BACnetConstructedDataStrikeCountParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_STRUCTURED_OBJECT_LIST: // BACnetConstructedDataStructuredObjectList
 		_child, typeSwitchError = BACnetConstructedDataStructuredObjectListParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
@@ -1393,9 +1393,9 @@ func BACnetConstructedDataParse(readBuffer utils.ReadBuffer, tagNumber uint8, ob
 		_child, typeSwitchError = BACnetConstructedDataSubordinateAnnotationsParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_SUBORDINATE_LIST: // BACnetConstructedDataSubordinateList
 		_child, typeSwitchError = BACnetConstructedDataSubordinateListParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_SUBORDINATE_NODE_TYPES: // BACnetConstructedDataSubordinateNodeTypes
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_SUBORDINATE_NODE_TYPES && peekedTagNumber == uint8(9): // BACnetConstructedDataSubordinateNodeTypes
 		_child, typeSwitchError = BACnetConstructedDataSubordinateNodeTypesParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_SUBORDINATE_RELATIONSHIPS: // BACnetConstructedDataSubordinateRelationships
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_SUBORDINATE_RELATIONSHIPS && peekedTagNumber == uint8(9): // BACnetConstructedDataSubordinateRelationships
 		_child, typeSwitchError = BACnetConstructedDataSubordinateRelationshipsParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_SUBORDINATE_TAGS: // BACnetConstructedDataSubordinateTags
 		_child, typeSwitchError = BACnetConstructedDataSubordinateTagsParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
@@ -1407,7 +1407,7 @@ func BACnetConstructedDataParse(readBuffer utils.ReadBuffer, tagNumber uint8, ob
 		_child, typeSwitchError = BACnetConstructedDataSupportedFormatsParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_SUPPORTED_SECURITY_ALGORITHMS: // BACnetConstructedDataSupportedSecurityAlgorithms
 		_child, typeSwitchError = BACnetConstructedDataSupportedSecurityAlgorithmsParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_SYSTEM_STATUS: // BACnetConstructedDataSystemStatus
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_SYSTEM_STATUS && peekedTagNumber == uint8(9): // BACnetConstructedDataSystemStatus
 		_child, typeSwitchError = BACnetConstructedDataSystemStatusParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_TAGS: // BACnetConstructedDataTags
 		_child, typeSwitchError = BACnetConstructedDataTagsParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
@@ -1415,9 +1415,9 @@ func BACnetConstructedDataParse(readBuffer utils.ReadBuffer, tagNumber uint8, ob
 		_child, typeSwitchError = BACnetConstructedDataThreatAuthorityParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_THREAT_LEVEL: // BACnetConstructedDataThreatLevel
 		_child, typeSwitchError = BACnetConstructedDataThreatLevelParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_TIME_DELAY: // BACnetConstructedDataTimeDelay
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_TIME_DELAY && peekedTagNumber == uint8(2): // BACnetConstructedDataTimeDelay
 		_child, typeSwitchError = BACnetConstructedDataTimeDelayParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_TIME_DELAY_NORMAL: // BACnetConstructedDataTimeDelayNormal
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_TIME_DELAY_NORMAL && peekedTagNumber == uint8(2): // BACnetConstructedDataTimeDelayNormal
 		_child, typeSwitchError = BACnetConstructedDataTimeDelayNormalParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_TIME_OF_ACTIVE_TIME_RESET: // BACnetConstructedDataTimeOfActiveTimeReset
 		_child, typeSwitchError = BACnetConstructedDataTimeOfActiveTimeResetParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
@@ -1427,85 +1427,85 @@ func BACnetConstructedDataParse(readBuffer utils.ReadBuffer, tagNumber uint8, ob
 		_child, typeSwitchError = BACnetConstructedDataTimeOfStateCountResetParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_TIME_OF_STRIKE_COUNT_RESET: // BACnetConstructedDataTimeOfStrikeCountReset
 		_child, typeSwitchError = BACnetConstructedDataTimeOfStrikeCountResetParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_TIME_SYNCHRONIZATION_INTERVAL: // BACnetConstructedDataTimeSynchronizationInterval
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_TIME_SYNCHRONIZATION_INTERVAL && peekedTagNumber == uint8(2): // BACnetConstructedDataTimeSynchronizationInterval
 		_child, typeSwitchError = BACnetConstructedDataTimeSynchronizationIntervalParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_TIME_SYNCHRONIZATION_RECIPIENTS: // BACnetConstructedDataTimeSynchronizationRecipients
 		_child, typeSwitchError = BACnetConstructedDataTimeSynchronizationRecipientsParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_TIMER_RUNNING: // BACnetConstructedDataTimerRunning
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_TIMER_RUNNING && peekedTagNumber == uint8(1): // BACnetConstructedDataTimerRunning
 		_child, typeSwitchError = BACnetConstructedDataTimerRunningParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_TIMER_STATE: // BACnetConstructedDataTimerState
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_TIMER_STATE && peekedTagNumber == uint8(9): // BACnetConstructedDataTimerState
 		_child, typeSwitchError = BACnetConstructedDataTimerStateParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_TOTAL_RECORD_COUNT: // BACnetConstructedDataTotalRecordCount
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_TOTAL_RECORD_COUNT && peekedTagNumber == uint8(2): // BACnetConstructedDataTotalRecordCount
 		_child, typeSwitchError = BACnetConstructedDataTotalRecordCountParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_TRACE_FLAG: // BACnetConstructedDataTraceFlag
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_TRACE_FLAG && peekedTagNumber == uint8(1): // BACnetConstructedDataTraceFlag
 		_child, typeSwitchError = BACnetConstructedDataTraceFlagParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case objectTypeArgument == BACnetObjectType_LIGHTING_OUTPUT && propertyIdentifierArgument == BACnetPropertyIdentifier_TRACKING_VALUE: // BACnetConstructedDataLightingOutputTrackingValue
+	case objectTypeArgument == BACnetObjectType_LIGHTING_OUTPUT && propertyIdentifierArgument == BACnetPropertyIdentifier_TRACKING_VALUE && peekedTagNumber == uint8(4): // BACnetConstructedDataLightingOutputTrackingValue
 		_child, typeSwitchError = BACnetConstructedDataLightingOutputTrackingValueParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case objectTypeArgument == BACnetObjectType_LIGHTING_OUTPUT && propertyIdentifierArgument == BACnetPropertyIdentifier_TRACKING_VALUE: // BACnetConstructedDataLightingOutputTrackingValue
+	case objectTypeArgument == BACnetObjectType_LIGHTING_OUTPUT && propertyIdentifierArgument == BACnetPropertyIdentifier_TRACKING_VALUE && peekedTagNumber == uint8(4): // BACnetConstructedDataLightingOutputTrackingValue
 		_child, typeSwitchError = BACnetConstructedDataLightingOutputTrackingValueParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_TRACKING_VALUE: // BACnetConstructedDataTrackingValue
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_TRACKING_VALUE && peekedTagNumber == uint8(9): // BACnetConstructedDataTrackingValue
 		_child, typeSwitchError = BACnetConstructedDataTrackingValueParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_TRANSACTION_NOTIFICATION_CLASS: // BACnetConstructedDataTransactionNotificationClass
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_TRANSACTION_NOTIFICATION_CLASS && peekedTagNumber == uint8(2): // BACnetConstructedDataTransactionNotificationClass
 		_child, typeSwitchError = BACnetConstructedDataTransactionNotificationClassParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_TRANSITION: // BACnetConstructedDataTransition
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_TRANSITION && peekedTagNumber == uint8(9): // BACnetConstructedDataTransition
 		_child, typeSwitchError = BACnetConstructedDataTransitionParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_TRIGGER: // BACnetConstructedDataTrigger
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_TRIGGER && peekedTagNumber == uint8(1): // BACnetConstructedDataTrigger
 		_child, typeSwitchError = BACnetConstructedDataTriggerParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_UNITS: // BACnetConstructedDataUnits
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_UNITS && peekedTagNumber == uint8(9): // BACnetConstructedDataUnits
 		_child, typeSwitchError = BACnetConstructedDataUnitsParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_UPDATE_INTERVAL: // BACnetConstructedDataUpdateInterval
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_UPDATE_INTERVAL && peekedTagNumber == uint8(2): // BACnetConstructedDataUpdateInterval
 		_child, typeSwitchError = BACnetConstructedDataUpdateIntervalParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_UPDATE_KEY_SET_TIMEOUT: // BACnetConstructedDataUpdateKeySetTimeout
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_UPDATE_KEY_SET_TIMEOUT && peekedTagNumber == uint8(2): // BACnetConstructedDataUpdateKeySetTimeout
 		_child, typeSwitchError = BACnetConstructedDataUpdateKeySetTimeoutParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case objectTypeArgument == BACnetObjectType_CREDENTIAL_DATA_INPUT && propertyIdentifierArgument == BACnetPropertyIdentifier_UPDATE_TIME: // BACnetConstructedDataCredentialDataInputUpdateTime
 		_child, typeSwitchError = BACnetConstructedDataCredentialDataInputUpdateTimeParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_UPDATE_TIME: // BACnetConstructedDataUpdateTime
 		_child, typeSwitchError = BACnetConstructedDataUpdateTimeParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_USER_EXTERNAL_IDENTIFIER: // BACnetConstructedDataUserExternalIdentifier
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_USER_EXTERNAL_IDENTIFIER && peekedTagNumber == uint8(7): // BACnetConstructedDataUserExternalIdentifier
 		_child, typeSwitchError = BACnetConstructedDataUserExternalIdentifierParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_USER_INFORMATION_REFERENCE: // BACnetConstructedDataUserInformationReference
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_USER_INFORMATION_REFERENCE && peekedTagNumber == uint8(7): // BACnetConstructedDataUserInformationReference
 		_child, typeSwitchError = BACnetConstructedDataUserInformationReferenceParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_USER_NAME: // BACnetConstructedDataUserName
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_USER_NAME && peekedTagNumber == uint8(7): // BACnetConstructedDataUserName
 		_child, typeSwitchError = BACnetConstructedDataUserNameParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_USER_TYPE: // BACnetConstructedDataUserType
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_USER_TYPE && peekedTagNumber == uint8(9): // BACnetConstructedDataUserType
 		_child, typeSwitchError = BACnetConstructedDataUserTypeParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_USES_REMAINING: // BACnetConstructedDataUsesRemaining
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_USES_REMAINING && peekedTagNumber == uint8(3): // BACnetConstructedDataUsesRemaining
 		_child, typeSwitchError = BACnetConstructedDataUsesRemainingParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_UTC_OFFSET: // BACnetConstructedDataUTCOffset
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_UTC_OFFSET && peekedTagNumber == uint8(3): // BACnetConstructedDataUTCOffset
 		_child, typeSwitchError = BACnetConstructedDataUTCOffsetParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_UTC_TIME_SYNCHRONIZATION_RECIPIENTS: // BACnetConstructedDataUTCTimeSynchronizationRecipients
 		_child, typeSwitchError = BACnetConstructedDataUTCTimeSynchronizationRecipientsParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_VALID_SAMPLES: // BACnetConstructedDataValidSamples
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_VALID_SAMPLES && peekedTagNumber == uint8(2): // BACnetConstructedDataValidSamples
 		_child, typeSwitchError = BACnetConstructedDataValidSamplesParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_VALUE_BEFORE_CHANGE: // BACnetConstructedDataValueBeforeChange
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_VALUE_BEFORE_CHANGE && peekedTagNumber == uint8(2): // BACnetConstructedDataValueBeforeChange
 		_child, typeSwitchError = BACnetConstructedDataValueBeforeChangeParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_VALUE_CHANGE_TIME: // BACnetConstructedDataValueChangeTime
 		_child, typeSwitchError = BACnetConstructedDataValueChangeTimeParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_VALUE_SET: // BACnetConstructedDataValueSet
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_VALUE_SET && peekedTagNumber == uint8(2): // BACnetConstructedDataValueSet
 		_child, typeSwitchError = BACnetConstructedDataValueSetParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_VALUE_SOURCE: // BACnetConstructedDataValueSource
 		_child, typeSwitchError = BACnetConstructedDataValueSourceParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_VALUE_SOURCE_ARRAY: // BACnetConstructedDataValueSourceArray
 		_child, typeSwitchError = BACnetConstructedDataValueSourceArrayParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_VARIANCE_VALUE: // BACnetConstructedDataVarianceValue
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_VARIANCE_VALUE && peekedTagNumber == uint8(4): // BACnetConstructedDataVarianceValue
 		_child, typeSwitchError = BACnetConstructedDataVarianceValueParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_VENDOR_IDENTIFIER: // BACnetConstructedDataVendorIdentifier
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_VENDOR_IDENTIFIER && peekedTagNumber == uint8(2): // BACnetConstructedDataVendorIdentifier
 		_child, typeSwitchError = BACnetConstructedDataVendorIdentifierParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_VENDOR_NAME: // BACnetConstructedDataVendorName
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_VENDOR_NAME && peekedTagNumber == uint8(7): // BACnetConstructedDataVendorName
 		_child, typeSwitchError = BACnetConstructedDataVendorNameParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_VERIFICATION_TIME: // BACnetConstructedDataVerificationTime
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_VERIFICATION_TIME && peekedTagNumber == uint8(3): // BACnetConstructedDataVerificationTime
 		_child, typeSwitchError = BACnetConstructedDataVerificationTimeParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_VIRTUAL_MAC_ADDRESS_TABLE: // BACnetConstructedDataVirtualMACAddressTable
 		_child, typeSwitchError = BACnetConstructedDataVirtualMACAddressTableParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_VT_CLASSES_SUPPORTED: // BACnetConstructedDataVTClassesSupported
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_VT_CLASSES_SUPPORTED && peekedTagNumber == uint8(9): // BACnetConstructedDataVTClassesSupported
 		_child, typeSwitchError = BACnetConstructedDataVTClassesSupportedParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_WEEKLY_SCHEDULE: // BACnetConstructedDataWeeklySchedule
 		_child, typeSwitchError = BACnetConstructedDataWeeklyScheduleParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_WINDOW_INTERVAL: // BACnetConstructedDataWindowInterval
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_WINDOW_INTERVAL && peekedTagNumber == uint8(2): // BACnetConstructedDataWindowInterval
 		_child, typeSwitchError = BACnetConstructedDataWindowIntervalParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_WINDOW_SAMPLES: // BACnetConstructedDataWindowSamples
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_WINDOW_SAMPLES && peekedTagNumber == uint8(2): // BACnetConstructedDataWindowSamples
 		_child, typeSwitchError = BACnetConstructedDataWindowSamplesParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
-	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_WRITE_STATUS: // BACnetConstructedDataWriteStatus
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_WRITE_STATUS && peekedTagNumber == uint8(9): // BACnetConstructedDataWriteStatus
 		_child, typeSwitchError = BACnetConstructedDataWriteStatusParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
 	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_ZONE_FROM: // BACnetConstructedDataZoneFrom
 		_child, typeSwitchError = BACnetConstructedDataZoneFromParse(readBuffer, tagNumber, objectTypeArgument, propertyIdentifierArgument)
diff --git a/protocols/bacnetip/src/main/resources/protocols/bacnetip/bacnetip.mspec b/protocols/bacnetip/src/main/resources/protocols/bacnetip/bacnetip.mspec
index d01d65734b..bd2ccfd8e4 100644
--- a/protocols/bacnetip/src/main/resources/protocols/bacnetip/bacnetip.mspec
+++ b/protocols/bacnetip/src/main/resources/protocols/bacnetip/bacnetip.mspec
@@ -2300,7 +2300,7 @@
                         peekedTagHeader                 ]
     [virtual  uint 8    peekedTagNumber     'peekedTagHeader.actualTagNumber']
     [typeSwitch objectTypeArgument, propertyIdentifierArgument, peekedTagNumber
-        [*, 'ABSENTEE_LIMIT'                            BACnetConstructedDataAbsenteeLimit
+        [*, 'ABSENTEE_LIMIT', '2'                       BACnetConstructedDataAbsenteeLimit
             [simple   BACnetApplicationTagUnsignedInteger                     absenteeLimit                             ]
         ]
         [*, 'ACCEPTED_MODES'                            BACnetConstructedDataAcceptedModes
@@ -2308,7 +2308,7 @@
                             acceptedModes              terminated
                                 'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, tagNumber)']
         ]
-        [*, 'ACCESS_ALARM_EVENTS'                       BACnetConstructedDataAccessAlarmEvents
+        [*, 'ACCESS_ALARM_EVENTS', '9'                  BACnetConstructedDataAccessAlarmEvents
             [array    BACnetAccessEventTagged('0', 'TagClass.APPLICATION_TAGS')
                                     accessAlarmEvents
                                         terminated
@@ -2320,7 +2320,7 @@
                                         terminated
                                         'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, tagNumber)']
         ]
-        [*, 'ACCESS_EVENT'                              BACnetConstructedDataAccessEvent
+        [*, 'ACCESS_EVENT', '9'                         BACnetConstructedDataAccessEvent
             [simple   BACnetAccessEventTagged('0', 'TagClass.APPLICATION_TAGS') accessEvent]
         ]
         [*, 'ACCESS_EVENT_AUTHENTICATION_FACTOR'        BACnetConstructedDataAccessEventAuthenticationFactor
@@ -2329,13 +2329,13 @@
         [*, 'ACCESS_EVENT_CREDENTIAL'                   BACnetConstructedDataAccessEventCredential
             [simple   BACnetDeviceObjectReference       accessEventCredential                                           ]
         ]
-        [*, 'ACCESS_EVENT_TAG'                          BACnetConstructedDataAccessEventTag
+        [*, 'ACCESS_EVENT_TAG', '2'                     BACnetConstructedDataAccessEventTag
             [simple BACnetApplicationTagUnsignedInteger                     accessEventTag                              ]
         ]
         [*, 'ACCESS_EVENT_TIME'                         BACnetConstructedDataAccessEventTime
             [simple   BACnetTimeStamp                                                accessEventTime                    ]
         ]
-        [*, 'ACCESS_TRANSACTION_EVENTS'                 BACnetConstructedDataAccessTransactionEvents
+        [*, 'ACCESS_TRANSACTION_EVENTS', '9'            BACnetConstructedDataAccessTransactionEvents
             [array    BACnetAccessEventTagged('0', 'TagClass.APPLICATION_TAGS')
                                         accessTransactionEvents
                                             terminated
@@ -2344,17 +2344,17 @@
         [*, 'ACCOMPANIMENT'                             BACnetConstructedDataAccompaniment
             [simple   BACnetDeviceObjectReference       accompaniment                                                   ]
         ]
-        [*, 'ACCOMPANIMENT_TIME'                        BACnetConstructedDataAccompanimentTime
+        [*, 'ACCOMPANIMENT_TIME', '2'                   BACnetConstructedDataAccompanimentTime
             [simple   BACnetApplicationTagUnsignedInteger                               accompanimentTime               ]
         ]
-        [*, 'ACK_REQUIRED'                              BACnetConstructedDataAckRequired
+        [*, 'ACK_REQUIRED', '9'                         BACnetConstructedDataAckRequired
             [simple   BACnetEventTransitionBitsTagged('0', 'TagClass.APPLICATION_TAGS')
                                                                                         ackRequired                     ]
         ]
-        [*, 'ACKED_TRANSITIONS'                         BACnetConstructedDataAckedTransitions
+        [*, 'ACKED_TRANSITIONS', '9'                    BACnetConstructedDataAckedTransitions
             [simple   BACnetEventTransitionBitsTagged('0', 'TagClass.APPLICATION_TAGS') ackedTransitions                ]
         ]
-        ['LOOP', 'ACTION'                               BACnetConstructedDataLoopAction
+        ['LOOP', 'ACTION', '9'                          BACnetConstructedDataLoopAction
             [simple   BACnetActionTagged('0', 'TagClass.APPLICATION_TAGS') action]
         ]
         ['COMMAND', 'ACTION'                            BACnetConstructedDataCommandAction
@@ -2369,7 +2369,7 @@
                                 terminated
                                 'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, tagNumber)']
         ]
-        [*, 'ACTION_TEXT'                               BACnetConstructedDataActionText
+        [*, 'ACTION_TEXT', '7'                          BACnetConstructedDataActionText
             [array    BACnetApplicationTagCharacterString
                     actionText
                             terminated
@@ -2378,7 +2378,7 @@
         [*, 'ACTIVATION_TIME'                           BACnetConstructedDataActivationTime
             [simple   BACnetDateTime    activationTime                                                                  ]
         ]
-        [*, 'ACTIVE_AUTHENTICATION_POLICY'              BACnetConstructedDataActiveAuthenticationPolicy
+        [*, 'ACTIVE_AUTHENTICATION_POLICY', '2'         BACnetConstructedDataActiveAuthenticationPolicy
             [simple   BACnetApplicationTagUnsignedInteger                               activeAuthenticationPolicy      ]
         ]
         [*, 'ACTIVE_COV_MULTIPLE_SUBSCRIPTIONS'         BACnetConstructedDataActiveCOVMultipleSubscriptions
@@ -2393,7 +2393,7 @@
                                     terminated
                                     'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, tagNumber)'    ]
         ]
-        [*, 'ACTIVE_TEXT'                               BACnetConstructedDataActiveText
+        [*, 'ACTIVE_TEXT', '7'                          BACnetConstructedDataActiveText
             [simple   BACnetApplicationTagCharacterString             activeText                                        ]
         ]
         [*, 'ACTIVE_VT_SESSIONS'                        BACnetConstructedDataActiveVTSessions
@@ -2405,13 +2405,13 @@
         [*, 'ACTUAL_SHED_LEVEL'                         BACnetConstructedDataActualShedLevel
             [simple  BACnetShedLevel            actualShedLevel                                                         ]
         ]
-        ['ACCESS_ZONE', 'ADJUST_VALUE'                  BACnetConstructedDataAccessZoneAdjustValue
+        ['ACCESS_ZONE', 'ADJUST_VALUE', '3'             BACnetConstructedDataAccessZoneAdjustValue
             [simple   BACnetApplicationTagSignedInteger                               adjustValue                       ]
         ]
-        ['PULSE_CONVERTER', 'ADJUST_VALUE'              BACnetConstructedDataPulseConverterAdjustValue
+        ['PULSE_CONVERTER', 'ADJUST_VALUE', '4'         BACnetConstructedDataPulseConverterAdjustValue
             [simple   BACnetApplicationTagReal                                        adjustValue                       ]
         ]
-        [*, 'ADJUST_VALUE'                              BACnetConstructedDataAdjustValue
+        [*, 'ADJUST_VALUE', '3'                         BACnetConstructedDataAdjustValue
             [simple   BACnetApplicationTagSignedInteger                               adjustValue                       ]
         ]
         // TODO: pretty sure we need to catch a generic application tag here
@@ -2428,7 +2428,7 @@
                             alarmValues              terminated
                                 'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, tagNumber)']
         ]
-        ['BITSTRING_VALUE', 'ALARM_VALUES'                   BACnetConstructedDataBitStringValueAlarmValues
+        ['BITSTRING_VALUE', 'ALARM_VALUES', '8'         BACnetConstructedDataBitStringValueAlarmValues
             [array    BACnetApplicationTagBitString
                             alarmValues              terminated
                                 'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, tagNumber)']
@@ -2448,12 +2448,12 @@
                             alarmValues              terminated
                                 'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, tagNumber)']
         ]
-        ['MULTI_STATE_INPUT', 'ALARM_VALUES'            BACnetConstructedDataMultiStateInputAlarmValues
+        ['MULTI_STATE_INPUT', 'ALARM_VALUES', '2'       BACnetConstructedDataMultiStateInputAlarmValues
             [array    BACnetApplicationTagUnsignedInteger
                             alarmValues              terminated
                                 'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, tagNumber)']
         ]
-        ['MULTI_STATE_VALUE', 'ALARM_VALUES'            BACnetConstructedDataMultiStateValueAlarmValues
+        ['MULTI_STATE_VALUE', 'ALARM_VALUES', '2'       BACnetConstructedDataMultiStateValueAlarmValues
             [array    BACnetApplicationTagUnsignedInteger
                             alarmValues              terminated
                                 'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, tagNumber)']
@@ -2468,7 +2468,7 @@
                             alarmValues              terminated
                                 'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, tagNumber)']
         ]
-        [*, 'ALIGN_INTERVALS'                           BACnetConstructedDataAlignIntervals
+        [*, 'ALIGN_INTERVALS', '1'                      BACnetConstructedDataAlignIntervals
             [simple BACnetApplicationTagBoolean                               alignIntervals                            ]
         ]
 
@@ -2658,25 +2658,25 @@
         //
         /////
 
-        [*, 'ALL_WRITES_SUCCESSFUL'                     BACnetConstructedDataAllWritesSuccessful
+        [*, 'ALL_WRITES_SUCCESSFUL', '1'                BACnetConstructedDataAllWritesSuccessful
             [simple   BACnetApplicationTagBoolean                               allWritesSuccessful                     ]
         ]
-        [*, 'ALLOW_GROUP_DELAY_INHIBIT'                 BACnetConstructedDataAllowGroupDelayInhibit
+        [*, 'ALLOW_GROUP_DELAY_INHIBIT', '1'            BACnetConstructedDataAllowGroupDelayInhibit
             [simple   BACnetApplicationTagBoolean                               allowGroupDelayInhibit                  ]
         ]
-        [*, 'APDU_LENGTH'                               BACnetConstructedDataAPDULength
+        [*, 'APDU_LENGTH', '2'                          BACnetConstructedDataAPDULength
             [simple BACnetApplicationTagUnsignedInteger                               apduLength                        ]
         ]
-        [*, 'APDU_SEGMENT_TIMEOUT'                      BACnetConstructedDataAPDUSegmentTimeout
+        [*, 'APDU_SEGMENT_TIMEOUT', '2'                 BACnetConstructedDataAPDUSegmentTimeout
             [simple   BACnetApplicationTagUnsignedInteger                               apduSegmentTimeout              ]
         ]
-        [*, 'APDU_TIMEOUT'                              BACnetConstructedDataAPDUTimeout
+        [*, 'APDU_TIMEOUT', '2'                         BACnetConstructedDataAPDUTimeout
             [simple   BACnetApplicationTagUnsignedInteger                               apduTimeout                     ]
         ]
-        [*, 'APPLICATION_SOFTWARE_VERSION'              BACnetConstructedDataApplicationSoftwareVersion
+        [*, 'APPLICATION_SOFTWARE_VERSION', '7'         BACnetConstructedDataApplicationSoftwareVersion
             [simple   BACnetApplicationTagCharacterString                               applicationSoftwareVersion      ]
         ]
-        [*, 'ARCHIVE'                                   BACnetConstructedDataArchive
+        [*, 'ARCHIVE', '1'                              BACnetConstructedDataArchive
             [simple BACnetApplicationTagBoolean                                          archive                        ]
         ]
         [*, 'ASSIGNED_ACCESS_RIGHTS'                    BACnetConstructedDataAssignedAccessRights
@@ -2691,7 +2691,7 @@
                                                 terminated
                                                 'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, tagNumber)'            ]
         ]
-        [*, 'ATTEMPTED_SAMPLES'                         BACnetConstructedDataAttemptedSamples
+        [*, 'ATTEMPTED_SAMPLES', '2'                    BACnetConstructedDataAttemptedSamples
             [simple   BACnetApplicationTagUnsignedInteger                               attemptedSamples                ]
         ]
         [*, 'AUTHENTICATION_FACTORS'                    BACnetConstructedDataAuthenticationFactors
@@ -2706,163 +2706,163 @@
                                     terminated
                                     'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, tagNumber)'    ]
         ]
-        [*, 'AUTHENTICATION_POLICY_NAMES'               BACnetConstructedDataAuthenticationPolicyNames
+        [*, 'AUTHENTICATION_POLICY_NAMES', '7'          BACnetConstructedDataAuthenticationPolicyNames
             [array    BACnetApplicationTagCharacterString
                                         authenticationPolicyNames
                                                 terminated
                                                 'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, tagNumber)'            ]
         ]
-        [*, 'AUTHENTICATION_STATUS'                     BACnetConstructedDataAuthenticationStatus
+        [*, 'AUTHENTICATION_STATUS', '9'                BACnetConstructedDataAuthenticationStatus
             [simple   BACnetAuthenticationStatusTagged('0', 'TagClass.APPLICATION_TAGS') authenticationStatus           ]
         ]
-        [*, 'AUTHORIZATION_EXEMPTIONS'                  BACnetConstructedDataAuthorizationExemptions
+        [*, 'AUTHORIZATION_EXEMPTIONS', '9'             BACnetConstructedDataAuthorizationExemptions
             [array    BACnetAuthorizationExemptionTagged('0', 'TagClass.APPLICATION_TAGS')
                                         authorizationExemption
                                                 terminated
                                                 'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, tagNumber)'            ]
         ]
-        [*, 'AUTHORIZATION_MODE'                      BACnetConstructedDataAuthorizationMode
+        [*, 'AUTHORIZATION_MODE', '9'                   BACnetConstructedDataAuthorizationMode
             [simple   BACnetAuthorizationModeTagged('0', 'TagClass.APPLICATION_TAGS') authorizationMode                 ]
         ]
-        [*, 'AUTO_SLAVE_DISCOVERY'                    BACnetConstructedDataAutoSlaveDiscovery
+        [*, 'AUTO_SLAVE_DISCOVERY', '1'                 BACnetConstructedDataAutoSlaveDiscovery
             [simple   BACnetApplicationTagBoolean                                       autoSlaveDiscovery              ]
         ]
-        [*, 'AVERAGE_VALUE'                           BACnetConstructedDataAverageValue
+        [*, 'AVERAGE_VALUE', '4'                        BACnetConstructedDataAverageValue
             [simple BACnetApplicationTagReal                                averageValue                                ]
         ]
-        [*, 'BACKUP_AND_RESTORE_STATE'                BACnetConstructedDataBackupAndRestoreState
+        [*, 'BACKUP_AND_RESTORE_STATE', '9'             BACnetConstructedDataBackupAndRestoreState
             [simple   BACnetBackupStateTagged('0', 'TagClass.APPLICATION_TAGS')         backupAndRestoreState           ]
         ]
-        [*, 'BACKUP_FAILURE_TIMEOUT'                  BACnetConstructedDataBackupFailureTimeout
+        [*, 'BACKUP_FAILURE_TIMEOUT', '2'               BACnetConstructedDataBackupFailureTimeout
             [simple   BACnetApplicationTagUnsignedInteger                               backupFailureTimeout            ]
         ]
-        [*, 'BACKUP_PREPARATION_TIME'                 BACnetConstructedDataBackupPreparationTime
+        [*, 'BACKUP_PREPARATION_TIME', '2'              BACnetConstructedDataBackupPreparationTime
             [simple   BACnetApplicationTagUnsignedInteger                               backupPreparationTime           ]
         ]
-        [*, 'BACNET_IP_GLOBAL_ADDRESS'                BACnetConstructedDataBACnetIPGlobalAddress
+        [*, 'BACNET_IP_GLOBAL_ADDRESS'                  BACnetConstructedDataBACnetIPGlobalAddress
             [simple   BACnetHostNPort                   bacnetIpGlobalAddress                                           ]
         ]
-        [*, 'BACNET_IP_MODE'                          BACnetConstructedDataBACnetIPMode
+        [*, 'BACNET_IP_MODE', '9'                       BACnetConstructedDataBACnetIPMode
             [simple BACnetIPModeTagged('0', 'TagClass.APPLICATION_TAGS') bacnetIpMode                                   ]
         ]
-        [*, 'BACNET_IP_MULTICAST_ADDRESS'             BACnetConstructedDataBACnetIPMulticastAddress
+        [*, 'BACNET_IP_MULTICAST_ADDRESS', '6'          BACnetConstructedDataBACnetIPMulticastAddress
             [simple   BACnetApplicationTagOctetString   ipMulticastAddress                                              ]
         ]
-        [*, 'BACNET_IP_NAT_TRAVERSAL'                 BACnetConstructedDataBACnetIPNATTraversal
+        [*, 'BACNET_IP_NAT_TRAVERSAL', '1'              BACnetConstructedDataBACnetIPNATTraversal
             [simple BACnetApplicationTagBoolean                               bacnetIPNATTraversal                      ]
         ]
-        [*, 'BACNET_IP_UDP_PORT'                      BACnetConstructedDataBACnetIPUDPPort
+        [*, 'BACNET_IP_UDP_PORT', '2'                   BACnetConstructedDataBACnetIPUDPPort
             [simple BACnetApplicationTagUnsignedInteger                               ipUdpPort                         ]
         ]
-        [*, 'BACNET_IPV6_MODE'                        BACnetConstructedDataBACnetIPv6Mode
+        [*, 'BACNET_IPV6_MODE', '9'                     BACnetConstructedDataBACnetIPv6Mode
             [simple   BACnetIPModeTagged('0', 'TagClass.APPLICATION_TAGS') bacnetIpv6Mode                               ]
         ]
-        [*, 'BACNET_IPV6_UDP_PORT'                    BACnetConstructedDataBACnetIPv6UDPPort
+        [*, 'BACNET_IPV6_UDP_PORT', '2'                 BACnetConstructedDataBACnetIPv6UDPPort
             [simple BACnetApplicationTagUnsignedInteger                               ipv6UdpPort                       ]
         ]
-        [*, 'BACNET_IPV6_MULTICAST_ADDRESS'           BACnetConstructedDataBACnetIPv6MulticastAddress
+        [*, 'BACNET_IPV6_MULTICAST_ADDRESS', '6'        BACnetConstructedDataBACnetIPv6MulticastAddress
             [simple   BACnetApplicationTagOctetString   ipv6MulticastAddress                                            ]
         ]
-        [*, 'BASE_DEVICE_SECURITY_POLICY'             BACnetConstructedDataBaseDeviceSecurityPolicy
+        [*, 'BASE_DEVICE_SECURITY_POLICY', '9'          BACnetConstructedDataBaseDeviceSecurityPolicy
             [simple BACnetSecurityLevelTagged('0', 'TagClass.APPLICATION_TAGS')     baseDeviceSecurityPolicy            ]
         ]
-        [*, 'BBMD_ACCEPT_FD_REGISTRATIONS'            BACnetConstructedDataBBMDAcceptFDRegistrations
+        [*, 'BBMD_ACCEPT_FD_REGISTRATIONS', '1'         BACnetConstructedDataBBMDAcceptFDRegistrations
             [simple BACnetApplicationTagBoolean                               bbmdAcceptFDRegistrations                 ]
         ]
-        [*, 'BBMD_BROADCAST_DISTRIBUTION_TABLE'       BACnetConstructedDataBBMDBroadcastDistributionTable
+        [*, 'BBMD_BROADCAST_DISTRIBUTION_TABLE'         BACnetConstructedDataBBMDBroadcastDistributionTable
             [array    BACnetBDTEntry
                                 bbmdBroadcastDistributionTable
                                         terminated
                                         'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, tagNumber)'            ]
         ]
-        [*, 'BBMD_FOREIGN_DEVICE_TABLE'               BACnetConstructedDataBBMDForeignDeviceTable
+        [*, 'BBMD_FOREIGN_DEVICE_TABLE'                 BACnetConstructedDataBBMDForeignDeviceTable
             [array    BACnetBDTEntry
                                 bbmdForeignDeviceTable
                                         terminated
                                         'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, tagNumber)'            ]
         ]
-        [*, 'BELONGS_TO'                              BACnetConstructedDataBelongsTo
+        [*, 'BELONGS_TO'                                BACnetConstructedDataBelongsTo
             [simple   BACnetDeviceObjectReference       belongsTo                                                       ]
         ]
-        [*, 'BIAS'                                    BACnetConstructedDataBias
+        [*, 'BIAS', '4'                                 BACnetConstructedDataBias
             [simple   BACnetApplicationTagReal                                          bias                            ]
         ]
-        [*, 'BIT_MASK'                                BACnetConstructedDataBitMask
+        [*, 'BIT_MASK', '8'                             BACnetConstructedDataBitMask
             [simple   BACnetApplicationTagBitString     bitString                                                       ]
         ]
-        [*, 'BIT_TEXT'                                BACnetConstructedDataBitText
+        [*, 'BIT_TEXT', '7'                             BACnetConstructedDataBitText
             [array    BACnetApplicationTagCharacterString
                         bitText
                             terminated
                             'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, tagNumber)'            ]
         ]
-        [*, 'BLINK_WARN_ENABLE'                       BACnetConstructedDataBlinkWarnEnable
+        [*, 'BLINK_WARN_ENABLE', '1'                    BACnetConstructedDataBlinkWarnEnable
             [simple BACnetApplicationTagBoolean                               blinkWarnEnable                           ]
         ]
-        [*, 'BUFFER_SIZE'                             BACnetConstructedDataBufferSize
+        [*, 'BUFFER_SIZE', '2'                          BACnetConstructedDataBufferSize
             [simple BACnetApplicationTagUnsignedInteger                       bufferSize                                ]
         ]
-        [*, 'CAR_ASSIGNED_DIRECTION'                  BACnetConstructedDataCarAssignedDirection
+        [*, 'CAR_ASSIGNED_DIRECTION', '9'               BACnetConstructedDataCarAssignedDirection
             [simple   BACnetLiftCarDirectionTagged('0', 'TagClass.APPLICATION_TAGS')             assignedDirection      ]
         ]
-        [*, 'CAR_DOOR_COMMAND'                        BACnetConstructedDataCarDoorCommand
+        [*, 'CAR_DOOR_COMMAND', '9'                     BACnetConstructedDataCarDoorCommand
             [array    BACnetLiftCarDoorCommandTagged('0', 'TagClass.APPLICATION_TAGS')
                             carDoorCommand
                                     terminated
                                     'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, tagNumber)'    ]
         ]
-        [*, 'CAR_DOOR_STATUS'                         BACnetConstructedDataCarDoorStatus
+        [*, 'CAR_DOOR_STATUS', '9'                      BACnetConstructedDataCarDoorStatus
             [array    BACnetDoorStatusTagged('0', 'TagClass.APPLICATION_TAGS')
                             carDoorStatus
                                     terminated
                                     'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, tagNumber)'    ]
         ]
-        [*, 'CAR_DOOR_TEXT'                           BACnetConstructedDataCarDoorText
+        [*, 'CAR_DOOR_TEXT', '7'                        BACnetConstructedDataCarDoorText
             [array    BACnetApplicationTagCharacterString
                                 carDoorText
                                         terminated
                                         'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, tagNumber)']
         ]
-        [*, 'CAR_DOOR_ZONE'                           BACnetConstructedDataCarDoorZone
+        [*, 'CAR_DOOR_ZONE', '1'                        BACnetConstructedDataCarDoorZone
             [simple   BACnetApplicationTagBoolean               carDoorZone                                             ]
         ]
-        [*, 'CAR_DRIVE_STATUS'                        BACnetConstructedDataCarDriveStatus
+        [*, 'CAR_DRIVE_STATUS', '9'                     BACnetConstructedDataCarDriveStatus
             [simple   BACnetLiftCarDriveStatusTagged('0', 'TagClass.APPLICATION_TAGS')                  carDriveStatus  ]
         ]
-        [*, 'CAR_LOAD'                                BACnetConstructedDataCarLoad
+        [*, 'CAR_LOAD', '4'                             BACnetConstructedDataCarLoad
             [simple   BACnetApplicationTagReal                                          carLoad                         ]
         ]
-        [*, 'CAR_LOAD_UNITS'                          BACnetConstructedDataCarLoadUnits
+        [*, 'CAR_LOAD_UNITS', '9'                       BACnetConstructedDataCarLoadUnits
             [simple   BACnetEngineeringUnitsTagged('0', 'TagClass.APPLICATION_TAGS')                    units           ]
         ]
-        [*, 'CAR_MODE'                                BACnetConstructedDataCarMode
+        [*, 'CAR_MODE', '9'                             BACnetConstructedDataCarMode
             [simple   BACnetLiftCarModeTagged('0', 'TagClass.APPLICATION_TAGS')                    carMode              ]
         ]
-        [*, 'CAR_MOVING_DIRECTION'                    BACnetConstructedDataCarMovingDirection
+        [*, 'CAR_MOVING_DIRECTION', '9'                 BACnetConstructedDataCarMovingDirection
             [simple   BACnetLiftCarDirectionTagged('0', 'TagClass.APPLICATION_TAGS')             carMovingDirection     ]
         ]
-        [*, 'CAR_POSITION'                            BACnetConstructedDataCarPosition
+        [*, 'CAR_POSITION', '2'                         BACnetConstructedDataCarPosition
             [simple   BACnetApplicationTagUnsignedInteger                     carPosition                               ]
         ]
-        [*, 'CHANGE_OF_STATE_COUNT'                   BACnetConstructedDataChangeOfStateCount
+        [*, 'CHANGE_OF_STATE_COUNT', '2'                BACnetConstructedDataChangeOfStateCount
             [simple   BACnetApplicationTagUnsignedInteger                     changeIfStateCount                        ]
         ]
-        [*, 'CHANGE_OF_STATE_TIME'                    BACnetConstructedDataChangeOfStateTime
+        [*, 'CHANGE_OF_STATE_TIME'                      BACnetConstructedDataChangeOfStateTime
             [simple   BACnetDateTime                                          changeOfStateTime                         ]
         ]
-        [*, 'CHANGES_PENDING'                         BACnetConstructedDataChangesPending
+        [*, 'CHANGES_PENDING', '1'                      BACnetConstructedDataChangesPending
             [simple   BACnetApplicationTagBoolean                                       changesPending                  ]
         ]
-        [*, 'CHANNEL_NUMBER'                          BACnetConstructedDataChannelNumber
+        [*, 'CHANNEL_NUMBER', '2'                       BACnetConstructedDataChannelNumber
             [simple   BACnetApplicationTagUnsignedInteger                     channelNumber                             ]
         ]
-        [*, 'CLIENT_COV_INCREMENT'                    BACnetConstructedDataClientCOVIncrement
+        [*, 'CLIENT_COV_INCREMENT'                      BACnetConstructedDataClientCOVIncrement
             [simple   BACnetClientCOV                 covIncrement                                                      ]
         ]
-        [*, 'COMMAND'                                 BACnetConstructedDataCommand
+        [*, 'COMMAND', '9'                              BACnetConstructedDataCommand
             [simple   BACnetNetworkPortCommandTagged('0', 'TagClass.APPLICATION_TAGS')                  command         ]
         ]
-        [*, 'COMMAND_TIME_ARRAY'                      BACnetConstructedDataCommandTimeArray
+        [*, 'COMMAND_TIME_ARRAY'                        BACnetConstructedDataCommandTimeArray
             [array    BACnetTimeStamp
                             commandTimeArray
                                     terminated
@@ -2870,85 +2870,85 @@
             // TODO: enable once index support is in
             //[validation 'COUNT(asdasd) == 16' "asdasd should have exactly 16 values"                                  ]
         ]
-        [*, 'CONFIGURATION_FILES'                     BACnetConstructedDataConfigurationFiles
+        [*, 'CONFIGURATION_FILES', '12'                 BACnetConstructedDataConfigurationFiles
             [array    BACnetApplicationTagObjectIdentifier
                                 configurationFiles
                                         terminated
                                         'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, tagNumber)']
         ]
-        [*, 'CONTROL_GROUPS'                          BACnetConstructedDataControlGroups
+        [*, 'CONTROL_GROUPS', '2'                       BACnetConstructedDataControlGroups
             [array    BACnetApplicationTagUnsignedInteger
                                 controlGroups
                                         terminated
                                         'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, tagNumber)']
         ]
-        [*, 'CONTROLLED_VARIABLE_REFERENCE'           BACnetConstructedDataControlledVariableReference
+        [*, 'CONTROLLED_VARIABLE_REFERENCE'             BACnetConstructedDataControlledVariableReference
             [simple   BACnetObjectPropertyReference                                     controlledVariableReference     ]
         ]
-        [*, 'CONTROLLED_VARIABLE_UNITS'               BACnetConstructedDataControlledVariableUnits
+        [*, 'CONTROLLED_VARIABLE_UNITS', '9'            BACnetConstructedDataControlledVariableUnits
             [simple   BACnetEngineeringUnitsTagged('0', 'TagClass.APPLICATION_TAGS')                    units           ]
         ]
-        [*, 'CONTROLLED_VARIABLE_VALUE'               BACnetConstructedDataControlledVariableValue
+        [*, 'CONTROLLED_VARIABLE_VALUE', '4'            BACnetConstructedDataControlledVariableValue
             [simple   BACnetApplicationTagReal                                          controlledVariableValue         ]
         ]
-        [*, 'COUNT'                                   BACnetConstructedDataCount
+        [*, 'COUNT', '2'                                BACnetConstructedDataCount
             [simple BACnetApplicationTagUnsignedInteger                               count                             ]
         ]
-        [*, 'COUNT_BEFORE_CHANGE'                     BACnetConstructedDataCountBeforeChange
+        [*, 'COUNT_BEFORE_CHANGE', '2'                  BACnetConstructedDataCountBeforeChange
             [simple BACnetApplicationTagUnsignedInteger                               countBeforeChange                 ]
         ]
-        [*, 'COUNT_CHANGE_TIME'                       BACnetConstructedDataCountChangeTime
+        [*, 'COUNT_CHANGE_TIME'                         BACnetConstructedDataCountChangeTime
             [simple   BACnetDateTime                                        countChangeTime                             ]
         ]
-        ['INTEGER_VALUE', 'COV_INCREMENT'             BACnetConstructedDataIntegerValueCOVIncrement
+        ['INTEGER_VALUE', 'COV_INCREMENT', '2'          BACnetConstructedDataIntegerValueCOVIncrement
             [simple   BACnetApplicationTagUnsignedInteger                               covIncrement                    ]
         ]
-        ['LARGE_ANALOG_VALUE', 'COV_INCREMENT'        BACnetConstructedDataLargeAnalogValueCOVIncrement
+        ['LARGE_ANALOG_VALUE', 'COV_INCREMENT', '5'     BACnetConstructedDataLargeAnalogValueCOVIncrement
             [simple   BACnetApplicationTagDouble                                        covIncrement                    ]
         ]
-        ['POSITIVE_INTEGER_VALUE', 'COV_INCREMENT'    BACnetConstructedDataPositiveIntegerValueCOVIncrement
+        ['POSITIVE_INTEGER_VALUE', 'COV_INCREMENT', '2' BACnetConstructedDataPositiveIntegerValueCOVIncrement
             [simple   BACnetApplicationTagUnsignedInteger                               covIncrement                    ]
         ]
-        [*, 'COV_INCREMENT'                           BACnetConstructedDataCOVIncrement
+        [*, 'COV_INCREMENT', '4'                        BACnetConstructedDataCOVIncrement
             [simple   BACnetApplicationTagReal                                          covIncrement                    ]
         ]
-        [*, 'COV_PERIOD'                              BACnetConstructedDataCOVPeriod
+        [*, 'COV_PERIOD', '2'                           BACnetConstructedDataCOVPeriod
             [simple   BACnetApplicationTagUnsignedInteger                               covPeriod                       ]
         ]
-        [*, 'COV_RESUBSCRIPTION_INTERVAL'             BACnetConstructedDataCOVResubscriptionInterval
+        [*, 'COV_RESUBSCRIPTION_INTERVAL', '2'          BACnetConstructedDataCOVResubscriptionInterval
             [simple   BACnetApplicationTagUnsignedInteger                               covResubscriptionInterval       ]
         ]
-        [*, 'COVU_PERIOD'                             BACnetConstructedDataCOVUPeriod
+        [*, 'COVU_PERIOD', '2'                          BACnetConstructedDataCOVUPeriod
             [simple   BACnetApplicationTagUnsignedInteger                               covuPeriod                      ]
         ]
-        [*, 'COVU_RECIPIENTS'                         BACnetConstructedDataCOVURecipients
+        [*, 'COVU_RECIPIENTS'                           BACnetConstructedDataCOVURecipients
             [array    BACnetRecipient
                                         covuRecipients
                                                 terminated
                                                 'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, tagNumber)']
         ]
-        [*, 'CREDENTIAL_DISABLE'                      BACnetConstructedDataCredentialDisable
+        [*, 'CREDENTIAL_DISABLE', '9'                   BACnetConstructedDataCredentialDisable
             [simple   BACnetAccessCredentialDisableTagged('0', 'TagClass.APPLICATION_TAGS')             credentialDisable]
         ]
-        [*, 'CREDENTIAL_STATUS'                       BACnetConstructedDataCredentialStatus
+        [*, 'CREDENTIAL_STATUS', '9'                    BACnetConstructedDataCredentialStatus
             [simple   BACnetBinaryPVTagged('0', 'TagClass.APPLICATION_TAGS')    binaryPv                    ]
         ]
-        [*, 'CREDENTIALS'                             BACnetConstructedDataCredentials
+        [*, 'CREDENTIALS'                               BACnetConstructedDataCredentials
             [array    BACnetDeviceObjectReference
                         credentials
                             terminated
                             'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, tagNumber)'            ]
         ]
-        [*, 'CREDENTIALS_IN_ZONE'                     BACnetConstructedDataCredentialsInZone
+        [*, 'CREDENTIALS_IN_ZONE'                       BACnetConstructedDataCredentialsInZone
             [array    BACnetDeviceObjectReference
                         credentialsInZone
                             terminated
                             'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, tagNumber)'            ]
         ]
-        [*, 'CURRENT_COMMAND_PRIORITY'                BACnetConstructedDataCurrentCommandPriority
+        [*, 'CURRENT_COMMAND_PRIORITY'                  BACnetConstructedDataCurrentCommandPriority
             [simple   BACnetOptionalUnsigned                currentCommandPriority                                      ]
         ]
-        [*, 'DATABASE_REVISION'                         BACnetConstructedDataDatabaseRevision
+        [*, 'DATABASE_REVISION', '2'                    BACnetConstructedDataDatabaseRevision
             [simple   BACnetApplicationTagUnsignedInteger                     databaseRevision                          ]
         ]
         [*, 'DATE_LIST'                                 BACnetConstructedDataDateList
@@ -2957,246 +2957,246 @@
                             terminated
                             'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, tagNumber)'            ]
         ]
-        [*, 'DAYLIGHT_SAVINGS_STATUS'                   BACnetConstructedDataDaylightSavingsStatus
+        [*, 'DAYLIGHT_SAVINGS_STATUS', '1'              BACnetConstructedDataDaylightSavingsStatus
             [simple   BACnetApplicationTagBoolean                               daylightSavingsStatus                   ]
         ]
-        [*, 'DAYS_REMAINING'                            BACnetConstructedDataDaysRemaining
+        [*, 'DAYS_REMAINING', '3'                       BACnetConstructedDataDaysRemaining
             [simple   BACnetApplicationTagSignedInteger                     daysRemaining                               ]
         ]
-        ['INTEGER_VALUE', 'DEADBAND'               BACnetConstructedDataIntegerValueDeadband
+        ['INTEGER_VALUE', 'DEADBAND', '2'               BACnetConstructedDataIntegerValueDeadband
             [simple   BACnetApplicationTagUnsignedInteger                               deadband                        ]
         ]
-        ['LARGE_ANALOG_VALUE', 'DEADBAND'               BACnetConstructedDataLargeAnalogValueDeadband
+        ['LARGE_ANALOG_VALUE', 'DEADBAND', '5'          BACnetConstructedDataLargeAnalogValueDeadband
             [simple   BACnetApplicationTagDouble                                        deadband                        ]
         ]
-        ['POSITIVE_INTEGER_VALUE', 'DEADBAND'               BACnetConstructedDataPositiveIntegerValueDeadband
+        ['POSITIVE_INTEGER_VALUE', 'DEADBAND', '2'      BACnetConstructedDataPositiveIntegerValueDeadband
             [simple   BACnetApplicationTagUnsignedInteger                               deadband                        ]
         ]
-        [*, 'DEADBAND'                                  BACnetConstructedDataDeadband
+        [*, 'DEADBAND', '4'                             BACnetConstructedDataDeadband
             [simple   BACnetApplicationTagReal                                          deadband                        ]
         ]
-        [*, 'DEFAULT_FADE_TIME'                         BACnetConstructedDataDefaultFadeTime
+        [*, 'DEFAULT_FADE_TIME', '2'                    BACnetConstructedDataDefaultFadeTime
             [simple   BACnetApplicationTagUnsignedInteger                     defaultFadeTime                           ]
         ]
-        [*, 'DEFAULT_RAMP_RATE'                         BACnetConstructedDataDefaultRampRate
+        [*, 'DEFAULT_RAMP_RATE', '4'                    BACnetConstructedDataDefaultRampRate
             [simple   BACnetApplicationTagReal                                          defaultRampRate                 ]
         ]
-        [*, 'DEFAULT_STEP_INCREMENT'                    BACnetConstructedDataDefaultStepIncrement
+        [*, 'DEFAULT_STEP_INCREMENT', '4'               BACnetConstructedDataDefaultStepIncrement
             [simple   BACnetApplicationTagReal                                          defaultStepIncrement            ]
         ]
-        [*, 'DEFAULT_SUBORDINATE_RELATIONSHIP'          BACnetConstructedDataDefaultSubordinateRelationship
+        [*, 'DEFAULT_SUBORDINATE_RELATIONSHIP', '9'     BACnetConstructedDataDefaultSubordinateRelationship
             [simple   BACnetRelationshipTagged('0', 'TagClass.APPLICATION_TAGS') defaultSubordinateRelationship         ]
         ]
-        [*, 'DEFAULT_TIMEOUT'                           BACnetConstructedDataDefaultTimeout
+        [*, 'DEFAULT_TIMEOUT', '2'                      BACnetConstructedDataDefaultTimeout
             [simple   BACnetApplicationTagUnsignedInteger                     defaultTimeout                            ]
         ]
-        [*, 'DEPLOYED_PROFILE_LOCATION'                 BACnetConstructedDataDeployedProfileLocation
+        [*, 'DEPLOYED_PROFILE_LOCATION', '7'            BACnetConstructedDataDeployedProfileLocation
            [simple   BACnetApplicationTagCharacterString deployedProfileLocation                                        ]
         ]
-        [*, 'DERIVATIVE_CONSTANT'                       BACnetConstructedDataDerivativeConstant
+        [*, 'DERIVATIVE_CONSTANT', '4'                  BACnetConstructedDataDerivativeConstant
             [simple   BACnetApplicationTagReal                                          derivativeConstant              ]
         ]
-        [*, 'DERIVATIVE_CONSTANT_UNITS'                 BACnetConstructedDataDerivativeConstantUnits
+        [*, 'DERIVATIVE_CONSTANT_UNITS', '9'            BACnetConstructedDataDerivativeConstantUnits
             [simple   BACnetEngineeringUnitsTagged('0', 'TagClass.APPLICATION_TAGS')                    units           ]
         ]
-        [*, 'DESCRIPTION'                               BACnetConstructedDataDescription
+        [*, 'DESCRIPTION', '7'                          BACnetConstructedDataDescription
             [simple   BACnetApplicationTagCharacterString                               description                     ]
         ]
-        [*, 'DESCRIPTION_OF_HALT'                     BACnetConstructedDataDescriptionOfHalt
+        [*, 'DESCRIPTION_OF_HALT', '7'                  BACnetConstructedDataDescriptionOfHalt
             [simple   BACnetApplicationTagCharacterString   descriptionForHalt                                          ]
         ]
-        [*, 'DEVICE_ADDRESS_BINDING'                  BACnetConstructedDataDeviceAddressBinding
+        [*, 'DEVICE_ADDRESS_BINDING'                    BACnetConstructedDataDeviceAddressBinding
             [array    BACnetAddressBinding
                                 deviceAddressBinding
                                         terminated
                                         'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, tagNumber)']
         ]
-        [*, 'DEVICE_TYPE'                             BACnetConstructedDataDeviceType
+        [*, 'DEVICE_TYPE', '7'                          BACnetConstructedDataDeviceType
             [simple   BACnetApplicationTagCharacterString                               deviceType                      ]
         ]
-        [*, 'DIRECT_READING'                          BACnetConstructedDataDirectReading
+        [*, 'DIRECT_READING', '4'                       BACnetConstructedDataDirectReading
             [simple   BACnetApplicationTagReal                                          directReading                   ]
         ]
-        [*, 'DISTRIBUTION_KEY_REVISION'               BACnetConstructedDataDistributionKeyRevision
+        [*, 'DISTRIBUTION_KEY_REVISION', '2'            BACnetConstructedDataDistributionKeyRevision
             [simple BACnetApplicationTagUnsignedInteger                       distributionKeyRevision                   ]
         ]
-        [*, 'DO_NOT_HIDE'                             BACnetConstructedDataDoNotHide
+        [*, 'DO_NOT_HIDE', '1'                          BACnetConstructedDataDoNotHide
             [simple   BACnetApplicationTagBoolean                                       doNotHide                       ]
         ]
-        [*, 'DOOR_ALARM_STATE'                        BACnetConstructedDataDoorAlarmState
+        [*, 'DOOR_ALARM_STATE', '9'                     BACnetConstructedDataDoorAlarmState
             [simple BACnetDoorAlarmStateTagged('0', 'TagClass.APPLICATION_TAGS')
                             doorAlarmState  ]
         ]
-        [*, 'DOOR_EXTENDED_PULSE_TIME'                BACnetConstructedDataDoorExtendedPulseTime
+        [*, 'DOOR_EXTENDED_PULSE_TIME', '2'             BACnetConstructedDataDoorExtendedPulseTime
             [simple BACnetApplicationTagUnsignedInteger                     doorExtendedPulseTime                       ]
         ]
-        [*, 'DOOR_MEMBERS'                            BACnetConstructedDataDoorMembers
+        [*, 'DOOR_MEMBERS'                              BACnetConstructedDataDoorMembers
             [array    BACnetDeviceObjectReference
                         doorMembers
                             terminated
                             'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, tagNumber)'            ]
         ]
-        [*, 'DOOR_OPEN_TOO_LONG_TIME'                 BACnetConstructedDataDoorOpenTooLongTime
+        [*, 'DOOR_OPEN_TOO_LONG_TIME', '2'              BACnetConstructedDataDoorOpenTooLongTime
             [simple BACnetApplicationTagUnsignedInteger                     doorOpenTooLongTime                         ]
         ]
-        [*, 'DOOR_PULSE_TIME'                         BACnetConstructedDataDoorPulseTime
+        [*, 'DOOR_PULSE_TIME', '2'                      BACnetConstructedDataDoorPulseTime
             [simple BACnetApplicationTagUnsignedInteger                     doorPulseTime                               ]
         ]
-        [*, 'DOOR_STATUS'                             BACnetConstructedDataDoorStatus
+        [*, 'DOOR_STATUS', '9'                          BACnetConstructedDataDoorStatus
             [simple   BACnetDoorStatusTagged('0', 'TagClass.APPLICATION_TAGS')
                                             doorStatus                      ]
         ]
-        [*, 'DOOR_UNLOCK_DELAY_TIME'                  BACnetConstructedDataDoorUnlockDelayTime
+        [*, 'DOOR_UNLOCK_DELAY_TIME', '2'               BACnetConstructedDataDoorUnlockDelayTime
             [simple   BACnetApplicationTagUnsignedInteger                     doorUnlockDelayTime                       ]
         ]
-        [*, 'DUTY_WINDOW'                             BACnetConstructedDataDutyWindow
+        [*, 'DUTY_WINDOW', '2'                          BACnetConstructedDataDutyWindow
             [simple   BACnetApplicationTagUnsignedInteger                     dutyWindow                                ]
         ]
-        [*, 'EFFECTIVE_PERIOD'                        BACnetConstructedDataEffectivePeriod
+        [*, 'EFFECTIVE_PERIOD'                          BACnetConstructedDataEffectivePeriod
             [simple   BACnetDateRange               dateRange   ]
         ]
-        [*, 'EGRESS_ACTIVE'                           BACnetConstructedDataEgressActive
+        [*, 'EGRESS_ACTIVE', '1'                        BACnetConstructedDataEgressActive
             [simple   BACnetApplicationTagBoolean                               egressActive                            ]
         ]
-        [*, 'EGRESS_TIME'                             BACnetConstructedDataEgressTime
+        [*, 'EGRESS_TIME', '2'                          BACnetConstructedDataEgressTime
             [simple   BACnetApplicationTagUnsignedInteger                     egressTime                                ]
         ]
-        [*, 'ELAPSED_ACTIVE_TIME'                     BACnetConstructedDataElapsedActiveTime
+        [*, 'ELAPSED_ACTIVE_TIME', '2'                  BACnetConstructedDataElapsedActiveTime
             [simple   BACnetApplicationTagUnsignedInteger                     elapsedActiveTime                         ]
         ]
-        [*, 'ELEVATOR_GROUP'                          BACnetConstructedDataElevatorGroup
+        [*, 'ELEVATOR_GROUP', '12'                      BACnetConstructedDataElevatorGroup
             [simple   BACnetApplicationTagObjectIdentifier                    elevatorGroup                             ]
         ]
-        [*, 'ENABLE'                                  BACnetConstructedDataEnable
+        [*, 'ENABLE', '1'                               BACnetConstructedDataEnable
             [simple   BACnetApplicationTagBoolean                               enable                                  ]
         ]
-        [*, 'ENERGY_METER'                            BACnetConstructedDataEnergyMeter
+        [*, 'ENERGY_METER', '4'                         BACnetConstructedDataEnergyMeter
             [simple   BACnetApplicationTagReal                                          energyMeter                     ]
         ]
-        [*, 'ENERGY_METER_REF'                        BACnetConstructedDataEnergyMeterRef
+        [*, 'ENERGY_METER_REF'                          BACnetConstructedDataEnergyMeterRef
             [simple   BACnetDeviceObjectReference                                       energyMeterRef                  ]
         ]
-        [*, 'ENTRY_POINTS'                            BACnetConstructedDataEntryPoints
+        [*, 'ENTRY_POINTS'                              BACnetConstructedDataEntryPoints
             [array    BACnetDeviceObjectReference
                                 entryPoints
                                         terminated
                                         'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, tagNumber)']
         ]
-        [*, 'ERROR_LIMIT'                             BACnetConstructedDataErrorLimit
+        [*, 'ERROR_LIMIT', '4'                          BACnetConstructedDataErrorLimit
             [simple   BACnetApplicationTagReal                                          errorLimit                      ]
         ]
-        [*, 'ESCALATOR_MODE'                          BACnetConstructedDataEscalatorMode
+        [*, 'ESCALATOR_MODE', '9'                       BACnetConstructedDataEscalatorMode
             [simple   BACnetEscalatorModeTagged('0', 'TagClass.APPLICATION_TAGS')       escalatorMode                   ]
         ]
-        [*, 'EVENT_ALGORITHM_INHIBIT'                 BACnetConstructedDataEventAlgorithmInhibit
+        [*, 'EVENT_ALGORITHM_INHIBIT', '1'              BACnetConstructedDataEventAlgorithmInhibit
             [simple   BACnetApplicationTagBoolean                                       eventAlgorithmInhibit           ]
         ]
-        [*, 'EVENT_ALGORITHM_INHIBIT_REF'             BACnetConstructedDataEventAlgorithmInhibitRef
+        [*, 'EVENT_ALGORITHM_INHIBIT_REF'               BACnetConstructedDataEventAlgorithmInhibitRef
             [simple   BACnetObjectPropertyReference                                     eventAlgorithmInhibitRef        ]
         ]
-        [*, 'EVENT_DETECTION_ENABLE'                  BACnetConstructedDataEventDetectionEnable
+        [*, 'EVENT_DETECTION_ENABLE', '1'               BACnetConstructedDataEventDetectionEnable
             [simple   BACnetApplicationTagBoolean                                       eventDetectionEnable            ]
         ]
-        [*, 'EVENT_ENABLE'                            BACnetConstructedDataEventEnable
+        [*, 'EVENT_ENABLE', '8'                         BACnetConstructedDataEventEnable
             [simple   BACnetEventTransitionBitsTagged('0', 'TagClass.APPLICATION_TAGS') eventEnable                     ]
         ]
-        [*, 'EVENT_MESSAGE_TEXTS'                     BACnetConstructedDataEventMessageTexts
+        [*, 'EVENT_MESSAGE_TEXTS'                       BACnetConstructedDataEventMessageTexts
             [simple   BACnetEventMessageTexts               eventMessageTexts                                           ]
         ]
-        [*, 'EVENT_MESSAGE_TEXTS_CONFIG'              BACnetConstructedDataEventMessageTextsConfig
+        [*, 'EVENT_MESSAGE_TEXTS_CONFIG'                BACnetConstructedDataEventMessageTextsConfig
             [simple   BACnetEventMessageTextsConfig          eventStateConfig                                           ]
         ]
-        [*, 'EVENT_PARAMETERS'                        BACnetConstructedDataEventParameters
+        [*, 'EVENT_PARAMETERS'                          BACnetConstructedDataEventParameters
             [simple   BACnetEventParameter                  eventParameter                                              ]
         ]
-        [*, 'EVENT_STATE'                             BACnetConstructedDataEventState
+        [*, 'EVENT_STATE', '9'                          BACnetConstructedDataEventState
             [simple   BACnetEventStateTagged('0', 'TagClass.APPLICATION_TAGS')          eventState                      ]
         ]
-        [*, 'EVENT_TIME_STAMPS'                       BACnetConstructedDataEventTimeStamps
+        [*, 'EVENT_TIME_STAMPS'                         BACnetConstructedDataEventTimeStamps
             [simple  BACnetEventTimestamps                        eventTimeStamps                                       ]
         ]
-        [*, 'EVENT_TYPE'                              BACnetConstructedDataEventType
+        [*, 'EVENT_TYPE', '9'                           BACnetConstructedDataEventType
             [simple  BACnetEventTypeTagged('0', 'TagClass.APPLICATION_TAGS')        eventType                           ]
         ]
-        [*, 'EXCEPTION_SCHEDULE'                      BACnetConstructedDataExceptionSchedule
+        [*, 'EXCEPTION_SCHEDULE'                        BACnetConstructedDataExceptionSchedule
             [array    BACnetSpecialEvent
                             exceptionSchedule
                                 terminated
                                 'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, tagNumber)'        ]
         ]
-        [*, 'EXECUTION_DELAY'                         BACnetConstructedDataExecutionDelay
+        [*, 'EXECUTION_DELAY', '2'                      BACnetConstructedDataExecutionDelay
             [array    BACnetApplicationTagUnsignedInteger
                                         executionDelay
                                                 terminated
                                                 'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, tagNumber)'    ]
         ]
-        [*, 'EXIT_POINTS'                             BACnetConstructedDataExitPoints
+        [*, 'EXIT_POINTS'                               BACnetConstructedDataExitPoints
             [array    BACnetDeviceObjectReference
                         exitPoints
                             terminated
                             'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, tagNumber)'            ]
         ]
-        [*, 'EXPECTED_SHED_LEVEL'                     BACnetConstructedDataExpectedShedLevel
+        [*, 'EXPECTED_SHED_LEVEL'                       BACnetConstructedDataExpectedShedLevel
             [simple  BACnetShedLevel            expectedShedLevel                                                       ]
         ]
-        [*, 'EXPIRATION_TIME'                         BACnetConstructedDataExpirationTime
+        [*, 'EXPIRATION_TIME'                           BACnetConstructedDataExpirationTime
             [simple   BACnetDateTime            expirationTime                                                          ]
         ]
-        [*, 'EXTENDED_TIME_ENABLE'                    BACnetConstructedDataExtendedTimeEnable
+        [*, 'EXTENDED_TIME_ENABLE', '1'                 BACnetConstructedDataExtendedTimeEnable
             [simple   BACnetApplicationTagBoolean                               extendedTimeEnable                      ]
         ]
-        [*, 'FAILED_ATTEMPT_EVENTS'                   BACnetConstructedDataFailedAttemptEvents
+        [*, 'FAILED_ATTEMPT_EVENTS'                     BACnetConstructedDataFailedAttemptEvents
             [array    BACnetAccessEventTagged('0', 'TagClass.APPLICATION_TAGS')
                                         failedAttemptEvents
                                             terminated
                                             'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, tagNumber)']
         ]
-        [*, 'FAILED_ATTEMPTS'                           BACnetConstructedDataFailedAttempts
+        [*, 'FAILED_ATTEMPTS', '2'                      BACnetConstructedDataFailedAttempts
             [simple   BACnetApplicationTagUnsignedInteger                               failedAttempts                  ]
         ]
-        [*, 'FAILED_ATTEMPTS_TIME'                      BACnetConstructedDataFailedAttemptsTime
+        [*, 'FAILED_ATTEMPTS_TIME', '2'                 BACnetConstructedDataFailedAttemptsTime
             [simple   BACnetApplicationTagUnsignedInteger                               failedAttemptsTime              ]
         ]
-        ['ACCUMULATOR', 'FAULT_HIGH_LIMIT'             BACnetConstructedDataAccumulatorFaultHighLimit
+        ['ACCUMULATOR', 'FAULT_HIGH_LIMIT', '2'         BACnetConstructedDataAccumulatorFaultHighLimit
             [simple   BACnetApplicationTagUnsignedInteger                               faultHighLimit                  ]
         ]
-        ['ANALOG_INPUT', 'FAULT_HIGH_LIMIT'             BACnetConstructedDataAnalogInputFaultHighLimit
+        ['ANALOG_INPUT', 'FAULT_HIGH_LIMIT', '4'        BACnetConstructedDataAnalogInputFaultHighLimit
             [simple   BACnetApplicationTagReal                                          faultHighLimit                  ]
         ]
-        ['ANALOG_VALUE', 'FAULT_HIGH_LIMIT'             BACnetConstructedDataAnalogValueFaultHighLimit
+        ['ANALOG_VALUE', 'FAULT_HIGH_LIMIT', '4'        BACnetConstructedDataAnalogValueFaultHighLimit
             [simple   BACnetApplicationTagReal                                          faultHighLimit                  ]
         ]
-        ['INTEGER_VALUE', 'FAULT_HIGH_LIMIT'            BACnetConstructedDataIntegerValueFaultHighLimit
+        ['INTEGER_VALUE', 'FAULT_HIGH_LIMIT', '3'       BACnetConstructedDataIntegerValueFaultHighLimit
             [simple   BACnetApplicationTagSignedInteger                                 faultHighLimit                  ]
         ]
-        ['LARGE_ANALOG_VALUE', 'FAULT_HIGH_LIMIT'       BACnetConstructedDataLargeAnalogValueFaultHighLimit
+        ['LARGE_ANALOG_VALUE', 'FAULT_HIGH_LIMIT', '5'  BACnetConstructedDataLargeAnalogValueFaultHighLimit
             [simple   BACnetApplicationTagDouble                                        faultHighLimit                  ]
         ]
-        ['POSITIVE_INTEGER_VALUE', 'FAULT_HIGH_LIMIT'   BACnetConstructedDataPositiveIntegerValueFaultHighLimit
+        ['POSITIVE_INTEGER_VALUE', 'FAULT_HIGH_LIMIT', '2'   BACnetConstructedDataPositiveIntegerValueFaultHighLimit
             [simple   BACnetApplicationTagUnsignedInteger                               faultHighLimit                  ]
         ]
-        [*, 'FAULT_HIGH_LIMIT'                          BACnetConstructedDataFaultHighLimit
+        [*, 'FAULT_HIGH_LIMIT', '2'                     BACnetConstructedDataFaultHighLimit
             [simple   BACnetApplicationTagUnsignedInteger                               faultHighLimit                  ]
         ]
-        ['ACCUMULATOR', 'FAULT_LOW_LIMIT'              BACnetConstructedDataAccumulatorFaultLowLimit
+        ['ACCUMULATOR', 'FAULT_LOW_LIMIT', '2'          BACnetConstructedDataAccumulatorFaultLowLimit
             [simple   BACnetApplicationTagUnsignedInteger                               faultLowLimit                   ]
         ]
-        ['ANALOG_INPUT', 'FAULT_LOW_LIMIT'              BACnetConstructedDataAnalogInputFaultLowLimit
+        ['ANALOG_INPUT', 'FAULT_LOW_LIMIT', '4'         BACnetConstructedDataAnalogInputFaultLowLimit
             [simple   BACnetApplicationTagReal                                          faultLowLimit                   ]
         ]
-        ['ANALOG_VALUE', 'FAULT_LOW_LIMIT'              BACnetConstructedDataAnalogValueFaultLowLimit
+        ['ANALOG_VALUE', 'FAULT_LOW_LIMIT', '4'         BACnetConstructedDataAnalogValueFaultLowLimit
             [simple   BACnetApplicationTagReal                                          faultLowLimit                   ]
         ]
-        ['LARGE_ANALOG_VALUE', 'FAULT_LOW_LIMIT'        BACnetConstructedDataLargeAnalogValueFaultLowLimit
+        ['LARGE_ANALOG_VALUE', 'FAULT_LOW_LIMIT', '5'   BACnetConstructedDataLargeAnalogValueFaultLowLimit
             [simple   BACnetApplicationTagDouble                                        faultLowLimit                   ]
         ]
-        ['INTEGER_VALUE', 'FAULT_LOW_LIMIT'             BACnetConstructedDataIntegerValueFaultLowLimit
+        ['INTEGER_VALUE', 'FAULT_LOW_LIMIT', '3'        BACnetConstructedDataIntegerValueFaultLowLimit
             [simple   BACnetApplicationTagSignedInteger                                 faultLowLimit                   ]
         ]
-        ['POSITIVE_INTEGER_VALUE', 'FAULT_LOW_LIMIT'    BACnetConstructedDataPositiveIntegerValueFaultLowLimit
+        ['POSITIVE_INTEGER_VALUE', 'FAULT_LOW_LIMIT', '2'    BACnetConstructedDataPositiveIntegerValueFaultLowLimit
             [simple   BACnetApplicationTagUnsignedInteger                               faultLowLimit                   ]
         ]
-        [*, 'FAULT_LOW_LIMIT'                           BACnetConstructedDataFaultLowLimit
+        [*, 'FAULT_LOW_LIMIT', '4'                      BACnetConstructedDataFaultLowLimit
             [simple   BACnetApplicationTagReal                                          faultLowLimit                   ]
         ]
         [*, 'FAULT_PARAMETERS'                          BACnetConstructedDataFaultParameters
@@ -3220,7 +3220,7 @@
                                         terminated
                                         'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, tagNumber)']
         ]
-        [*, 'FAULT_TYPE'                                BACnetConstructedDataFaultType
+        [*, 'FAULT_TYPE', '9'                           BACnetConstructedDataFaultType
             [simple   BACnetFaultTypeTagged('0', 'TagClass.APPLICATION_TAGS')           faultType                       ]
         ]
         ['ACCESS_DOOR', 'FAULT_VALUES'        BACnetConstructedDataAccessDoorFaultValues
@@ -3247,13 +3247,13 @@
                                 terminated
                                 'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, tagNumber)']
         ]
-        ['MULTI_STATE_INPUT', 'FAULT_VALUES'             BACnetConstructedDataMultiStateInputFaultValues
+        ['MULTI_STATE_INPUT', 'FAULT_VALUES', '2'       BACnetConstructedDataMultiStateInputFaultValues
             [array    BACnetApplicationTagUnsignedInteger
                             faultValues
                                 terminated
                                 'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, tagNumber)']
         ]
-        ['MULTI_STATE_VALUE', 'FAULT_VALUES'             BACnetConstructedDataMultiStateValueFaultValues
+        ['MULTI_STATE_VALUE', 'FAULT_VALUES', '2'       BACnetConstructedDataMultiStateValueFaultValues
             [array    BACnetApplicationTagUnsignedInteger
                             faultValues
                                 terminated
@@ -3268,51 +3268,51 @@
         [*, 'FD_BBMD_ADDRESS'                           BACnetConstructedDataFDBBMDAddress
             [simple   BACnetHostNPort          fDBBMDAddress]
         ]
-        [*, 'FD_SUBSCRIPTION_LIFETIME'                  BACnetConstructedDataFDSubscriptionLifetime
+        [*, 'FD_SUBSCRIPTION_LIFETIME', '2'             BACnetConstructedDataFDSubscriptionLifetime
             [simple   BACnetApplicationTagUnsignedInteger                               fdSubscriptionLifetime          ]
         ]
-        ['BINARY_LIGHTING_OUTPUT', 'FEEDBACK_VALUE'     BACnetConstructedDataBinaryLightingOutputFeedbackValue
+        ['BINARY_LIGHTING_OUTPUT', 'FEEDBACK_VALUE', '9'    BACnetConstructedDataBinaryLightingOutputFeedbackValue
             [simple   BACnetBinaryLightingPVTagged('0', 'TagClass.APPLICATION_TAGS')    feedbackValue                   ]
         ]
-        ['BINARY_OUTPUT', 'FEEDBACK_VALUE'              BACnetConstructedDataBinaryOutputFeedbackValue
+        ['BINARY_OUTPUT', 'FEEDBACK_VALUE', '9'         BACnetConstructedDataBinaryOutputFeedbackValue
             [simple   BACnetBinaryPVTagged('0', 'TagClass.APPLICATION_TAGS')    feedbackValue                           ]
         ]
-        ['LIGHTING_OUTPUT', 'FEEDBACK_VALUE'            BACnetConstructedDataLightingOutputFeedbackValue
+        ['LIGHTING_OUTPUT', 'FEEDBACK_VALUE', '4'       BACnetConstructedDataLightingOutputFeedbackValue
             [simple  BACnetApplicationTagReal                                  feedbackValue                            ]
         ]
-        ['MULTI_STATE_OUTPUT', 'FEEDBACK_VALUE'         BACnetConstructedDataMultiStateOutputFeedbackValue
+        ['MULTI_STATE_OUTPUT', 'FEEDBACK_VALUE', '2'    BACnetConstructedDataMultiStateOutputFeedbackValue
             [simple  BACnetApplicationTagUnsignedInteger                       feedbackValue                            ]
         ]
         // TODO: similar to ALARM_VALUE either we catch it or we just exlude
         //[*, 'FEEDBACK_VALUE'                          BACnetConstructedDataFeedbackValue [validation    '1 == 2'    "TODO: implement me FEEDBACK_VALUE BACnetConstructedDataFeedbackValue"]]
-        [*, 'FILE_ACCESS_METHOD'                      BACnetConstructedDataFileAccessMethod
+        [*, 'FILE_ACCESS_METHOD', '9'                   BACnetConstructedDataFileAccessMethod
             [simple   BACnetFileAccessMethodTagged('0', 'TagClass.APPLICATION_TAGS')     fileAccessMethod               ]
         ]
-        [*, 'FILE_SIZE'                                 BACnetConstructedDataFileSize
+        [*, 'FILE_SIZE', '2'                            BACnetConstructedDataFileSize
             [simple   BACnetApplicationTagUnsignedInteger                                fileSize                       ]
         ]
-        [*, 'FILE_TYPE'                                 BACnetConstructedDataFileType
+        [*, 'FILE_TYPE', '7'                            BACnetConstructedDataFileType
             [simple   BACnetApplicationTagCharacterString                                   fileType                    ]
         ]
-        [*, 'FIRMWARE_REVISION'                         BACnetConstructedDataFirmwareRevision
+        [*, 'FIRMWARE_REVISION', '7'                    BACnetConstructedDataFirmwareRevision
            [simple   BACnetApplicationTagCharacterString    firmwareRevision                                            ]
         ]
-        [*, 'FLOOR_TEXT'                                BACnetConstructedDataFloorText
+        [*, 'FLOOR_TEXT', '7'                           BACnetConstructedDataFloorText
             [array    BACnetApplicationTagCharacterString
                             floorText
                                     terminated
                                     'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, tagNumber)'    ]
         ]
-        [*, 'FULL_DUTY_BASELINE'                        BACnetConstructedDataFullDutyBaseline
+        [*, 'FULL_DUTY_BASELINE', '4'                   BACnetConstructedDataFullDutyBaseline
             [simple   BACnetApplicationTagReal                                          fullDutyBaseLine                ]
         ]
-        [*, 'GLOBAL_IDENTIFIER'                         BACnetConstructedDataGlobalIdentifier
+        [*, 'GLOBAL_IDENTIFIER', '2'                    BACnetConstructedDataGlobalIdentifier
             [simple   BACnetApplicationTagUnsignedInteger                           globalIdentifier                    ]
         ]
-        [*, 'GROUP_ID'                                  BACnetConstructedDataGroupID
+        [*, 'GROUP_ID', '2'                             BACnetConstructedDataGroupID
             [simple   BACnetApplicationTagUnsignedInteger                           groupId                             ]
         ]
-        [*, 'GROUP_MEMBER_NAMES'                        BACnetConstructedDataGroupMemberNames
+        [*, 'GROUP_MEMBER_NAMES', '7'                   BACnetConstructedDataGroupMemberNames
             [array    BACnetApplicationTagCharacterString
                             groupMemberNames
                                     terminated
@@ -3324,67 +3324,67 @@
                                     terminated
                                     'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, tagNumber)'    ]
         ]
-        ['ELEVATOR_GROUP', 'GROUP_MEMBERS'              BACnetConstructedDataElevatorGroupGroupMembers
+        ['ELEVATOR_GROUP', 'GROUP_MEMBERS', '12'        BACnetConstructedDataElevatorGroupGroupMembers
             [array    BACnetApplicationTagObjectIdentifier
                             groupMembers
                                     terminated
                                     'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, tagNumber)'    ]
         ]
-        [*, 'GROUP_MEMBERS'                             BACnetConstructedDataGroupMembers
+        [*, 'GROUP_MEMBERS', '12'                       BACnetConstructedDataGroupMembers
             [array    BACnetApplicationTagObjectIdentifier
                             groupMembers
                                     terminated
                                     'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, tagNumber)'    ]
         ]
-        [*, 'GROUP_MODE'                              BACnetConstructedDataGroupMode
+        [*, 'GROUP_MODE', '9'                           BACnetConstructedDataGroupMode
             [simple   BACnetLiftGroupModeTagged('0', 'TagClass.APPLICATION_TAGS')       groupMode                       ]
         ]
-        ['ACCUMULATOR', 'HIGH_LIMIT'                    BACnetConstructedDataAccumulatorHighLimit
+        ['ACCUMULATOR', 'HIGH_LIMIT', '2'               BACnetConstructedDataAccumulatorHighLimit
             [simple   BACnetApplicationTagUnsignedInteger                               highLimit                       ]
         ]
-        ['LARGE_ANALOG_VALUE', 'HIGH_LIMIT'             BACnetConstructedDataLargeAnalogValueHighLimit
+        ['LARGE_ANALOG_VALUE', 'HIGH_LIMIT', '5'        BACnetConstructedDataLargeAnalogValueHighLimit
             [simple   BACnetApplicationTagDouble                                        highLimit                       ]
         ]
-        ['INTEGER_VALUE', 'HIGH_LIMIT'                  BACnetConstructedDataIntegerValueHighLimit
+        ['INTEGER_VALUE', 'HIGH_LIMIT', '3'             BACnetConstructedDataIntegerValueHighLimit
             [simple   BACnetApplicationTagSignedInteger                                 highLimit                       ]
         ]
-        ['POSITIVE_INTEGER_VALUE', 'HIGH_LIMIT'         BACnetConstructedDataPositiveIntegerValueHighLimit
+        ['POSITIVE_INTEGER_VALUE', 'HIGH_LIMIT', '2'    BACnetConstructedDataPositiveIntegerValueHighLimit
             [simple   BACnetApplicationTagUnsignedInteger                               highLimit                       ]
         ]
-        [*, 'HIGH_LIMIT'                                BACnetConstructedDataHighLimit
+        [*, 'HIGH_LIMIT', '4'                           BACnetConstructedDataHighLimit
             [simple   BACnetApplicationTagReal                                          highLimit                       ]
         ]
-        [*, 'HIGHER_DECK'                               BACnetConstructedDataHigherDeck
+        [*, 'HIGHER_DECK', '12'                         BACnetConstructedDataHigherDeck
             [simple   BACnetApplicationTagObjectIdentifier              higherDeck                                      ]
         ]
-        [*, 'IN_PROCESS'                                BACnetConstructedDataInProcess
+        [*, 'IN_PROCESS', '1'                           BACnetConstructedDataInProcess
             [simple   BACnetApplicationTagBoolean                               inProcess                               ]
         ]
-        [*, 'IN_PROGRESS'                               BACnetConstructedDataInProgress
+        [*, 'IN_PROGRESS', '9'                          BACnetConstructedDataInProgress
             [simple   BACnetLightingInProgressTagged('0', 'TagClass.APPLICATION_TAGS')         inProgress               ]
         ]
-        [*, 'INACTIVE_TEXT'                             BACnetConstructedDataInactiveText
+        [*, 'INACTIVE_TEXT', '7'                        BACnetConstructedDataInactiveText
             [simple   BACnetApplicationTagCharacterString                               inactiveText                    ]
         ]
-        [*, 'INITIAL_TIMEOUT'                           BACnetConstructedDataInitialTimeout
+        [*, 'INITIAL_TIMEOUT', '2'                      BACnetConstructedDataInitialTimeout
             [simple   BACnetApplicationTagUnsignedInteger                               initialTimeout                  ]
         ]
         [*, 'INPUT_REFERENCE'                           BACnetConstructedDataInputReference
             [simple   BACnetObjectPropertyReference                                     inputReference                  ]
         ]
-        [*, 'INSTALLATION_ID'                           BACnetConstructedDataInstallationID
+        [*, 'INSTALLATION_ID', '2'                      BACnetConstructedDataInstallationID
             [simple   BACnetApplicationTagUnsignedInteger                               installationId                  ]
         ]
-        [*, 'INSTANCE_OF'                               BACnetConstructedDataInstanceOf
+        [*, 'INSTANCE_OF', '7'                          BACnetConstructedDataInstanceOf
             [simple   BACnetApplicationTagCharacterString                               instanceOf                      ]
         ]
-        [*, 'INSTANTANEOUS_POWER'                       BACnetConstructedDataInstantaneousPower
+        [*, 'INSTANTANEOUS_POWER', '4'                  BACnetConstructedDataInstantaneousPower
             [simple   BACnetApplicationTagReal                                          instantaneousPower              ]
         ]
-        [*, 'INTEGRAL_CONSTANT'                         BACnetConstructedDataIntegralConstant
+        [*, 'INTEGRAL_CONSTANT', '4'                    BACnetConstructedDataIntegralConstant
              [simple   BACnetApplicationTagReal                                integralConstant                         ]
         ]
-        [*, 'INTEGRAL_CONSTANT_UNITS'                   BACnetConstructedDataIntegralConstantUnits
+        [*, 'INTEGRAL_CONSTANT_UNITS', '9'              BACnetConstructedDataIntegralConstantUnits
             [simple   BACnetEngineeringUnitsTagged('0', 'TagClass.APPLICATION_TAGS')                    units           ]
         ]
         ['ANALOG_INPUT', 'INTERFACE_VALUE'              BACnetConstructedDataAnalogInputInterfaceValue
@@ -3407,67 +3407,67 @@
         ]
         // TODO: unlikely that we have a common type so maybe check that
         //[*, 'INTERFACE_VALUE'                         BACnetConstructedDataInterfaceValue [validation    '1 == 2'    "TODO: implement me INTERFACE_VALUE BACnetConstructedDataInterfaceValue"]]
-        [*, 'INTERVAL_OFFSET'                           BACnetConstructedDataIntervalOffset
+        [*, 'INTERVAL_OFFSET', '2'                      BACnetConstructedDataIntervalOffset
             [simple   BACnetApplicationTagUnsignedInteger                     intervalOffset                            ]
         ]
-        [*, 'IP_ADDRESS'                                BACnetConstructedDataIPAddress
+        [*, 'IP_ADDRESS', '6'                           BACnetConstructedDataIPAddress
             [simple   BACnetApplicationTagOctetString   ipAddress                                                       ]
         ]
-        [*, 'IP_DEFAULT_GATEWAY'                        BACnetConstructedDataIPDefaultGateway
+        [*, 'IP_DEFAULT_GATEWAY', '6'                   BACnetConstructedDataIPDefaultGateway
             [simple   BACnetApplicationTagOctetString   ipDefaultGateway                                                ]
         ]
-        [*, 'IP_DHCP_ENABLE'                            BACnetConstructedDataIPDHCPEnable
+        [*, 'IP_DHCP_ENABLE', '1'                       BACnetConstructedDataIPDHCPEnable
             [simple   BACnetApplicationTagBoolean       ipDhcpEnable                                                    ]
         ]
-        [*, 'IP_DHCP_LEASE_TIME'                        BACnetConstructedDataIPDHCPLeaseTime
+        [*, 'IP_DHCP_LEASE_TIME', '2'                   BACnetConstructedDataIPDHCPLeaseTime
             [simple BACnetApplicationTagUnsignedInteger                               ipDhcpLeaseTime                   ]
         ]
-        [*, 'IP_DHCP_LEASE_TIME_REMAINING'              BACnetConstructedDataIPDHCPLeaseTimeRemaining
+        [*, 'IP_DHCP_LEASE_TIME_REMAINING', '2'         BACnetConstructedDataIPDHCPLeaseTimeRemaining
             [simple BACnetApplicationTagUnsignedInteger                               ipDhcpLeaseTimeRemaining          ]
         ]
-        [*, 'IP_DHCP_SERVER'                            BACnetConstructedDataIPDHCPServer
+        [*, 'IP_DHCP_SERVER', '6'                       BACnetConstructedDataIPDHCPServer
             [simple   BACnetApplicationTagOctetString   dhcpServer                                                      ]
         ]
-        [*, 'IP_DNS_SERVER'                             BACnetConstructedDataIPDNSServer
+        [*, 'IP_DNS_SERVER', '6'                        BACnetConstructedDataIPDNSServer
             [array    BACnetApplicationTagOctetString
                                         ipDnsServer
                                                 terminated
                                                 'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, tagNumber)'            ]
         ]
-        [*, 'IP_SUBNET_MASK'                            BACnetConstructedDataIPSubnetMask
+        [*, 'IP_SUBNET_MASK', '6'                       BACnetConstructedDataIPSubnetMask
             [simple   BACnetApplicationTagOctetString   ipSubnetMask                                                    ]
         ]
-        [*, 'IPV6_ADDRESS'                              BACnetConstructedDataIPv6Address
+        [*, 'IPV6_ADDRESS', '6'                         BACnetConstructedDataIPv6Address
             [simple   BACnetApplicationTagOctetString   ipv6Address                                                     ]
         ]
-        [*, 'IPV6_AUTO_ADDRESSING_ENABLE'               BACnetConstructedDataIPv6AutoAddressingEnable
+        [*, 'IPV6_AUTO_ADDRESSING_ENABLE', '1'          BACnetConstructedDataIPv6AutoAddressingEnable
             [simple   BACnetApplicationTagBoolean                                       autoAddressingEnable            ]
         ]
-        [*, 'IPV6_DEFAULT_GATEWAY'                      BACnetConstructedDataIPv6DefaultGateway
+        [*, 'IPV6_DEFAULT_GATEWAY', '6'                 BACnetConstructedDataIPv6DefaultGateway
             [simple   BACnetApplicationTagOctetString   ipv6DefaultGateway                                              ]
         ]
-        [*, 'IPV6_DHCP_LEASE_TIME'                      BACnetConstructedDataIPv6DHCPLeaseTime
+        [*, 'IPV6_DHCP_LEASE_TIME', '2'                 BACnetConstructedDataIPv6DHCPLeaseTime
             [simple   BACnetApplicationTagUnsignedInteger                               ipv6DhcpLeaseTime               ]
         ]
-        [*, 'IPV6_DHCP_LEASE_TIME_REMAINING'            BACnetConstructedDataIPv6DHCPLeaseTimeRemaining
+        [*, 'IPV6_DHCP_LEASE_TIME_REMAINING', '2'       BACnetConstructedDataIPv6DHCPLeaseTimeRemaining
             [simple   BACnetApplicationTagUnsignedInteger                               ipv6DhcpLeaseTimeRemaining      ]
         ]
-        [*, 'IPV6_DHCP_SERVER'                          BACnetConstructedDataIPv6DHCPServer
+        [*, 'IPV6_DHCP_SERVER', '6'                     BACnetConstructedDataIPv6DHCPServer
             [simple   BACnetApplicationTagOctetString   dhcpServer                                                      ]
         ]
-        [*, 'IPV6_DNS_SERVER'                           BACnetConstructedDataIPv6DNSServer
+        [*, 'IPV6_DNS_SERVER', '6'                      BACnetConstructedDataIPv6DNSServer
             [array    BACnetApplicationTagOctetString
                                         ipv6DnsServer
                                                 terminated
                                                 'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, tagNumber)'            ]
         ]
-        [*, 'IPV6_PREFIX_LENGTH'                        BACnetConstructedDataIPv6PrefixLength
+        [*, 'IPV6_PREFIX_LENGTH', '2'                   BACnetConstructedDataIPv6PrefixLength
             [simple   BACnetApplicationTagUnsignedInteger                               ipv6PrefixLength                ]
         ]
-        [*, 'IPV6_ZONE_INDEX'                           BACnetConstructedDataIPv6ZoneIndex
+        [*, 'IPV6_ZONE_INDEX', '7'                      BACnetConstructedDataIPv6ZoneIndex
             [simple   BACnetApplicationTagCharacterString ipv6ZoneIndex                                                 ]
         ]
-        [*, 'IS_UTC'                                    BACnetConstructedDataIsUTC
+        [*, 'IS_UTC', '1'                               BACnetConstructedDataIsUTC
             [simple   BACnetApplicationTagBoolean                                       isUtc                           ]
         ]
         [*, 'KEY_SETS'                                  BACnetConstructedDataKeySets
@@ -3493,7 +3493,7 @@
                                         terminated
                                         'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, tagNumber)']
         ]
-        [*, 'LAST_ACCESS_EVENT'                         BACnetConstructedDataLastAccessEvent
+        [*, 'LAST_ACCESS_EVENT', '9'                    BACnetConstructedDataLastAccessEvent
             [simple   BACnetAccessEventTagged('0', 'TagClass.APPLICATION_TAGS')   lastAccessEvent                       ]
         ]
         [*, 'LAST_ACCESS_POINT'                         BACnetConstructedDataLastAccessPoint
@@ -3517,25 +3517,25 @@
         [*, 'LAST_KEY_SERVER'                           BACnetConstructedDataLastKeyServer
             [simple   BACnetAddressBinding              lastKeyServer                                                   ]
         ]
-        [*, 'LAST_NOTIFY_RECORD'                        BACnetConstructedDataLastNotifyRecord
+        [*, 'LAST_NOTIFY_RECORD', '2'                   BACnetConstructedDataLastNotifyRecord
             [simple   BACnetApplicationTagUnsignedInteger                               lastNotifyRecord                ]
         ]
-        [*, 'LAST_PRIORITY'                             BACnetConstructedDataLastPriority
+        [*, 'LAST_PRIORITY', '2'                        BACnetConstructedDataLastPriority
             [simple   BACnetApplicationTagUnsignedInteger                               lastPriority                    ]
         ]
-        [*, 'LAST_RESTART_REASON'                       BACnetConstructedDataLastRestartReason
+        [*, 'LAST_RESTART_REASON', '9'                  BACnetConstructedDataLastRestartReason
             [simple   BACnetRestartReasonTagged('0', 'TagClass.APPLICATION_TAGS')   lastRestartReason                   ]
         ]
         [*, 'LAST_RESTORE_TIME'                         BACnetConstructedDataLastRestoreTime
             [simple   BACnetTimeStamp                                                     lastRestoreTime               ]
         ]
-        [*, 'LAST_STATE_CHANGE'                         BACnetConstructedDataLastStateChange
+        [*, 'LAST_STATE_CHANGE', '9'                    BACnetConstructedDataLastStateChange
             [simple   BACnetTimerTransitionTagged('0', 'TagClass.APPLICATION_TAGS')             lastStateChange         ]
         ]
         [*, 'LAST_USE_TIME'                             BACnetConstructedDataLastUseTime
             [simple   BACnetDateTime                                        lastUseTime                                 ]
         ]
-        [*, 'LIFE_SAFETY_ALARM_VALUES'                  BACnetConstructedDataLifeSafetyAlarmValues
+        [*, 'LIFE_SAFETY_ALARM_VALUES', '9'             BACnetConstructedDataLifeSafetyAlarmValues
             [array    BACnetLifeSafetyStateTagged('0', 'TagClass.APPLICATION_TAGS')
                             alarmValues              terminated
                                 'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, tagNumber)']
@@ -3543,22 +3543,22 @@
         [*, 'LIGHTING_COMMAND'                          BACnetConstructedDataLightingCommand
             [simple   BACnetLightingCommand     lightingCommand                                                         ]
         ]
-        [*, 'LIGHTING_COMMAND_DEFAULT_PRIORITY'         BACnetConstructedDataLightingCommandDefaultPriority
+        [*, 'LIGHTING_COMMAND_DEFAULT_PRIORITY', '2'    BACnetConstructedDataLightingCommandDefaultPriority
             [simple BACnetApplicationTagUnsignedInteger                       lightingCommandDefaultPriority            ]
         ]
-        [*, 'LIMIT_ENABLE'                              BACnetConstructedDataLimitEnable
+        [*, 'LIMIT_ENABLE','8'                          BACnetConstructedDataLimitEnable
             [simple   BACnetLimitEnableTagged('0', 'TagClass.APPLICATION_TAGS')         limitEnable                     ]
         ]
-        [*, 'LIMIT_MONITORING_INTERVAL'                 BACnetConstructedDataLimitMonitoringInterval
+        [*, 'LIMIT_MONITORING_INTERVAL', '2'            BACnetConstructedDataLimitMonitoringInterval
             [simple BACnetApplicationTagUnsignedInteger                       limitMonitoringInterval                   ]
         ]
-        [*, 'LINK_SPEED'                                BACnetConstructedDataLinkSpeed
+        [*, 'LINK_SPEED', '4'                           BACnetConstructedDataLinkSpeed
             [simple   BACnetApplicationTagReal                                          linkSpeed                       ]
         ]
-        [*, 'LINK_SPEED_AUTONEGOTIATE'                  BACnetConstructedDataLinkSpeedAutonegotiate
+        [*, 'LINK_SPEED_AUTONEGOTIATE', '1'             BACnetConstructedDataLinkSpeedAutonegotiate
             [simple   BACnetApplicationTagBoolean                                       linkSpeedAutonegotiate          ]
         ]
-        [*, 'LINK_SPEEDS'                               BACnetConstructedDataLinkSpeeds
+        [*, 'LINK_SPEEDS', '4'                          BACnetConstructedDataLinkSpeeds
             [array    BACnetApplicationTagReal
                                         linkSpeeds
                                                 terminated
@@ -3580,25 +3580,25 @@
                             references              terminated
                                 'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, tagNumber)']
         ]
-        [*, 'LOCAL_DATE'                                BACnetConstructedDataLocalDate
+        [*, 'LOCAL_DATE', '10'                          BACnetConstructedDataLocalDate
             [simple   BACnetApplicationTagDate          localDate                                                       ]
         ]
-        [*, 'LOCAL_FORWARDING_ONLY'                     BACnetConstructedDataLocalForwardingOnly
+        [*, 'LOCAL_FORWARDING_ONLY', '1'                BACnetConstructedDataLocalForwardingOnly
             [simple BACnetApplicationTagBoolean                               localForwardingOnly                       ]
         ]
-        [*, 'LOCAL_TIME'                                BACnetConstructedDataLocalTime
+        [*, 'LOCAL_TIME', '11'                          BACnetConstructedDataLocalTime
             [simple BACnetApplicationTagTime                                  localTime                                 ]
         ]
-        [*, 'LOCATION'                                  BACnetConstructedDataLocation
+        [*, 'LOCATION', '7'                             BACnetConstructedDataLocation
             [simple BACnetApplicationTagCharacterString     location                                                    ]
         ]
-        [*, 'LOCK_STATUS'                               BACnetConstructedDataLockStatus
+        [*, 'LOCK_STATUS', '9'                          BACnetConstructedDataLockStatus
             [simple   BACnetLockStatusTagged('0', 'TagClass.APPLICATION_TAGS')      lockStatus                          ]
         ]
-        [*, 'LOCKOUT'                                   BACnetConstructedDataLockout
+        [*, 'LOCKOUT', '1'                              BACnetConstructedDataLockout
             [simple BACnetApplicationTagBoolean                               lockout                                   ]
         ]
-        [*, 'LOCKOUT_RELINQUISH_TIME'                   BACnetConstructedDataLockoutRelinquishTime
+        [*, 'LOCKOUT_RELINQUISH_TIME', '2'              BACnetConstructedDataLockoutRelinquishTime
             [simple BACnetApplicationTagUnsignedInteger                       lockoutRelinquishTime                     ]
         ]
         ['EVENT_LOG', 'LOG_BUFFER'                      BACnetConstructedDataEventLogLogBuffer
@@ -3637,49 +3637,49 @@
         [*, 'LOG_DEVICE_OBJECT_PROPERTY'                BACnetConstructedDataLogDeviceObjectProperty
             [simple   BACnetDeviceObjectPropertyReference   logDeviceObjectProperty                                     ]
         ]
-        [*, 'LOG_INTERVAL'                              BACnetConstructedDataLogInterval
+        [*, 'LOG_INTERVAL', '2'                         BACnetConstructedDataLogInterval
             [simple   BACnetApplicationTagUnsignedInteger                               logInterval                     ]
         ]
-        [*, 'LOGGING_OBJECT'                            BACnetConstructedDataLoggingObject
+        [*, 'LOGGING_OBJECT', '12'                      BACnetConstructedDataLoggingObject
             [simple   BACnetApplicationTagObjectIdentifier                              loggingObject                   ]
         ]
         [*, 'LOGGING_RECORD'                            BACnetConstructedDataLoggingRecord
             [simple   BACnetAccumulatorRecord                                           loggingRecord                   ]
         ]
-        [*, 'LOGGING_TYPE'                              BACnetConstructedDataLoggingType
+        [*, 'LOGGING_TYPE', '9'                         BACnetConstructedDataLoggingType
             [simple   BACnetLoggingTypeTagged('0', 'TagClass.APPLICATION_TAGS')         loggingType                     ]
         ]
         [*, 'LOW_DIFF_LIMIT'                            BACnetConstructedDataLowDiffLimit
             [simple   BACnetOptionalREAL                            lowDiffLimit                                        ]
         ]
-        ['ACCUMULATOR', 'LOW_LIMIT'                     BACnetConstructedDataAccumulatorLowLimit
+        ['ACCUMULATOR', 'LOW_LIMIT', '2'                BACnetConstructedDataAccumulatorLowLimit
             [simple   BACnetApplicationTagUnsignedInteger                               lowLimit                        ]
         ]
-        ['LARGE_ANALOG_VALUE', 'LOW_LIMIT'              BACnetConstructedDataLargeAnalogValueLowLimit
+        ['LARGE_ANALOG_VALUE', 'LOW_LIMIT', '5'         BACnetConstructedDataLargeAnalogValueLowLimit
             [simple   BACnetApplicationTagDouble                                        lowLimit                        ]
         ]
-        ['INTEGER_VALUE', 'LOW_LIMIT'                   BACnetConstructedDataIntegerValueLowLimit
+        ['INTEGER_VALUE', 'LOW_LIMIT', '3'              BACnetConstructedDataIntegerValueLowLimit
             [simple   BACnetApplicationTagSignedInteger                                 lowLimit                        ]
         ]
-        ['POSITIVE_INTEGER_VALUE', 'LOW_LIMIT'          BACnetConstructedDataPositiveIntegerValueLowLimit
+        ['POSITIVE_INTEGER_VALUE', 'LOW_LIMIT', '2'     BACnetConstructedDataPositiveIntegerValueLowLimit
             [simple   BACnetApplicationTagUnsignedInteger                                 lowLimit                      ]
         ]
-        [*, 'LOW_LIMIT'                                 BACnetConstructedDataLowLimit
+        [*, 'LOW_LIMIT', '4'                            BACnetConstructedDataLowLimit
             [simple   BACnetApplicationTagReal                                          lowLimit                        ]
         ]
-        [*, 'LOWER_DECK'                                BACnetConstructedDataLowerDeck
+        [*, 'LOWER_DECK', '12'                          BACnetConstructedDataLowerDeck
             [simple   BACnetApplicationTagObjectIdentifier              lowerDeck                                       ]
         ]
-        [*, 'MAC_ADDRESS'                               BACnetConstructedDataMACAddress
+        [*, 'MAC_ADDRESS', '6'                          BACnetConstructedDataMACAddress
             [simple   BACnetApplicationTagOctetString   macAddress                                                      ]
         ]
-        [*, 'MACHINE_ROOM_ID'                           BACnetConstructedDataMachineRoomID
+        [*, 'MACHINE_ROOM_ID', '12'                     BACnetConstructedDataMachineRoomID
             [simple   BACnetApplicationTagObjectIdentifier          machineRoomId                                       ]
         ]
         ['LIFE_SAFETY_ZONE', 'MAINTENANCE_REQUIRED', '1' BACnetConstructedDataLifeSafetyZoneMaintenanceRequired
             [simple   BACnetApplicationTagBoolean                                   maintenanceRequired                 ]
         ]
-        [*, 'MAINTENANCE_REQUIRED'                      BACnetConstructedDataMaintenanceRequired
+        [*, 'MAINTENANCE_REQUIRED', '9'                 BACnetConstructedDataMaintenanceRequired
             [simple   BACnetMaintenanceTagged('0', 'TagClass.APPLICATION_TAGS')     maintenanceRequired                 ]
         ]
         [*, 'MAKING_CAR_CALL'                           BACnetConstructedDataMakingCarCall
@@ -3697,73 +3697,73 @@
                                         terminated
                                         'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, tagNumber)'            ]
         ]
-        [*, 'MASKED_ALARM_VALUES'                       BACnetConstructedDataMaskedAlarmValues
+        [*, 'MASKED_ALARM_VALUES', '9'                  BACnetConstructedDataMaskedAlarmValues
             [array    BACnetDoorAlarmStateTagged('0', 'TagClass.APPLICATION_TAGS')
                                 maskedAlarmValues
                                         terminated
                                         'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, tagNumber)'            ]
         ]
-        [*, 'MAX_ACTUAL_VALUE'                          BACnetConstructedDataMaxActualValue
+        [*, 'MAX_ACTUAL_VALUE', '4'                     BACnetConstructedDataMaxActualValue
             [simple   BACnetApplicationTagReal                                          maxActualValue                  ]
         ]
-        [*, 'MAX_APDU_LENGTH_ACCEPTED'                  BACnetConstructedDataMaxAPDULengthAccepted
+        [*, 'MAX_APDU_LENGTH_ACCEPTED', '2'             BACnetConstructedDataMaxAPDULengthAccepted
             [simple BACnetApplicationTagUnsignedInteger                     maxApduLengthAccepted                       ]
         ]
-        [*, 'MAX_FAILED_ATTEMPTS'                       BACnetConstructedDataMaxFailedAttempts
+        [*, 'MAX_FAILED_ATTEMPTS', '2'                  BACnetConstructedDataMaxFailedAttempts
             [simple BACnetApplicationTagUnsignedInteger                     maxFailedAttempts                           ]
         ]
-        ['DEVICE', 'MAX_INFO_FRAMES'                    BACnetConstructedDataDeviceMaxInfoFrames
+        ['DEVICE', 'MAX_INFO_FRAMES', '2'               BACnetConstructedDataDeviceMaxInfoFrames
             [simple BACnetApplicationTagUnsignedInteger                     maxInfoFrames                               ]
         ]
-        ['NETWORK_PORT', 'MAX_INFO_FRAMES'              BACnetConstructedDataNetworkPortMaxInfoFrames
+        ['NETWORK_PORT', 'MAX_INFO_FRAMES', '2'         BACnetConstructedDataNetworkPortMaxInfoFrames
             [simple BACnetApplicationTagUnsignedInteger                     maxInfoFrames                               ]
         ]
-        [*, 'MAX_INFO_FRAMES'                           BACnetConstructedDataMaxInfoFrames
+        [*, 'MAX_INFO_FRAMES', '2'                      BACnetConstructedDataMaxInfoFrames
             [simple BACnetApplicationTagUnsignedInteger                     maxInfoFrames                               ]
         ]
-        ['DEVICE', 'MAX_MASTER'                         BACnetConstructedDataDeviceMaxMaster
+        ['DEVICE', 'MAX_MASTER', '2'                    BACnetConstructedDataDeviceMaxMaster
             [simple BACnetApplicationTagUnsignedInteger                     maxMaster                                   ]
         ]
-        ['NETWORK_PORT', 'MAX_MASTER'                   BACnetConstructedDataNetworkPortMaxMaster
+        ['NETWORK_PORT', 'MAX_MASTER', '2'              BACnetConstructedDataNetworkPortMaxMaster
             [simple BACnetApplicationTagUnsignedInteger                     maxMaster                                   ]
         ]
-        [*, 'MAX_MASTER'                                BACnetConstructedDataMaxMaster
+        [*, 'MAX_MASTER', '2'                           BACnetConstructedDataMaxMaster
             [simple BACnetApplicationTagUnsignedInteger                     maxMaster                                   ]
         ]
-        ['ACCUMULATOR', 'MAX_PRES_VALUE'                BACnetConstructedDataAccumulatorMaxPresValue
+        ['ACCUMULATOR', 'MAX_PRES_VALUE', '2'           BACnetConstructedDataAccumulatorMaxPresValue
             [simple BACnetApplicationTagUnsignedInteger                     maxPresValue                                ]
         ]
-        ['ANALOG_INPUT', 'MAX_PRES_VALUE'               BACnetConstructedDataAnalogInputMaxPresValue
+        ['ANALOG_INPUT', 'MAX_PRES_VALUE', '4'          BACnetConstructedDataAnalogInputMaxPresValue
             [simple BACnetApplicationTagReal                                maxPresValue                                ]
         ]
-        ['ANALOG_OUTPUT', 'MAX_PRES_VALUE'              BACnetConstructedDataAnalogOutputMaxPresValue
+        ['ANALOG_OUTPUT', 'MAX_PRES_VALUE', '4'         BACnetConstructedDataAnalogOutputMaxPresValue
             [simple BACnetApplicationTagReal                                maxPresValue                                ]
         ]
-        ['ANALOG_VALUE', 'MAX_PRES_VALUE'               BACnetConstructedDataAnalogValueMaxPresValue
+        ['ANALOG_VALUE', 'MAX_PRES_VALUE', '4'          BACnetConstructedDataAnalogValueMaxPresValue
             [simple BACnetApplicationTagReal                                maxPresValue                                ]
         ]
-        ['LARGE_ANALOG_VALUE', 'MAX_PRES_VALUE'         BACnetConstructedDataLargeAnalogValueMaxPresValue
+        ['LARGE_ANALOG_VALUE', 'MAX_PRES_VALUE', '5'    BACnetConstructedDataLargeAnalogValueMaxPresValue
             [simple BACnetApplicationTagDouble                              maxPresValue                                ]
         ]
-        ['INTEGER_VALUE', 'MAX_PRES_VALUE'              BACnetConstructedDataIntegerValueMaxPresValue
+        ['INTEGER_VALUE', 'MAX_PRES_VALUE', '3'         BACnetConstructedDataIntegerValueMaxPresValue
             [simple BACnetApplicationTagSignedInteger                       maxPresValue                                ]
         ]
-        ['POSITIVE_INTEGER_VALUE', 'MAX_PRES_VALUE'     BACnetConstructedDataPositiveIntegerValueMaxPresValue
+        ['POSITIVE_INTEGER_VALUE', 'MAX_PRES_VALUE', '2' BACnetConstructedDataPositiveIntegerValueMaxPresValue
             [simple BACnetApplicationTagUnsignedInteger                     maxPresValue                                ]
         ]
-        ['TIMER', 'MAX_PRES_VALUE'                      BACnetConstructedDataTimerMaxPresValue
+        ['TIMER', 'MAX_PRES_VALUE', '2'                 BACnetConstructedDataTimerMaxPresValue
             [simple BACnetApplicationTagUnsignedInteger                     maxPresValue                                ]
         ]
-        [*, 'MAX_PRES_VALUE'                            BACnetConstructedDataMaxPresValue
+        [*, 'MAX_PRES_VALUE', '4'                       BACnetConstructedDataMaxPresValue
             [simple BACnetApplicationTagReal                                maxPresValue                                ]
         ]
-        [*, 'MAX_SEGMENTS_ACCEPTED'                     BACnetConstructedDataMaxSegmentsAccepted
+        [*, 'MAX_SEGMENTS_ACCEPTED', '2'                BACnetConstructedDataMaxSegmentsAccepted
             [simple BACnetApplicationTagUnsignedInteger                               maxSegmentsAccepted               ]
         ]
-        [*, 'MAXIMUM_OUTPUT'                            BACnetConstructedDataMaximumOutput
+        [*, 'MAXIMUM_OUTPUT', '4'                       BACnetConstructedDataMaximumOutput
             [simple BACnetApplicationTagReal                                maximumOutput                               ]
         ]
-        [*, 'MAXIMUM_VALUE'                             BACnetConstructedDataMaximumValue
+        [*, 'MAXIMUM_VALUE', '4'                        BACnetConstructedDataMaximumValue
             [simple BACnetApplicationTagReal                                maximumValue                                ]
         ]
         [*, 'MAXIMUM_VALUE_TIMESTAMP'                   BACnetConstructedDataMaximumValueTimestamp
@@ -3775,7 +3775,7 @@
                             terminated
                             'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, tagNumber)'            ]
         ]
-        [*, 'MEMBER_STATUS_FLAGS'                     BACnetConstructedDataMemberStatusFlags
+        [*, 'MEMBER_STATUS_FLAGS', '8'                  BACnetConstructedDataMemberStatusFlags
             [simple   BACnetStatusFlagsTagged('0', 'TagClass.APPLICATION_TAGS')         statusFlags                     ]
         ]
         [*, 'MEMBERS'                                   BACnetConstructedDataMembers
@@ -3784,178 +3784,178 @@
                                         terminated
                                         'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, tagNumber)']
         ]
-        [*, 'MIN_ACTUAL_VALUE'                          BACnetConstructedDataMinActualValue
+        [*, 'MIN_ACTUAL_VALUE', '4'                     BACnetConstructedDataMinActualValue
             [simple   BACnetApplicationTagReal                                          minActualValue                  ]
         ]
-        ['ACCUMULATOR', 'MIN_PRES_VALUE'                BACnetConstructedDataAccumulatorMinPresValue
+        ['ACCUMULATOR', 'MIN_PRES_VALUE', '2'           BACnetConstructedDataAccumulatorMinPresValue
             [simple   BACnetApplicationTagUnsignedInteger                     minPresValue                              ]
         ]
-        ['INTEGER_VALUE', 'MIN_PRES_VALUE'              BACnetConstructedDataIntegerValueMinPresValue
+        ['INTEGER_VALUE', 'MIN_PRES_VALUE', '3'         BACnetConstructedDataIntegerValueMinPresValue
             [simple   BACnetApplicationTagSignedInteger                       minPresValue                              ]
         ]
-        ['POSITIVE_INTEGER_VALUE', 'MIN_PRES_VALUE'     BACnetConstructedDataPositiveIntegerValueMinPresValue
+        ['POSITIVE_INTEGER_VALUE', 'MIN_PRES_VALUE', '2'    BACnetConstructedDataPositiveIntegerValueMinPresValue
             [simple   BACnetApplicationTagUnsignedInteger                     minPresValue                              ]
         ]
-        ['LARGE_ANALOG_VALUE', 'MIN_PRES_VALUE'         BACnetConstructedDataLargeAnalogValueMinPresValue
+        ['LARGE_ANALOG_VALUE', 'MIN_PRES_VALUE', '5'    BACnetConstructedDataLargeAnalogValueMinPresValue
             [simple   BACnetApplicationTagDouble                              minPresValue                              ]
         ]
-        ['TIMER', 'MIN_PRES_VALUE'                      BACnetConstructedDataTimerMinPresValue
+        ['TIMER', 'MIN_PRES_VALUE', '2'                 BACnetConstructedDataTimerMinPresValue
             [simple   BACnetApplicationTagUnsignedInteger                     minPresValue                              ]
         ]
-        [*, 'MIN_PRES_VALUE'                            BACnetConstructedDataMinPresValue
+        [*, 'MIN_PRES_VALUE', '4'                       BACnetConstructedDataMinPresValue
             [simple   BACnetApplicationTagReal                                minPresValue                              ]
         ]
-        [*, 'MINIMUM_OFF_TIME'                          BACnetConstructedDataMinimumOffTime
+        [*, 'MINIMUM_OFF_TIME', '2'                     BACnetConstructedDataMinimumOffTime
             [simple   BACnetApplicationTagUnsignedInteger                     minimumOffTime                            ]
         ]
-        [*, 'MINIMUM_ON_TIME'                           BACnetConstructedDataMinimumOnTime
+        [*, 'MINIMUM_ON_TIME', '2'                      BACnetConstructedDataMinimumOnTime
             [simple   BACnetApplicationTagUnsignedInteger                     minimumOnTime                            ]
         ]
-        [*, 'MINIMUM_OUTPUT'                            BACnetConstructedDataMinimumOutput
+        [*, 'MINIMUM_OUTPUT', '4'                       BACnetConstructedDataMinimumOutput
             [simple   BACnetApplicationTagReal                                minimumOutput                             ]
         ]
-        [*, 'MINIMUM_VALUE'                             BACnetConstructedDataMinimumValue
+        [*, 'MINIMUM_VALUE', '4'                        BACnetConstructedDataMinimumValue
             [simple   BACnetApplicationTagReal                              minimumValue                                ]
         ]
         [*, 'MINIMUM_VALUE_TIMESTAMP'                   BACnetConstructedDataMinimumValueTimestamp
             [simple   BACnetDateTime                                        minimumValueTimestamp                       ]
         ]
-        [*, 'MODE'                                    BACnetConstructedDataMode
+        [*, 'MODE', '9'                                 BACnetConstructedDataMode
             [simple   BACnetLifeSafetyModeTagged('0', 'TagClass.APPLICATION_TAGS')              mode                    ]
         ]
-        [*, 'MODEL_NAME'                              BACnetConstructedDataModelName
+        [*, 'MODEL_NAME', '7'                           BACnetConstructedDataModelName
            [simple   BACnetApplicationTagCharacterString               modelName                                        ]
         ]
-        [*, 'MODIFICATION_DATE'                       BACnetConstructedDataModificationDate
+        [*, 'MODIFICATION_DATE'                         BACnetConstructedDataModificationDate
             [simple   BACnetDateTime                                        modificationDate                            ]
         ]
-        [*, 'MUSTER_POINT'                            BACnetConstructedDataMusterPoint
+        [*, 'MUSTER_POINT', '1'                         BACnetConstructedDataMusterPoint
             [simple   BACnetApplicationTagBoolean                                       musterPoint                     ]
         ]
-        [*, 'NEGATIVE_ACCESS_RULES'                   BACnetConstructedDataNegativeAccessRules
+        [*, 'NEGATIVE_ACCESS_RULES'                     BACnetConstructedDataNegativeAccessRules
             [array    BACnetAccessRule
                             negativeAccessRules
                                     terminated
                                     'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, tagNumber)'    ]
         ]
-        [*, 'NETWORK_ACCESS_SECURITY_POLICIES'        BACnetConstructedDataNetworkAccessSecurityPolicies
+        [*, 'NETWORK_ACCESS_SECURITY_POLICIES'          BACnetConstructedDataNetworkAccessSecurityPolicies
             [array    BACnetNetworkSecurityPolicy
                             networkAccessSecurityPolicies
                                     terminated
                                     'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, tagNumber)'    ]
         ]
-        [*, 'NETWORK_INTERFACE_NAME'                  BACnetConstructedDataNetworkInterfaceName
+        [*, 'NETWORK_INTERFACE_NAME', '7'               BACnetConstructedDataNetworkInterfaceName
             [simple BACnetApplicationTagCharacterString                  networkInterfaceName                           ]
         ]
-        [*, 'NETWORK_NUMBER'                          BACnetConstructedDataNetworkNumber
+        [*, 'NETWORK_NUMBER', '2'                       BACnetConstructedDataNetworkNumber
             [simple BACnetApplicationTagUnsignedInteger                               networkNumber                     ]
         ]
-        [*, 'NETWORK_NUMBER_QUALITY'                  BACnetConstructedDataNetworkNumberQuality
+        [*, 'NETWORK_NUMBER_QUALITY', '9'               BACnetConstructedDataNetworkNumberQuality
             [simple   BACnetNetworkNumberQualityTagged('0', 'TagClass.APPLICATION_TAGS')    networkNumberQuality        ]
         ]
-        [*, 'NETWORK_TYPE'                            BACnetConstructedDataNetworkType
+        [*, 'NETWORK_TYPE', '9'                         BACnetConstructedDataNetworkType
             [simple   BACnetNetworkTypeTagged('0', 'TagClass.APPLICATION_TAGS')    networkType                          ]
         ]
-        [*, 'NEXT_STOPPING_FLOOR'                     BACnetConstructedDataNextStoppingFloor
+        [*, 'NEXT_STOPPING_FLOOR', '2'                  BACnetConstructedDataNextStoppingFloor
             [simple   BACnetApplicationTagUnsignedInteger                     nextStoppingFloor                         ]
         ]
-        [*, 'NODE_SUBTYPE'                            BACnetConstructedDataNodeSubtype
+        [*, 'NODE_SUBTYPE', '7'                         BACnetConstructedDataNodeSubtype
             [simple BACnetApplicationTagCharacterString                  nodeSubType                                    ]
         ]
-        [*, 'NODE_TYPE'                               BACnetConstructedDataNodeType
+        [*, 'NODE_TYPE', '9'                            BACnetConstructedDataNodeType
             [simple BACnetNodeTypeTagged('0', 'TagClass.APPLICATION_TAGS')  nodeType                                    ]
         ]
-        [*, 'NOTIFICATION_CLASS'                      BACnetConstructedDataNotificationClass
+        [*, 'NOTIFICATION_CLASS', '2'                   BACnetConstructedDataNotificationClass
             [simple BACnetApplicationTagUnsignedInteger                               notificationClass                 ]
         ]
-        [*, 'NOTIFICATION_THRESHOLD'                  BACnetConstructedDataNotificationThreshold
+        [*, 'NOTIFICATION_THRESHOLD', '2'               BACnetConstructedDataNotificationThreshold
             [simple BACnetApplicationTagUnsignedInteger                               notificationThreshold             ]
         ]
-        [*, 'NOTIFY_TYPE'                             BACnetConstructedDataNotifyType
+        [*, 'NOTIFY_TYPE', '9'                          BACnetConstructedDataNotifyType
             [simple BACnetNotifyTypeTagged('0', 'TagClass.APPLICATION_TAGS')          notifyType                        ]
         ]
-        [*, 'NUMBER_OF_APDU_RETRIES'                  BACnetConstructedDataNumberOfAPDURetries
+        [*, 'NUMBER_OF_APDU_RETRIES', '2'               BACnetConstructedDataNumberOfAPDURetries
             [simple   BACnetApplicationTagUnsignedInteger                               numberOfApduRetries             ]
         ]
-        [*, 'NUMBER_OF_AUTHENTICATION_POLICIES'       BACnetConstructedDataNumberOfAuthenticationPolicies
+        [*, 'NUMBER_OF_AUTHENTICATION_POLICIES', '2'    BACnetConstructedDataNumberOfAuthenticationPolicies
             [simple   BACnetApplicationTagUnsignedInteger                               numberOfAuthenticationPolicies  ]
         ]
-        [*, 'NUMBER_OF_STATES'                        BACnetConstructedDataNumberOfStates
+        [*, 'NUMBER_OF_STATES', '2'                     BACnetConstructedDataNumberOfStates
             [simple BACnetApplicationTagUnsignedInteger                                 numberOfState                   ]
         ]
-        [*, 'OBJECT_IDENTIFIER'                       BACnetConstructedDataObjectIdentifier
+        [*, 'OBJECT_IDENTIFIER', '12'                   BACnetConstructedDataObjectIdentifier
             [simple   BACnetApplicationTagObjectIdentifier                              objectIdentifier                ]
         ]
-        [*, 'OBJECT_LIST'                             BACnetConstructedDataObjectList
+        [*, 'OBJECT_LIST'                               BACnetConstructedDataObjectList
             [array    BACnetApplicationTagObjectIdentifier
                                 objectList
                                         terminated
                                         'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, tagNumber)']
         ]
-        [*, 'OBJECT_NAME'                             BACnetConstructedDataObjectName
+        [*, 'OBJECT_NAME', '7'                          BACnetConstructedDataObjectName
             [simple   BACnetApplicationTagCharacterString                               objectName                      ]
         ]
-        [*, 'OBJECT_PROPERTY_REFERENCE'               BACnetConstructedDataObjectPropertyReference
+        [*, 'OBJECT_PROPERTY_REFERENCE'                 BACnetConstructedDataObjectPropertyReference
             [simple   BACnetDeviceObjectPropertyReference                               propertyReference               ]
         ]
-        [*, 'OBJECT_TYPE'                             BACnetConstructedDataObjectType
+        [*, 'OBJECT_TYPE', '9'                          BACnetConstructedDataObjectType
             [simple   BACnetObjectTypeTagged('0', 'TagClass.APPLICATION_TAGS')          objectType                      ]
         ]
-        [*, 'OCCUPANCY_COUNT'                         BACnetConstructedDataOccupancyCount
+        [*, 'OCCUPANCY_COUNT', '2'                      BACnetConstructedDataOccupancyCount
             [simple BACnetApplicationTagUnsignedInteger                       occupancyCount                            ]
         ]
-        [*, 'OCCUPANCY_COUNT_ADJUST'                  BACnetConstructedDataOccupancyCountAdjust
+        [*, 'OCCUPANCY_COUNT_ADJUST', '1'               BACnetConstructedDataOccupancyCountAdjust
             [simple BACnetApplicationTagBoolean                               occupancyCountAdjust                      ]
         ]
-        [*, 'OCCUPANCY_COUNT_ENABLE'                  BACnetConstructedDataOccupancyCountEnable
+        [*, 'OCCUPANCY_COUNT_ENABLE', '1'               BACnetConstructedDataOccupancyCountEnable
             [simple BACnetApplicationTagBoolean                               occupancyCountEnable                      ]
         ]
-        [*, 'OCCUPANCY_LOWER_LIMIT'                   BACnetConstructedDataOccupancyLowerLimit
+        [*, 'OCCUPANCY_LOWER_LIMIT', '2'                BACnetConstructedDataOccupancyLowerLimit
             [simple BACnetApplicationTagUnsignedInteger                       occupancyLowerLimit                       ]
         ]
-        [*, 'OCCUPANCY_LOWER_LIMIT_ENFORCED'          BACnetConstructedDataOccupancyLowerLimitEnforced
+        [*, 'OCCUPANCY_LOWER_LIMIT_ENFORCED', '1'       BACnetConstructedDataOccupancyLowerLimitEnforced
             [simple BACnetApplicationTagBoolean                               occupancyLowerLimitEnforced               ]
         ]
-        [*, 'OCCUPANCY_STATE'                         BACnetConstructedDataOccupancyState
+        [*, 'OCCUPANCY_STATE', '9'                      BACnetConstructedDataOccupancyState
             [simple BACnetAccessZoneOccupancyStateTagged('0', 'TagClass.APPLICATION_TAGS') occupancyState               ]
         ]
-        [*, 'OCCUPANCY_UPPER_LIMIT'                   BACnetConstructedDataOccupancyUpperLimit
+        [*, 'OCCUPANCY_UPPER_LIMIT', '2'                BACnetConstructedDataOccupancyUpperLimit
             [simple BACnetApplicationTagUnsignedInteger                       occupancyUpperLimit                       ]
         ]
-        [*, 'OCCUPANCY_UPPER_LIMIT_ENFORCED'          BACnetConstructedDataOccupancyUpperLimitEnforced
+        [*, 'OCCUPANCY_UPPER_LIMIT_ENFORCED', '1'       BACnetConstructedDataOccupancyUpperLimitEnforced
             [simple BACnetApplicationTagBoolean                               occupancyUpperLimitEnforced               ]
         ]
-        [*, 'OPERATION_DIRECTION'                     BACnetConstructedDataOperationDirection
+        [*, 'OPERATION_DIRECTION', '9'                  BACnetConstructedDataOperationDirection
             [simple BACnetEscalatorOperationDirectionTagged('0', 'TagClass.APPLICATION_TAGS')   operationDirection      ]
         ]
-        [*, 'OPERATION_EXPECTED'                      BACnetConstructedDataOperationExpected
+        [*, 'OPERATION_EXPECTED', '9'                   BACnetConstructedDataOperationExpected
             [simple   BACnetLifeSafetyOperationTagged('0', 'TagClass.APPLICATION_TAGS')         lifeSafetyOperations    ]
         ]
-        [*, 'OPTIONAL'                                BACnetConstructedDataOptional
+        [*, 'OPTIONAL'                                  BACnetConstructedDataOptional
             [validation    '1 == 2'    "An property identified by OPTIONAL should never occur in the wild"]
         ]
-        [*, 'OUT_OF_SERVICE'                          BACnetConstructedDataOutOfService
+        [*, 'OUT_OF_SERVICE', '1'                       BACnetConstructedDataOutOfService
             [simple   BACnetApplicationTagBoolean                                                       outOfService    ]
         ]
-        [*, 'OUTPUT_UNITS'                            BACnetConstructedDataOutputUnits
+        [*, 'OUTPUT_UNITS', '9'                         BACnetConstructedDataOutputUnits
             [simple   BACnetEngineeringUnitsTagged('0', 'TagClass.APPLICATION_TAGS')                    units           ]
         ]
-        [*, 'PACKET_REORDER_TIME'                     BACnetConstructedDataPacketReorderTime
+        [*, 'PACKET_REORDER_TIME', '2'                  BACnetConstructedDataPacketReorderTime
             [simple BACnetApplicationTagUnsignedInteger                       packetReorderTime                         ]
         ]
-        [*, 'PASSBACK_MODE'                           BACnetConstructedDataPassbackMode
+        [*, 'PASSBACK_MODE'                             BACnetConstructedDataPassbackMode
             [simple BACnetAccessPassbackModeTagged('0', 'TagClass.APPLICATION_TAGS')             passbackMode           ]
         ]
-        [*, 'PASSBACK_TIMEOUT'                        BACnetConstructedDataPassbackTimeout
+        [*, 'PASSBACK_TIMEOUT', '2'                     BACnetConstructedDataPassbackTimeout
             [simple BACnetApplicationTagUnsignedInteger                       passbackTimeout                           ]
         ]
-        [*, 'PASSENGER_ALARM'                         BACnetConstructedDataPassengerAlarm
+        [*, 'PASSENGER_ALARM', '1'                      BACnetConstructedDataPassengerAlarm
             [simple   BACnetApplicationTagBoolean                             passengerAlarm                            ]
         ]
-        [*, 'POLARITY'                                BACnetConstructedDataPolarity
+        [*, 'POLARITY', '9'                             BACnetConstructedDataPolarity
             [simple   BACnetPolarityTagged('0', 'TagClass.APPLICATION_TAGS')  polarity                                  ]
         ]
-        [*, 'PORT_FILTER'                             BACnetConstructedDataPortFilter
+        [*, 'PORT_FILTER'                               BACnetConstructedDataPortFilter
             [array    BACnetPortPermission
                             portFilter
                                     terminated
@@ -3967,10 +3967,10 @@
                                     terminated
                                     'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, tagNumber)'    ]
         ]
-        [*, 'POWER'                                     BACnetConstructedDataPower
+        [*, 'POWER', '4'                                BACnetConstructedDataPower
             [simple BACnetApplicationTagReal                                power                                       ]
         ]
-        [*, 'POWER_MODE'                                BACnetConstructedDataPowerMode
+        [*, 'POWER_MODE', '1'                           BACnetConstructedDataPowerMode
             [simple   BACnetApplicationTagBoolean               powerMode                                               ]
         ]
         [*, 'PRESCALE'                                  BACnetConstructedDataPrescale
@@ -4093,71 +4093,71 @@
         [*, 'PRIORITY_ARRAY'                            BACnetConstructedDataPriorityArray
             [simple   BACnetPriorityArray('objectTypeArgument', 'tagNumber')            priorityArray                   ]
         ]
-        [*, 'PRIORITY_FOR_WRITING'                      BACnetConstructedDataPriorityForWriting
+        [*, 'PRIORITY_FOR_WRITING', '2'                 BACnetConstructedDataPriorityForWriting
             [simple   BACnetApplicationTagUnsignedInteger                     priorityForWriting                        ]
         ]
-        [*, 'PROCESS_IDENTIFIER'                        BACnetConstructedDataProcessIdentifier
+        [*, 'PROCESS_IDENTIFIER', '2'                   BACnetConstructedDataProcessIdentifier
             [simple   BACnetApplicationTagUnsignedInteger                               processIdentifier               ]
         ]
         [*, 'PROCESS_IDENTIFIER_FILTER'                 BACnetConstructedDataProcessIdentifierFilter
             [simple   BACnetProcessIdSelection                          processIdentifierFilter                         ]
         ]
-        [*, 'PROFILE_LOCATION'                          BACnetConstructedDataProfileLocation
+        [*, 'PROFILE_LOCATION', '7'                     BACnetConstructedDataProfileLocation
             [simple   BACnetApplicationTagCharacterString                               profileLocation                 ]
         ]
-        [*, 'PROFILE_NAME'                              BACnetConstructedDataProfileName
+        [*, 'PROFILE_NAME', '7'                         BACnetConstructedDataProfileName
             [simple   BACnetApplicationTagCharacterString                               profileName                     ]
         ]
-        [*, 'PROGRAM_CHANGE'                            BACnetConstructedDataProgramChange
+        [*, 'PROGRAM_CHANGE', '9'                       BACnetConstructedDataProgramChange
             [simple   BACnetProgramRequestTagged('0', 'TagClass.APPLICATION_TAGS')           programChange              ]
         ]
-        [*, 'PROGRAM_LOCATION'                          BACnetConstructedDataProgramLocation
+        [*, 'PROGRAM_LOCATION', '7'                     BACnetConstructedDataProgramLocation
             [simple   BACnetApplicationTagCharacterString                               programLocation                 ]
         ]
-        [*, 'PROGRAM_STATE'                             BACnetConstructedDataProgramState
+        [*, 'PROGRAM_STATE', '9'                        BACnetConstructedDataProgramState
             [simple   BACnetProgramStateTagged('0', 'TagClass.APPLICATION_TAGS')           programState                 ]
         ]
-        [*, 'PROPERTY_LIST'                             BACnetConstructedDataPropertyList
+        [*, 'PROPERTY_LIST', '9'                        BACnetConstructedDataPropertyList
             [array    BACnetPropertyIdentifierTagged('0', 'TagClass.APPLICATION_TAGS')
                                 propertyList
                                         terminated
                                         'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, tagNumber)']
         ]
-        [*, 'PROPORTIONAL_CONSTANT'                     BACnetConstructedDataProportionalConstant
+        [*, 'PROPORTIONAL_CONSTANT', '4'                BACnetConstructedDataProportionalConstant
             [simple BACnetApplicationTagReal                                proportionalConstant                        ]
         ]
-        [*, 'PROPORTIONAL_CONSTANT_UNITS'               BACnetConstructedDataProportionalConstantUnits
+        [*, 'PROPORTIONAL_CONSTANT_UNITS', '9'          BACnetConstructedDataProportionalConstantUnits
             [simple   BACnetEngineeringUnitsTagged('0', 'TagClass.APPLICATION_TAGS')                    units           ]
         ]
-        [*, 'PROTOCOL_LEVEL'                            BACnetConstructedDataProtocolLevel
+        [*, 'PROTOCOL_LEVEL', '9'                       BACnetConstructedDataProtocolLevel
             [simple   BACnetProtocolLevelTagged('0', 'TagClass.APPLICATION_TAGS')                    protocolLevel      ]
         ]
         //[*, 'PROTOCOL_CONFORMANCE_CLASS'              BACnetConstructedDataProtocolConformanceClass [validation    '1 == 2'    "TODO: implement me PROTOCOL_CONFORMANCE_CLASS BACnetConstructedDataProtocolConformanceClass"]]
-        [*, 'PROTOCOL_OBJECT_TYPES_SUPPORTED'           BACnetConstructedDataProtocolObjectTypesSupported
+        [*, 'PROTOCOL_OBJECT_TYPES_SUPPORTED', '8'      BACnetConstructedDataProtocolObjectTypesSupported
             [simple   BACnetObjectTypesSupportedTagged('0', 'TagClass.APPLICATION_TAGS')            protocolObjectTypesSupported         ]
         ]
-        [*, 'PROTOCOL_REVISION'                         BACnetConstructedDataProtocolRevision
+        [*, 'PROTOCOL_REVISION', '2'                    BACnetConstructedDataProtocolRevision
             [simple   BACnetApplicationTagUnsignedInteger                                           protocolRevision    ]
         ]
-        [*, 'PROTOCOL_SERVICES_SUPPORTED'               BACnetConstructedDataProtocolServicesSupported
+        [*, 'PROTOCOL_SERVICES_SUPPORTED','8'           BACnetConstructedDataProtocolServicesSupported
             [simple   BACnetServicesSupportedTagged('0', 'TagClass.APPLICATION_TAGS')   protocolServicesSupported       ]
         ]
-        [*, 'PROTOCOL_VERSION'                          BACnetConstructedDataProtocolVersion
+        [*, 'PROTOCOL_VERSION', '2'                     BACnetConstructedDataProtocolVersion
             [simple   BACnetApplicationTagUnsignedInteger                                           protocolVersion     ]
         ]
-        [*, 'PULSE_RATE'                                BACnetConstructedDataPulseRate
+        [*, 'PULSE_RATE', '2'                           BACnetConstructedDataPulseRate
             [simple   BACnetApplicationTagUnsignedInteger                                           pulseRate           ]
         ]
-        [*, 'READ_ONLY'                                 BACnetConstructedDataReadOnly
+        [*, 'READ_ONLY', '1'                            BACnetConstructedDataReadOnly
             [simple BACnetApplicationTagBoolean                                readOnly                                 ]
         ]
-        [*, 'REASON_FOR_DISABLE'                        BACnetConstructedDataReasonForDisable
+        [*, 'REASON_FOR_DISABLE', '9'                   BACnetConstructedDataReasonForDisable
             [array    BACnetAccessCredentialDisableReasonTagged('0', 'TagClass.APPLICATION_TAGS')
                                             reasonForDisable
                                                     terminated
                                                     'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, tagNumber)'            ]
         ]
-        [*, 'REASON_FOR_HALT'                           BACnetConstructedDataReasonForHalt
+        [*, 'REASON_FOR_HALT', '9'                      BACnetConstructedDataReasonForHalt
             [simple   BACnetProgramErrorTagged('0', 'TagClass.APPLICATION_TAGS')           programError                 ]
         ]
         [*, 'RECIPIENT_LIST'                            BACnetConstructedDataRecipientList
@@ -4166,16 +4166,16 @@
                                     terminated
                                     'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, tagNumber)'    ]
         ]
-        ['FILE', 'RECORD_COUNT'                         BACnetConstructedDataFileRecordCount
+        ['FILE', 'RECORD_COUNT', '2'                    BACnetConstructedDataFileRecordCount
             [simple BACnetApplicationTagUnsignedInteger                     recordCount                                 ]
         ]
-        [*, 'RECORD_COUNT'                              BACnetConstructedDataRecordCount
+        [*, 'RECORD_COUNT', '2'                         BACnetConstructedDataRecordCount
             [simple BACnetApplicationTagUnsignedInteger                     recordCount                                 ]
         ]
-        [*, 'RECORDS_SINCE_NOTIFICATION'                BACnetConstructedDataRecordsSinceNotification
+        [*, 'RECORDS_SINCE_NOTIFICATION', '2'           BACnetConstructedDataRecordsSinceNotification
             [simple BACnetApplicationTagUnsignedInteger                     recordsSinceNotifications                   ]
         ]
-        [*, 'REFERENCE_PORT'                            BACnetConstructedDataReferencePort
+        [*, 'REFERENCE_PORT', '2'                       BACnetConstructedDataReferencePort
             [simple BACnetApplicationTagUnsignedInteger                     referencePort                               ]
         ]
         [*, 'REGISTERED_CAR_CALL'                       BACnetConstructedDataRegisteredCarCall
@@ -4184,7 +4184,7 @@
                                                     terminated
                                                     'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, tagNumber)'            ]
         ]
-        [*, 'RELIABILITY'                               BACnetConstructedDataReliability
+        [*, 'RELIABILITY', '9'                          BACnetConstructedDataReliability
             [simple   BACnetReliabilityTagged('0', 'TagClass.APPLICATION_TAGS')                         reliability     ]
         ]
         [*, 'RELIABILITY_EVALUATION_INHIBIT', '1'       BACnetConstructedDataReliabilityEvaluationInhibit
@@ -4262,25 +4262,25 @@
         [*, 'REQUESTED_SHED_LEVEL'                      BACnetConstructedDataRequestedShedLevel
             [simple  BACnetShedLevel            requestedShedLevel                                                      ]
         ]
-        [*, 'REQUESTED_UPDATE_INTERVAL'                 BACnetConstructedDataRequestedUpdateInterval
+        [*, 'REQUESTED_UPDATE_INTERVAL', '2'            BACnetConstructedDataRequestedUpdateInterval
             [simple BACnetApplicationTagUnsignedInteger                       requestedUpdateInterval                   ]
         ]
         [*, 'REQUIRED'                                BACnetConstructedDataRequired
             [validation    '1 == 2'    "An property identified by REQUIRED should never occur in the wild"]
         ]
-        ['LARGE_ANALOG_VALUE', 'RESOLUTION'             BACnetConstructedDataLargeAnalogValueResolution
+        ['LARGE_ANALOG_VALUE', 'RESOLUTION', '5'        BACnetConstructedDataLargeAnalogValueResolution
             [simple   BACnetApplicationTagDouble                                        resolution                      ]
         ]
-        ['INTEGER_VALUE', 'RESOLUTION'                  BACnetConstructedDataIntegerValueResolution
+        ['INTEGER_VALUE', 'RESOLUTION', '3'             BACnetConstructedDataIntegerValueResolution
             [simple   BACnetApplicationTagSignedInteger                                 resolution                      ]
         ]
-        ['POSITIVE_INTEGER_VALUE', 'RESOLUTION'         BACnetConstructedDataPositiveIntegerValueResolution
+        ['POSITIVE_INTEGER_VALUE', 'RESOLUTION', '2'    BACnetConstructedDataPositiveIntegerValueResolution
             [simple   BACnetApplicationTagUnsignedInteger                               resolution                      ]
         ]
-        ['TIMER', 'RESOLUTION'                          BACnetConstructedDataTimerResolution
+        ['TIMER', 'RESOLUTION', '2'                     BACnetConstructedDataTimerResolution
             [simple   BACnetApplicationTagUnsignedInteger                               resolution                      ]
         ]
-        [*, 'RESOLUTION'                                BACnetConstructedDataResolution
+        [*, 'RESOLUTION', '4'                           BACnetConstructedDataResolution
             [simple   BACnetApplicationTagReal                                          resolution                      ]
         ]
         [*, 'RESTART_NOTIFICATION_RECIPIENTS'           BACnetConstructedDataRestartNotificationRecipients
@@ -4289,10 +4289,10 @@
                                         terminated
                                         'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, tagNumber)']
         ]
-        [*, 'RESTORE_COMPLETION_TIME'                   BACnetConstructedDataRestoreCompletionTime
+        [*, 'RESTORE_COMPLETION_TIME', '2'              BACnetConstructedDataRestoreCompletionTime
             [simple BACnetApplicationTagUnsignedInteger                       completionTime                            ]
         ]
-        [*, 'RESTORE_PREPARATION_TIME'                  BACnetConstructedDataRestorePreparationTime
+        [*, 'RESTORE_PREPARATION_TIME', '2'             BACnetConstructedDataRestorePreparationTime
             [simple   BACnetApplicationTagUnsignedInteger               restorePreparationTime                          ]
         ]
         [*, 'ROUTING_TABLE'                             BACnetConstructedDataRoutingTable
@@ -4304,67 +4304,67 @@
         [*, 'SCALE'                                     BACnetConstructedDataScale
             [simple   BACnetScale                       scale                                                           ]
         ]
-        [*, 'SCALE_FACTOR'                              BACnetConstructedDataScaleFactor
+        [*, 'SCALE_FACTOR', '4'                         BACnetConstructedDataScaleFactor
             [simple   BACnetApplicationTagReal                                          scaleFactor                     ]
         ]
         [*, 'SCHEDULE_DEFAULT'                          BACnetConstructedDataScheduleDefault
             [simple   BACnetConstructedDataElement('objectTypeArgument', 'propertyIdentifierArgument') scheduleDefault  ]
         ]
-        [*, 'SECURED_STATUS'                          BACnetConstructedDataSecuredStatus
+        [*, 'SECURED_STATUS', '9'                       BACnetConstructedDataSecuredStatus
             [simple   BACnetDoorSecuredStatusTagged('0', 'TagClass.APPLICATION_TAGS')         securedStatus             ]
         ]
-        [*, 'SECURITY_PDU_TIMEOUT'                    BACnetConstructedDataSecurityPDUTimeout
+        [*, 'SECURITY_PDU_TIMEOUT', '2'                 BACnetConstructedDataSecurityPDUTimeout
             [simple BACnetApplicationTagUnsignedInteger                       securityPduTimeout                        ]
         ]
-        [*, 'SECURITY_TIME_WINDOW'                    BACnetConstructedDataSecurityTimeWindow
+        [*, 'SECURITY_TIME_WINDOW', '2'                 BACnetConstructedDataSecurityTimeWindow
             [simple BACnetApplicationTagUnsignedInteger                       securityTimeWindow                        ]
         ]
-        [*, 'SEGMENTATION_SUPPORTED'                  BACnetConstructedDataSegmentationSupported
+        [*, 'SEGMENTATION_SUPPORTED', '9'               BACnetConstructedDataSegmentationSupported
             [simple BACnetSegmentationTagged('0', 'TagClass.APPLICATION_TAGS')  segmentationSupported                   ]
         ]
-        [*, 'SERIAL_NUMBER'                           BACnetConstructedDataSerialNumber
+        [*, 'SERIAL_NUMBER', '7'                        BACnetConstructedDataSerialNumber
             [simple   BACnetApplicationTagCharacterString                         serialNumber                          ]
         ]
-        [*, 'SETPOINT'                                BACnetConstructedDataSetpoint
+        [*, 'SETPOINT', '4'                             BACnetConstructedDataSetpoint
             [simple   BACnetApplicationTagReal                                          setpoint                        ]
         ]
-        [*, 'SETPOINT_REFERENCE'                      BACnetConstructedDataSetpointReference
+        [*, 'SETPOINT_REFERENCE'                        BACnetConstructedDataSetpointReference
             [simple   BACnetSetpointReference                                           setpointReference               ]
         ]
-        [*, 'SETTING'                                 BACnetConstructedDataSetting
+        [*, 'SETTING', '2'                              BACnetConstructedDataSetting
             [simple   BACnetApplicationTagUnsignedInteger                     setting                                   ]
         ]
-        [*, 'SHED_DURATION'                           BACnetConstructedDataShedDuration
+        [*, 'SHED_DURATION', '2'                        BACnetConstructedDataShedDuration
             [simple BACnetApplicationTagUnsignedInteger                       shedDuration                              ]
         ]
-        [*, 'SHED_LEVEL_DESCRIPTIONS'                 BACnetConstructedDataShedLevelDescriptions
+        [*, 'SHED_LEVEL_DESCRIPTIONS', '7'              BACnetConstructedDataShedLevelDescriptions
             [array    BACnetApplicationTagCharacterString
                                 shedLevelDescriptions
                                         terminated
                                         'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, tagNumber)']
         ]
-        [*, 'SHED_LEVELS'                             BACnetConstructedDataShedLevels
+        [*, 'SHED_LEVELS', '2'                          BACnetConstructedDataShedLevels
             [array    BACnetApplicationTagUnsignedInteger
                                 shedLevels
                                         terminated
                                         'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, tagNumber)']
         ]
-        [*, 'SILENCED'                                BACnetConstructedDataSilenced
+        [*, 'SILENCED', '9'                             BACnetConstructedDataSilenced
             [simple   BACnetSilencedStateTagged('0', 'TagClass.APPLICATION_TAGS')       silenced                        ]
         ]
-        [*, 'SLAVE_ADDRESS_BINDING'                   BACnetConstructedDataSlaveAddressBinding
+        [*, 'SLAVE_ADDRESS_BINDING'                     BACnetConstructedDataSlaveAddressBinding
             [array    BACnetAddressBinding
                                 slaveAddressBinding
                                         terminated
                                         'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, tagNumber)']
         ]
-        [*, 'SLAVE_PROXY_ENABLE'                      BACnetConstructedDataSlaveProxyEnable
+        [*, 'SLAVE_PROXY_ENABLE', '1'                   BACnetConstructedDataSlaveProxyEnable
             [simple   BACnetApplicationTagBoolean                                       slaveProxyEnable                ]
         ]
-        [*, 'START_TIME'                              BACnetConstructedDataStartTime
+        [*, 'START_TIME'                                BACnetConstructedDataStartTime
             [simple   BACnetDateTime                                          startTime                                 ]
         ]
-        [*, 'STATE_CHANGE_VALUES'                     BACnetConstructedDataStateChangeValues
+        [*, 'STATE_CHANGE_VALUES'                       BACnetConstructedDataStateChangeValues
             [array    BACnetTimerStateChangeValue('objectTypeArgument')
                                 stateChangeValues
                                         terminated
@@ -4372,245 +4372,247 @@
             // TODO: enable once index support is in
             //[validation 'COUNT(stateChangeValues) == 7' "stateChangeValues should have exactly 7 values"              ]
         ]
-        [*, 'STATE_DESCRIPTION'                       BACnetConstructedDataStateDescription
+        [*, 'STATE_DESCRIPTION', '7'                    BACnetConstructedDataStateDescription
             [simple   BACnetApplicationTagCharacterString                               stateDescription                ]
         ]
-        [*, 'STATE_TEXT'                              BACnetConstructedDataStateText
+        [*, 'STATE_TEXT', '7'                           BACnetConstructedDataStateText
             [array    BACnetApplicationTagCharacterString
                                 stateText
                                         terminated
                                         'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, tagNumber)']
         ]
-        [*, 'STATUS_FLAGS'                            BACnetConstructedDataStatusFlags
+        [*, 'STATUS_FLAGS', '8'                         BACnetConstructedDataStatusFlags
             [simple   BACnetStatusFlagsTagged('0', 'TagClass.APPLICATION_TAGS')         statusFlags                     ]
         ]
-        [*, 'STOP_TIME'                               BACnetConstructedDataStopTime
+        [*, 'STOP_TIME'                                 BACnetConstructedDataStopTime
             [simple   BACnetDateTime                                          stopTime                                  ]
         ]
-        [*, 'STOP_WHEN_FULL'                          BACnetConstructedDataStopWhenFull
+        [*, 'STOP_WHEN_FULL', '1'                       BACnetConstructedDataStopWhenFull
             [simple BACnetApplicationTagBoolean                                          stopWhenFull                   ]
         ]
-        [*, 'STRIKE_COUNT'                            BACnetConstructedDataStrikeCount
+        [*, 'STRIKE_COUNT', '2'                         BACnetConstructedDataStrikeCount
             [simple BACnetApplicationTagUnsignedInteger                       strikeCount                               ]
         ]
-        [*, 'STRUCTURED_OBJECT_LIST'                  BACnetConstructedDataStructuredObjectList
+        [*, 'STRUCTURED_OBJECT_LIST'                    BACnetConstructedDataStructuredObjectList
             [array    BACnetApplicationTagObjectIdentifier
                                 structuredObjectList
                                         terminated
                                         'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, tagNumber)']
         ]
-        [*, 'SUBORDINATE_ANNOTATIONS'                 BACnetConstructedDataSubordinateAnnotations
+        [*, 'SUBORDINATE_ANNOTATIONS'                   BACnetConstructedDataSubordinateAnnotations
             [array    BACnetApplicationTagCharacterString
                     subordinateAnnotations
                             terminated
                             'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, tagNumber)'            ]
         ]
-        [*, 'SUBORDINATE_LIST'                        BACnetConstructedDataSubordinateList
+        [*, 'SUBORDINATE_LIST'                          BACnetConstructedDataSubordinateList
             [array    BACnetDeviceObjectReference
                         subordinateList
                                 terminated
                                 'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, tagNumber)'        ]
         ]
-        [*, 'SUBORDINATE_NODE_TYPES'                  BACnetConstructedDataSubordinateNodeTypes
+        [*, 'SUBORDINATE_NODE_TYPES', '9'               BACnetConstructedDataSubordinateNodeTypes
             [array    BACnetNodeTypeTagged('0', 'TagClass.APPLICATION_TAGS')
                         subordinateNodeTypes
                                 terminated
                                 'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, tagNumber)'        ]
         ]
-        [*, 'SUBORDINATE_RELATIONSHIPS'               BACnetConstructedDataSubordinateRelationships
+        [*, 'SUBORDINATE_RELATIONSHIPS', '9'            BACnetConstructedDataSubordinateRelationships
             [array    BACnetRelationshipTagged('0', 'TagClass.APPLICATION_TAGS')
                                     subordinateRelationships
                                             terminated
                                             'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, tagNumber)'            ]
         ]
-        [*, 'SUBORDINATE_TAGS'                        BACnetConstructedDataSubordinateTags
+        [*, 'SUBORDINATE_TAGS'                          BACnetConstructedDataSubordinateTags
             [array    BACnetNameValueCollection('0')
                         subordinateList
                                 terminated
                                 'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, tagNumber)'            ]
         ]
-        [*, 'SUBSCRIBED_RECIPIENTS'                   BACnetConstructedDataSubscribedRecipients
+        [*, 'SUBSCRIBED_RECIPIENTS'                     BACnetConstructedDataSubscribedRecipients
             [array    BACnetEventNotificationSubscription
                             subscribedRecipients
                                     terminated
                                     'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, tagNumber)'            ]
         ]
-        [*, 'SUPPORTED_FORMAT_CLASSES'                BACnetConstructedDataSupportedFormatClasses
+        [*, 'SUPPORTED_FORMAT_CLASSES'                  BACnetConstructedDataSupportedFormatClasses
             [array    BACnetApplicationTagUnsignedInteger
                                         supportedFormats
                                                 terminated
                                                 'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, tagNumber)'    ]
 
         ]
-        [*, 'SUPPORTED_FORMATS'                       BACnetConstructedDataSupportedFormats
+        [*, 'SUPPORTED_FORMATS'                         BACnetConstructedDataSupportedFormats
             [array    BACnetAuthenticationFactorFormat
                                         supportedFormats
                                                 terminated
                                                 'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, tagNumber)'    ]
         ]
-        [*, 'SUPPORTED_SECURITY_ALGORITHMS'           BACnetConstructedDataSupportedSecurityAlgorithms
+        [*, 'SUPPORTED_SECURITY_ALGORITHMS'             BACnetConstructedDataSupportedSecurityAlgorithms
             [array    BACnetApplicationTagUnsignedInteger
                                         supportedSecurityAlgorithms
                                                 terminated
                                                 'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, tagNumber)'    ]
         ]
-        [*, 'SYSTEM_STATUS'                           BACnetConstructedDataSystemStatus
+        [*, 'SYSTEM_STATUS', '9'                        BACnetConstructedDataSystemStatus
             [simple   BACnetDeviceStatusTagged('0', 'TagClass.APPLICATION_TAGS')    systemStatus                        ]
         ]
-        [*, 'TAGS'                                    BACnetConstructedDataTags
+        [*, 'TAGS'                                      BACnetConstructedDataTags
             [array    BACnetNameValue
                             tags
                                 terminated
                                 'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, tagNumber)'        ]
         ]
-        [*, 'THREAT_AUTHORITY'                        BACnetConstructedDataThreatAuthority
+        [*, 'THREAT_AUTHORITY'                          BACnetConstructedDataThreatAuthority
             [simple   BACnetAccessThreatLevel                                           threatAuthority                 ]
         ]
-        [*, 'THREAT_LEVEL'                            BACnetConstructedDataThreatLevel
+        [*, 'THREAT_LEVEL'                              BACnetConstructedDataThreatLevel
             [simple   BACnetAccessThreatLevel                                           threatLevel                     ]
         ]
-        [*, 'TIME_DELAY'                              BACnetConstructedDataTimeDelay
+        [*, 'TIME_DELAY', '2'                           BACnetConstructedDataTimeDelay
             [simple   BACnetApplicationTagUnsignedInteger                               timeDelay                       ]
         ]
-        [*, 'TIME_DELAY_NORMAL'                       BACnetConstructedDataTimeDelayNormal
+        [*, 'TIME_DELAY_NORMAL', '2'                    BACnetConstructedDataTimeDelayNormal
             [simple   BACnetApplicationTagUnsignedInteger                               timeDelayNormal                 ]
         ]
-        [*, 'TIME_OF_ACTIVE_TIME_RESET'               BACnetConstructedDataTimeOfActiveTimeReset
+        [*, 'TIME_OF_ACTIVE_TIME_RESET'                 BACnetConstructedDataTimeOfActiveTimeReset
             [simple   BACnetDateTime                                          timeOfActiveTimeReset                     ]
         ]
-        [*, 'TIME_OF_DEVICE_RESTART'                  BACnetConstructedDataTimeOfDeviceRestart
+        [*, 'TIME_OF_DEVICE_RESTART'                    BACnetConstructedDataTimeOfDeviceRestart
             [simple   BACnetTimeStamp                                                    timeOfDeviceRestart            ]
         ]
-        [*, 'TIME_OF_STATE_COUNT_RESET'               BACnetConstructedDataTimeOfStateCountReset
+        [*, 'TIME_OF_STATE_COUNT_RESET'                 BACnetConstructedDataTimeOfStateCountReset
             [simple   BACnetDateTime                                          timeOfStateCountReset                     ]
         ]
-        [*, 'TIME_OF_STRIKE_COUNT_RESET'              BACnetConstructedDataTimeOfStrikeCountReset
+        [*, 'TIME_OF_STRIKE_COUNT_RESET'                BACnetConstructedDataTimeOfStrikeCountReset
             [simple   BACnetDateTime                                        timeOfStrikeCountReset                      ]
         ]
-        [*, 'TIME_SYNCHRONIZATION_INTERVAL'           BACnetConstructedDataTimeSynchronizationInterval
+        [*, 'TIME_SYNCHRONIZATION_INTERVAL', '2'        BACnetConstructedDataTimeSynchronizationInterval
             [simple   BACnetApplicationTagUnsignedInteger                               timeSynchronization             ]
         ]
-        [*, 'TIME_SYNCHRONIZATION_RECIPIENTS'         BACnetConstructedDataTimeSynchronizationRecipients
+        [*, 'TIME_SYNCHRONIZATION_RECIPIENTS'           BACnetConstructedDataTimeSynchronizationRecipients
             [array    BACnetRecipient
                             timeSynchronizationRecipients
                                     terminated
                                     'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, tagNumber)'    ]
         ]
-        [*, 'TIMER_RUNNING'                           BACnetConstructedDataTimerRunning
+        [*, 'TIMER_RUNNING', '1'                        BACnetConstructedDataTimerRunning
             [simple   BACnetApplicationTagBoolean                               timerRunning                            ]
         ]
-        [*, 'TIMER_STATE'                             BACnetConstructedDataTimerState
+        [*, 'TIMER_STATE', '9'                          BACnetConstructedDataTimerState
             [simple  BACnetTimerStateTagged('0', 'TagClass.APPLICATION_TAGS')   timerState] 
         ]
-        [*, 'TOTAL_RECORD_COUNT'                      BACnetConstructedDataTotalRecordCount
+        [*, 'TOTAL_RECORD_COUNT', '2'                   BACnetConstructedDataTotalRecordCount
             [simple   BACnetApplicationTagUnsignedInteger                     totalRecordCount                          ]
         ]
-        [*, 'TRACE_FLAG'                              BACnetConstructedDataTraceFlag
+        [*, 'TRACE_FLAG', '1'                           BACnetConstructedDataTraceFlag
             [simple   BACnetApplicationTagBoolean                               traceFlag                               ]
         ]
-        ['LIGHTING_OUTPUT','TRACKING_VALUE'  BACnetConstructedDataLightingOutputTrackingValue
+        ['LIGHTING_OUTPUT','TRACKING_VALUE', '4'        BACnetConstructedDataLightingOutputTrackingValue
             [simple   BACnetApplicationTagReal                                  trackingValue                           ]
         ]
-        ['LIGHTING_OUTPUT','TRACKING_VALUE'  BACnetConstructedDataLightingOutputTrackingValue
+        ['LIGHTING_OUTPUT','TRACKING_VALUE', '4'        BACnetConstructedDataLightingOutputTrackingValue
             [simple   BACnetApplicationTagReal                                  trackingValue                           ]
         ]
-        [*, 'TRACKING_VALUE'                          BACnetConstructedDataTrackingValue
+        [*, 'TRACKING_VALUE', '9'                       BACnetConstructedDataTrackingValue
             [simple   BACnetLifeSafetyStateTagged('0', 'TagClass.APPLICATION_TAGS') trackingValue                       ]
         ]
-        [*, 'TRANSACTION_NOTIFICATION_CLASS'          BACnetConstructedDataTransactionNotificationClass
+        [*, 'TRANSACTION_NOTIFICATION_CLASS', '2'       BACnetConstructedDataTransactionNotificationClass
             [simple BACnetApplicationTagUnsignedInteger                     transactionNotificationClass                ]
         ]
-        [*, 'TRANSITION'                              BACnetConstructedDataTransition
+        [*, 'TRANSITION', '9'                           BACnetConstructedDataTransition
             [simple BACnetLightingTransitionTagged('0', 'TagClass.APPLICATION_TAGS')                    transition      ]
         ]
-        [*, 'TRIGGER'                                 BACnetConstructedDataTrigger
+        [*, 'TRIGGER', '1'                              BACnetConstructedDataTrigger
             [simple BACnetApplicationTagBoolean                               trigger                                   ]
         ]
-        [*, 'UNITS'                                   BACnetConstructedDataUnits
+        [*, 'UNITS', '9'                                BACnetConstructedDataUnits
             [simple   BACnetEngineeringUnitsTagged('0', 'TagClass.APPLICATION_TAGS')                    units           ]
         ]
-        [*, 'UPDATE_INTERVAL'                         BACnetConstructedDataUpdateInterval
+        [*, 'UPDATE_INTERVAL', '2'                      BACnetConstructedDataUpdateInterval
             [simple   BACnetApplicationTagUnsignedInteger                               updateInterval                  ]
         ]
-        [*, 'UPDATE_KEY_SET_TIMEOUT'                  BACnetConstructedDataUpdateKeySetTimeout
+        [*, 'UPDATE_KEY_SET_TIMEOUT', '2'               BACnetConstructedDataUpdateKeySetTimeout
             [simple BACnetApplicationTagUnsignedInteger                       updateKeySetTimeout                       ]
         ]
-        ['CREDENTIAL_DATA_INPUT', 'UPDATE_TIME'       BACnetConstructedDataCredentialDataInputUpdateTime
+        ['CREDENTIAL_DATA_INPUT', 'UPDATE_TIME'         BACnetConstructedDataCredentialDataInputUpdateTime
             [simple   BACnetTimeStamp                                          updateTime                               ]
         ]
-        [*, 'UPDATE_TIME'                             BACnetConstructedDataUpdateTime
+        [*, 'UPDATE_TIME'                               BACnetConstructedDataUpdateTime
             [simple   BACnetDateTime                                          updateTime                                ]
         ]
-        [*, 'USER_EXTERNAL_IDENTIFIER'                BACnetConstructedDataUserExternalIdentifier
+        [*, 'USER_EXTERNAL_IDENTIFIER', '7'             BACnetConstructedDataUserExternalIdentifier
             [simple   BACnetApplicationTagCharacterString   userExternalIdentifier                                      ]
         ]
-        [*, 'USER_INFORMATION_REFERENCE'              BACnetConstructedDataUserInformationReference
+        [*, 'USER_INFORMATION_REFERENCE', '7'           BACnetConstructedDataUserInformationReference
             [simple   BACnetApplicationTagCharacterString   userInformationReference                                    ]
         ]
-        [*, 'USER_NAME'                               BACnetConstructedDataUserName
+        [*, 'USER_NAME', '7'                            BACnetConstructedDataUserName
             [simple   BACnetApplicationTagCharacterString   userName                                                    ]
         ]
-        [*, 'USER_TYPE'                               BACnetConstructedDataUserType
+        [*, 'USER_TYPE', '9'                            BACnetConstructedDataUserType
             [simple   BACnetAccessUserTypeTagged('0', 'TagClass.APPLICATION_TAGS')      userType                        ]
         ]
-        [*, 'USES_REMAINING'                          BACnetConstructedDataUsesRemaining
+        [*, 'USES_REMAINING', '3'                       BACnetConstructedDataUsesRemaining
             [simple   BACnetApplicationTagSignedInteger                     usesRemaining                               ]
         ]
-        [*, 'UTC_OFFSET'                              BACnetConstructedDataUTCOffset
+        [*, 'UTC_OFFSET', '3'                           BACnetConstructedDataUTCOffset
             [simple   BACnetApplicationTagSignedInteger                     utcOffset                                   ]
         ]
-        [*, 'UTC_TIME_SYNCHRONIZATION_RECIPIENTS'     BACnetConstructedDataUTCTimeSynchronizationRecipients
+        [*, 'UTC_TIME_SYNCHRONIZATION_RECIPIENTS'       BACnetConstructedDataUTCTimeSynchronizationRecipients
             [array    BACnetRecipient
                                 utcTimeSynchronizationRecipients
                                         terminated
                                         'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, tagNumber)']
         ]
-        [*, 'VALID_SAMPLES'                           BACnetConstructedDataValidSamples
+        [*, 'VALID_SAMPLES', '2'                        BACnetConstructedDataValidSamples
             [simple   BACnetApplicationTagUnsignedInteger                               validSamples                    ]
         ]
-        [*, 'VALUE_BEFORE_CHANGE'                     BACnetConstructedDataValueBeforeChange
+        [*, 'VALUE_BEFORE_CHANGE', '2'                  BACnetConstructedDataValueBeforeChange
             [simple   BACnetApplicationTagUnsignedInteger                               valuesBeforeChange              ]
         ]
-        [*, 'VALUE_CHANGE_TIME'                       BACnetConstructedDataValueChangeTime
+        [*, 'VALUE_CHANGE_TIME'                         BACnetConstructedDataValueChangeTime
             [simple   BACnetDateTime                                        valueChangeTime                             ]
         ]
-        [*, 'VALUE_SET'                               BACnetConstructedDataValueSet
+        [*, 'VALUE_SET', '2'                            BACnetConstructedDataValueSet
             [simple   BACnetApplicationTagUnsignedInteger                               valueSet                        ]
         ]
-        [*, 'VALUE_SOURCE'                            BACnetConstructedDataValueSource
+        [*, 'VALUE_SOURCE'                              BACnetConstructedDataValueSource
             [simple   BACnetValueSource                 valueSource                                                     ]
         ]
-        [*, 'VALUE_SOURCE_ARRAY'                      BACnetConstructedDataValueSourceArray
+        [*, 'VALUE_SOURCE_ARRAY'                        BACnetConstructedDataValueSourceArray
             [array    BACnetValueSource
                                 vtClassesSupported
                                         terminated
                                         'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, tagNumber)']
         ]
-        [*, 'VARIANCE_VALUE'                          BACnetConstructedDataVarianceValue
+        [*, 'VARIANCE_VALUE', '4'                       BACnetConstructedDataVarianceValue
             [simple BACnetApplicationTagReal                                varianceValue                               ]
         ]
-        [*, 'VENDOR_IDENTIFIER'                       BACnetConstructedDataVendorIdentifier
+        // Note: checking 2 here is no accident as vendor-id is usually represented by unsigned not enumerated...
+        //       the enum is a addition from plc4x
+        [*, 'VENDOR_IDENTIFIER', '2'                    BACnetConstructedDataVendorIdentifier
             [simple   BACnetVendorIdTagged('0', 'TagClass.APPLICATION_TAGS') vendorIdentifier                           ]
         ]
-        [*, 'VENDOR_NAME'                             BACnetConstructedDataVendorName
+        [*, 'VENDOR_NAME', '7'                          BACnetConstructedDataVendorName
            [simple   BACnetApplicationTagCharacterString    vendorName                                                  ]
         ]
-        [*, 'VERIFICATION_TIME'                       BACnetConstructedDataVerificationTime
+        [*, 'VERIFICATION_TIME', '3'                    BACnetConstructedDataVerificationTime
             [simple   BACnetApplicationTagSignedInteger                     verificationTime                            ]
         ]
-        [*, 'VIRTUAL_MAC_ADDRESS_TABLE'               BACnetConstructedDataVirtualMACAddressTable
+        [*, 'VIRTUAL_MAC_ADDRESS_TABLE'                 BACnetConstructedDataVirtualMACAddressTable
             [array    BACnetVMACEntry
                                 virtualMacAddressTable
                                     terminated
                                     'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, tagNumber)'    ]
         ]
-        [*, 'VT_CLASSES_SUPPORTED'                    BACnetConstructedDataVTClassesSupported
+        [*, 'VT_CLASSES_SUPPORTED', '9'                 BACnetConstructedDataVTClassesSupported
             [array    BACnetVTClassTagged('0', 'TagClass.APPLICATION_TAGS')
                                 vtClassesSupported
                                         terminated
                                         'STATIC_CALL("isBACnetConstructedDataClosingTag", readBuffer, false, tagNumber)']
         ]
-        [*, 'WEEKLY_SCHEDULE'                         BACnetConstructedDataWeeklySchedule
+        [*, 'WEEKLY_SCHEDULE'                           BACnetConstructedDataWeeklySchedule
             [array    BACnetDailySchedule
                                 weeklySchedule
                                     terminated
@@ -4618,16 +4620,16 @@
             // TODO: check if we have an array index... in this case it can be below 7... till then we deactivate this check
             //[validation 'COUNT(weeklySchedule) == 7' "weeklySchedule should have exactly 7 values"                      ]
         ]
-        [*, 'WINDOW_INTERVAL'                         BACnetConstructedDataWindowInterval
+        [*, 'WINDOW_INTERVAL', '2'                      BACnetConstructedDataWindowInterval
             [simple   BACnetApplicationTagUnsignedInteger                               windowInterval                  ]
         ]
-        [*, 'WINDOW_SAMPLES'                          BACnetConstructedDataWindowSamples
+        [*, 'WINDOW_SAMPLES', '2'                       BACnetConstructedDataWindowSamples
             [simple   BACnetApplicationTagUnsignedInteger                               windowSamples                   ]
         ]
-        [*, 'WRITE_STATUS'                            BACnetConstructedDataWriteStatus
+        [*, 'WRITE_STATUS', '9'                         BACnetConstructedDataWriteStatus
             [simple   BACnetWriteStatusTagged('0', 'TagClass.APPLICATION_TAGS') writeStatus                             ]
         ]
-        [*, 'ZONE_FROM'                               BACnetConstructedDataZoneFrom
+        [*, 'ZONE_FROM'                                 BACnetConstructedDataZoneFrom
             [simple   BACnetDeviceObjectReference       zoneFrom                                                        ]
         ]
         [*, 'ZONE_MEMBERS'                              BACnetConstructedDataZoneMembers