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/05/19 17:43:38 UTC

[plc4x] branch develop updated: refactor(bacnet): major rework the way enums are handled

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 d0255f4288 refactor(bacnet): major rework the way enums are handled
d0255f4288 is described below

commit d0255f42889ad152af4c304caf2284a97a1c729c
Author: Sebastian Rühl <sr...@apache.org>
AuthorDate: Thu May 19 19:43:30 2022 +0200

    refactor(bacnet): major rework the way enums are handled
    
    + streamlined handling of enums and added proprietary reading where needed
---
 .../templates/go/complex-type-template.go.ftlh     |   2 +-
 .../resources/templates/go/enum-template.go.ftlh   |   1 +
 .../templates/java/complex-type-template.java.ftlh |   4 +-
 .../mspec/parser/MessageFormatListener.java        |   8 +-
 .../protocols/bacnet/ParserSerializerTestsuite.xml | 968 +++++++--------------
 .../plc4go/ads/readwrite/model/AdsDataType.go      |   1 +
 .../plc4go/ads/readwrite/model/CommandId.go        |   1 +
 .../ads/readwrite/model/ReservedIndexGroups.go     |   1 +
 .../plc4go/ads/readwrite/model/ReturnCode.go       |   1 +
 .../plc4go/bacnetip/readwrite/ParserHelper.go      | 126 ++-
 .../plc4go/bacnetip/readwrite/XmlParserHelper.go   | 144 ++-
 .../plc4go/bacnetip/readwrite/model/APDUAbort.go   | 105 +--
 .../plc4go/bacnetip/readwrite/model/APDUReject.go  | 105 +--
 .../plc4go/bacnetip/readwrite/model/AbortReason.go |   9 +
 ...etReliabilityTagged.go => AbortReasonTagged.go} | 118 +--
 .../readwrite/model/BACnetActionCommand.go         |  14 +-
 .../readwrite/model/BACnetCharacterEncoding.go     |   1 +
 .../model/BACnetConfirmedServiceChoice.go          |   1 +
 ...ACnetConfirmedServiceRequestAcknowledgeAlarm.go |  14 +-
 .../BACnetConfirmedServiceRequestAddListElement.go |  16 +-
 ...rmedServiceRequestConfirmedEventNotification.go |  54 +-
 ...firmedServiceRequestConfirmedPrivateTransfer.go |   2 +-
 ...rmedServiceRequestDeviceCommunicationControl.go |  14 +-
 .../BACnetConfirmedServiceRequestReadProperty.go   |  14 +-
 .../BACnetConfirmedServiceRequestReadRange.go      |  14 +-
 ...netConfirmedServiceRequestReinitializeDevice.go |  14 +-
 ...erviceRequestReinitializeDeviceEnableDisable.go | 264 ++----
 ...RequestReinitializeDeviceEnableDisableTagged.go | 202 +++++
 ...ReinitializeDeviceReinitializedStateOfDevice.go | 178 ++++
 ...alizeDeviceReinitializedStateOfDeviceTagged.go} |  72 +-
 ...CnetConfirmedServiceRequestRemoveListElement.go |  16 +-
 .../BACnetConfirmedServiceRequestWriteProperty.go  |  16 +-
 .../readwrite/model/BACnetConstructedData.go       |  61 +-
 .../model/BACnetConstructedDataAcceptedModes.go    |  25 +-
 .../BACnetConstructedDataAcceptedModesEntry.go     | 220 -----
 .../readwrite/model/BACnetConstructedDataAction.go |  13 +-
 .../model/BACnetConstructedDataElement.go          |  16 +-
 .../model/BACnetConstructedDataEventTimestamps.go  |  13 +-
 .../BACnetConstructedDataLifeSafetyAlarmValues.go  |  25 +-
 ...netConstructedDataLifeSafetyPointAlarmValues.go |  25 +-
 ...netConstructedDataLifeSafetyPointFaultValues.go |  25 +-
 .../BACnetConstructedDataLifeSafetyStateEntry.go   | 220 -----
 .../BACnetConstructedDataLifeSafetyZoneMemberOf.go | 223 -----
 .../BACnetConstructedDataLifeSafetyZoneMembers.go  | 223 -----
 ...onstructedDataListOfObjectPropertyReferences.go |  13 +-
 .../model/BACnetConstructedDataLoopAction.go       |  13 +-
 .../model/BACnetConstructedDataMemberOf.go         |  13 +-
 .../model/BACnetConstructedDataReliability.go      |  15 +-
 .../model/BACnetConstructedDataUnspecified.go      |  13 +-
 .../model/BACnetConstructedDataZoneMembers.go      |  13 +-
 .../bacnetip/readwrite/model/BACnetContextTag.go   |  10 -
 .../readwrite/model/BACnetContextTagDeviceState.go | 212 -----
 .../readwrite/model/BACnetContextTagEventState.go  | 252 ------
 .../readwrite/model/BACnetContextTagEventType.go   | 252 ------
 .../readwrite/model/BACnetContextTagNotifyType.go  | 213 -----
 .../model/BACnetContextTagPropertyIdentifier.go    | 252 ------
 .../bacnetip/readwrite/model/BACnetDataType.go     |  73 +-
 .../model/BACnetDeviceObjectPropertyReference.go   |  12 +-
 .../bacnetip/readwrite/model/BACnetEventState.go   |   1 +
 ...iabilityTagged.go => BACnetEventStateTagged.go} |  72 +-
 .../bacnetip/readwrite/model/BACnetEventSummary.go |  22 +-
 .../bacnetip/readwrite/model/BACnetEventType.go    |   7 +-
 ...liabilityTagged.go => BACnetEventTypeTagged.go} |  72 +-
 .../readwrite/model/BACnetLifeSafetyMode.go        |   9 +
 ...lityTagged.go => BACnetLifeSafetyModeTagged.go} |  72 +-
 .../readwrite/model/BACnetLifeSafetyState.go       |  57 +-
 ...ityTagged.go => BACnetLifeSafetyStateTagged.go} |  72 +-
 .../bacnetip/readwrite/model/BACnetNetworkType.go  |  37 +-
 ...abilityTagged.go => BACnetNetworkTypeTagged.go} |  70 +-
 .../bacnetip/readwrite/model/BACnetNodeType.go     |   1 +
 .../BACnetNotificationParametersCommandFailure.go  |   4 +-
 .../bacnetip/readwrite/model/BACnetNotifyType.go   |  15 +-
 ...iabilityTagged.go => BACnetNotifyTypeTagged.go} |  72 +-
 .../model/BACnetObjectPropertyReference.go         |  12 +-
 .../bacnetip/readwrite/model/BACnetObjectType.go   |   1 +
 .../readwrite/model/BACnetPropertyIdentifier.go    |   1 +
 ...Tagged.go => BACnetPropertyIdentifierTagged.go} |  72 +-
 .../readwrite/model/BACnetPropertyReference.go     |  12 +-
 .../readwrite/model/BACnetPropertyStates.go        |   2 +
 ...ility.go => BACnetPropertyStatesNetworkType.go} |  98 +--
 .../model/BACnetPropertyStatesReliability.go       |   2 +-
 .../readwrite/model/BACnetPropertyValue.go         |  14 +-
 .../model/BACnetPropertyWriteDefinition.go         |  14 +-
 .../readwrite/model/BACnetReadAccessProperty.go    |  14 +-
 .../model/BACnetReadAccessPropertyReadResult.go    |  14 +-
 .../bacnetip/readwrite/model/BACnetReliability.go  |   1 +
 .../readwrite/model/BACnetReliabilityTagged.go     |  14 +-
 .../bacnetip/readwrite/model/BACnetSegmentation.go | 265 ++----
 ...bilityTagged.go => BACnetSegmentationTagged.go} |  72 +-
 .../BACnetServiceAckConfirmedPrivateTransfer.go    |   2 +-
 .../model/BACnetServiceAckReadProperty.go          |  16 +-
 .../readwrite/model/BACnetServiceAckReadRange.go   |  16 +-
 .../model/BACnetUnconfirmedServiceChoice.go        |   1 +
 .../model/BACnetUnconfirmedServiceRequestIAm.go    |  14 +-
 ...edServiceRequestUnconfirmedEventNotification.go |  54 +-
 ...rmedServiceRequestUnconfirmedPrivateTransfer.go |   2 +-
 .../bacnetip/readwrite/model/BVLCResultCode.go     |   1 +
 .../model/ConfirmedPrivateTransferError.go         |   2 +-
 .../plc4go/bacnetip/readwrite/model/Error.go       | 193 +---
 .../plc4go/bacnetip/readwrite/model/ErrorClass.go  |  25 +-
 ...netReliabilityTagged.go => ErrorClassTagged.go} |  72 +-
 .../plc4go/bacnetip/readwrite/model/ErrorCode.go   |   9 +
 ...CnetReliabilityTagged.go => ErrorCodeTagged.go} |  72 +-
 .../readwrite/model/ListOfCovNotificationsValue.go |  14 +-
 .../readwrite/model/MaxApduLengthAccepted.go       |   1 +
 .../readwrite/model/MaxSegmentsAccepted.go         |   1 +
 .../model/NLMRejectRouterToNetworkRejectReason.go  |   1 +
 .../readwrite/model/NPDUNetworkPriority.go         |   1 +
 .../bacnetip/readwrite/model/RejectReason.go       |   9 +
 ...tReliabilityTagged.go => RejectReasonTagged.go} | 118 +--
 .../bacnetip/readwrite/model/StaticHelper.go       | 146 ++--
 .../plc4go/bacnetip/readwrite/model/TagClass.go    |   1 +
 .../plc4go/cbus/readwrite/model/ApplicationId.go   |   1 +
 .../cbus/readwrite/model/ApplicationIdContainer.go |   1 +
 .../plc4go/cbus/readwrite/model/Attribute.go       |   1 +
 .../plc4go/cbus/readwrite/model/CALCommandType.go  |   1 +
 .../readwrite/model/CALCommandTypeContainer.go     |   1 +
 .../plc4go/cbus/readwrite/model/ChannelStatus.go   |   1 +
 .../cbus/readwrite/model/DestinationAddressType.go |   1 +
 .../plc4go/cbus/readwrite/model/GAVState.go        |   1 +
 .../cbus/readwrite/model/LightingCompatible.go     |   1 +
 .../plc4go/cbus/readwrite/model/PriorityClass.go   |   1 +
 .../plc4go/cbus/readwrite/model/RouteType.go       |   1 +
 .../plc4go/cbus/readwrite/model/SALCommandType.go  |   1 +
 .../readwrite/model/SALCommandTypeContainer.go     |   1 +
 .../plc4go/cbus/readwrite/model/StatusCoding.go    |   1 +
 .../plc4go/cbus/readwrite/model/UnitStatus.go      |   1 +
 .../plc4go/eip/readwrite/model/CIPDataTypeCode.go  |   1 +
 .../plc4go/eip/readwrite/model/EiPCommand.go       |   1 +
 .../plc4go/firmata/readwrite/model/PinMode.go      |   1 +
 .../plc4go/knxnetip/readwrite/model/AccessLevel.go |   1 +
 .../knxnetip/readwrite/model/CEMIPriority.go       |   1 +
 .../readwrite/model/ComObjectTableAddresses.go     |   1 +
 .../knxnetip/readwrite/model/ComObjectValueType.go |   1 +
 .../knxnetip/readwrite/model/DeviceDescriptor.go   |   1 +
 .../readwrite/model/DeviceDescriptorMediumType.go  |   1 +
 .../knxnetip/readwrite/model/FirmwareType.go       |   1 +
 .../knxnetip/readwrite/model/HostProtocolCode.go   |   1 +
 .../readwrite/model/KnxDatapointMainType.go        |   1 +
 .../knxnetip/readwrite/model/KnxDatapointType.go   |   1 +
 .../readwrite/model/KnxInterfaceObjectProperty.go  |   1 +
 .../readwrite/model/KnxInterfaceObjectType.go      |   1 +
 .../plc4go/knxnetip/readwrite/model/KnxLayer.go    |   1 +
 .../knxnetip/readwrite/model/KnxManufacturer.go    |   1 +
 .../plc4go/knxnetip/readwrite/model/KnxMedium.go   |   1 +
 .../readwrite/model/KnxPropertyDataType.go         |   1 +
 .../plc4go/knxnetip/readwrite/model/Status.go      |   1 +
 .../readwrite/model/SupportedPhysicalMedia.go      |   1 +
 .../plc4go/modbus/readwrite/model/DriverType.go    |   1 +
 .../modbus/readwrite/model/ModbusDataType.go       |   1 +
 .../ModbusDeviceInformationConformityLevel.go      |   1 +
 .../model/ModbusDeviceInformationLevel.go          |   1 +
 .../model/ModbusDeviceInformationMoreFollows.go    |   1 +
 .../modbus/readwrite/model/ModbusErrorCode.go      |   1 +
 .../plc4go/s7/readwrite/model/AlarmStateType.go    |   1 +
 .../plc4go/s7/readwrite/model/AlarmType.go         |   1 +
 .../plc4go/s7/readwrite/model/COTPProtocolClass.go |   1 +
 .../plc4go/s7/readwrite/model/COTPTpduSize.go      |   1 +
 .../s7/readwrite/model/CpuSubscribeEvents.go       |   1 +
 .../s7/readwrite/model/DataTransportErrorCode.go   |   1 +
 .../plc4go/s7/readwrite/model/DataTransportSize.go |   1 +
 .../plc4go/s7/readwrite/model/DeviceGroup.go       |   1 +
 .../plc4go/s7/readwrite/model/EventType.go         |   1 +
 .../plc4go/s7/readwrite/model/MemoryArea.go        |   1 +
 .../s7/readwrite/model/ModeTransitionType.go       |   1 +
 .../plc4go/s7/readwrite/model/QueryType.go         |   1 +
 .../plc4go/s7/readwrite/model/SyntaxIdType.go      |   1 +
 .../s7/readwrite/model/SzlModuleTypeClass.go       |   1 +
 .../plc4go/s7/readwrite/model/SzlSublist.go        |   1 +
 .../plc4go/s7/readwrite/model/TransportSize.go     |   1 +
 .../readwrite/model/SimulatedDataTypeSizes.go      |   1 +
 .../bacnetip/protocol/BacNetIpProtocolLogic.java   |   4 +-
 .../bacnetip/readwrite/utils/StaticHelper.java     | 197 +++--
 .../plc4x/java/bacnetip/RandomPackagesTest.java    | 438 +++++-----
 .../resources/protocols/bacnetip/bacnetip.mspec    | 674 +++++++++-----
 .../protocols/bacnet/ParserSerializerTestsuite.xml | 968 +++++++--------------
 176 files changed, 3543 insertions(+), 5704 deletions(-)

diff --git a/code-generation/language-go/src/main/resources/templates/go/complex-type-template.go.ftlh b/code-generation/language-go/src/main/resources/templates/go/complex-type-template.go.ftlh
index 919ea44183..e6bd4982e0 100644
--- a/code-generation/language-go/src/main/resources/templates/go/complex-type-template.go.ftlh
+++ b/code-generation/language-go/src/main/resources/templates/go/complex-type-template.go.ftlh
@@ -1367,7 +1367,7 @@ func ${type.name}Parse(readBuffer utils.ReadBuffer<#if hasParserArguments>, ${pa
 	if (!(${helper.toParseExpression(validationField, helper.boolTypeReference, validationField.getValidationExpression(), null)})) {
 		<#assign errorType="ParseValidationError">
 		<#if !validationField.shouldFail()><#assign errorType="ParseAssertError"></#if>
-		return nil, utils.${errorType}{${validationField.getDescription().orElse("Validation failed")}}
+		return nil, utils.${errorType}{${validationField.getDescription().orElse("\"Validation failed\"")}}
 	}
                 <#break>
             <#case "peek">
diff --git a/code-generation/language-go/src/main/resources/templates/go/enum-template.go.ftlh b/code-generation/language-go/src/main/resources/templates/go/enum-template.go.ftlh
index af345c3982..9593df8952 100644
--- a/code-generation/language-go/src/main/resources/templates/go/enum-template.go.ftlh
+++ b/code-generation/language-go/src/main/resources/templates/go/enum-template.go.ftlh
@@ -56,6 +56,7 @@ import (
 // Code generated by code-generation. DO NOT EDIT.
 
 <#assign baseType><#if type.type.isPresent()>${helper.getLanguageTypeNameForTypeReference(type.type.orElseThrow())}<#else>string</#if></#assign>
+// ${type.name} is an enum
 type ${type.name} ${baseType}
 
 type I${type.name} interface {
diff --git a/code-generation/language-java/src/main/resources/templates/java/complex-type-template.java.ftlh b/code-generation/language-java/src/main/resources/templates/java/complex-type-template.java.ftlh
index 2743265f37..af3e0dd99b 100644
--- a/code-generation/language-java/src/main/resources/templates/java/complex-type-template.java.ftlh
+++ b/code-generation/language-java/src/main/resources/templates/java/complex-type-template.java.ftlh
@@ -543,7 +543,7 @@ public<#if type.isDiscriminatedParentTypeDefinition()> abstract</#if> class ${ty
         // Unknown field
         lengthInBits += ${simpleTypeReference.sizeInBits};
     <#case "virtual">
-        <#assign virtualField = field>
+        <#assign virtualField = field.asVirtualField().orElseThrow()>
 
         // A virtual field doesn't have any in- or output.
         <#break>
@@ -762,7 +762,7 @@ public<#if type.isDiscriminatedParentTypeDefinition()> abstract</#if> class ${ty
                 if (!(${helper.toParseExpression(validationField, helper.boolTypeReference, validationField.getValidationExpression(), null)})) {
                     <#assign errorType="ParseValidationException">
                     <#if !validationField.shouldFail()><#assign errorType="ParseAssertException"></#if>
-                    throw new ${errorType}(${validationField.getDescription().orElse("Validation failed")});
+                    throw new ${errorType}(${validationField.getDescription().orElse("\"Validation failed\"")});
                 }
                 <#break>
             <#case "peek">
diff --git a/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/parser/MessageFormatListener.java b/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/parser/MessageFormatListener.java
index 579e6e7b11..f6882ee125 100644
--- a/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/parser/MessageFormatListener.java
+++ b/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/parser/MessageFormatListener.java
@@ -481,10 +481,14 @@ public class MessageFormatListener extends MSpecBaseListener implements LazyType
     public void enterValidationField(MSpecParser.ValidationFieldContext ctx) {
         Term validationExpression = getExpressionTerm(ctx.validationExpression);
         boolean shouldFail = true;
-        if (ctx.shouldFail!=null){
+        if (ctx.shouldFail != null) {
             shouldFail = "true".equalsIgnoreCase(ctx.shouldFail.getText());
         }
-        Field field = new DefaultValidationField(validationExpression, ctx.description.getText(), shouldFail);
+        String description = null;
+        if (ctx.description != null) {
+            description = ctx.description.getText();
+        }
+        Field field = new DefaultValidationField(validationExpression, description, shouldFail);
         if (parserContexts.peek() != null) {
             parserContexts.peek().add(field);
         }
diff --git a/plc4go/assets/testing/protocols/bacnet/ParserSerializerTestsuite.xml b/plc4go/assets/testing/protocols/bacnet/ParserSerializerTestsuite.xml
index c99548c36a..ec0c236e67 100644
--- a/plc4go/assets/testing/protocols/bacnet/ParserSerializerTestsuite.xml
+++ b/plc4go/assets/testing/protocols/bacnet/ParserSerializerTestsuite.xml
@@ -763,28 +763,18 @@
                             </BACnetApplicationTag>
                           </maximumApduLengthAcceptedLength>
                           <segmentationSupported>
-                            <BACnetSegmentation>
-                              <rawData>
-                                <BACnetApplicationTag>
-                                  <header>
-                                    <BACnetTagHeader>
-                                      <tagNumber dataType="uint" bitLength="4">9</tagNumber>
-                                      <tagClass>
-                                        <TagClass dataType="uint" bitLength="1" stringRepresentation="APPLICATION_TAGS">0</TagClass>
-                                      </tagClass>
-                                      <lengthValueType dataType="uint" bitLength="3">1</lengthValueType>
-                                    </BACnetTagHeader>
-                                  </header>
-                                  <BACnetApplicationTagEnumerated>
-                                    <payload>
-                                      <BACnetTagPayloadEnumerated>
-                                        <data dataType="byte" bitLength="8">0x00</data>
-                                      </BACnetTagPayloadEnumerated>
-                                    </payload>
-                                  </BACnetApplicationTagEnumerated>
-                                </BACnetApplicationTag>
-                              </rawData>
-                            </BACnetSegmentation>
+                            <BACnetSegmentationTagged>
+                              <header>
+                                <BACnetTagHeader>
+                                  <tagNumber dataType="uint" bitLength="4">9</tagNumber>
+                                  <tagClass>
+                                    <TagClass dataType="uint" bitLength="1" stringRepresentation="APPLICATION_TAGS">0</TagClass>
+                                  </tagClass>
+                                  <lengthValueType dataType="uint" bitLength="3">1</lengthValueType>
+                                </BACnetTagHeader>
+                              </header>
+                              <value dataType="uint" bitLength="8" stringRepresentation="SEGMENTED_BOTH">0</value>
+                            </BACnetSegmentationTagged>
                           </segmentationSupported>
                           <vendorId>
                             <BACnetApplicationTag>
@@ -3126,28 +3116,18 @@ make -f wp.mak clean</value>
                             </BACnetApplicationTag>
                           </maximumApduLengthAcceptedLength>
                           <segmentationSupported>
-                            <BACnetSegmentation>
-                              <rawData>
-                                <BACnetApplicationTag>
-                                  <header>
-                                    <BACnetTagHeader>
-                                      <tagNumber dataType="uint" bitLength="4">9</tagNumber>
-                                      <tagClass>
-                                        <TagClass dataType="uint" bitLength="1" stringRepresentation="APPLICATION_TAGS">0</TagClass>
-                                      </tagClass>
-                                      <lengthValueType dataType="uint" bitLength="3">1</lengthValueType>
-                                    </BACnetTagHeader>
-                                  </header>
-                                  <BACnetApplicationTagEnumerated>
-                                    <payload>
-                                      <BACnetTagPayloadEnumerated>
-                                        <data dataType="byte" bitLength="8">0x00</data>
-                                      </BACnetTagPayloadEnumerated>
-                                    </payload>
-                                  </BACnetApplicationTagEnumerated>
-                                </BACnetApplicationTag>
-                              </rawData>
-                            </BACnetSegmentation>
+                            <BACnetSegmentationTagged>
+                              <header>
+                                <BACnetTagHeader>
+                                  <tagNumber dataType="uint" bitLength="4">9</tagNumber>
+                                  <tagClass>
+                                    <TagClass dataType="uint" bitLength="1" stringRepresentation="APPLICATION_TAGS">0</TagClass>
+                                  </tagClass>
+                                  <lengthValueType dataType="uint" bitLength="3">1</lengthValueType>
+                                </BACnetTagHeader>
+                              </header>
+                              <value dataType="uint" bitLength="8" stringRepresentation="SEGMENTED_BOTH">0</value>
+                            </BACnetSegmentationTagged>
                           </segmentationSupported>
                           <vendorId>
                             <BACnetApplicationTag>
@@ -3238,7 +3218,7 @@ make -f wp.mak clean</value>
                         </serviceChoice>
                         <BACnetConfirmedServiceRequestReinitializeDevice>
                           <reinitializedStateOfDevice>
-                            <BACnetContextTag>
+                            <BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDeviceTagged>
                               <header>
                                 <BACnetTagHeader>
                                   <tagNumber dataType="uint" bitLength="4">0</tagNumber>
@@ -3248,12 +3228,8 @@ make -f wp.mak clean</value>
                                   <lengthValueType dataType="uint" bitLength="3">1</lengthValueType>
                                 </BACnetTagHeader>
                               </header>
-                              <BACnetContextTagDeviceState>
-                                <state>
-                                  <BACnetDeviceState dataType="uint" bitLength="8" stringRepresentation="COLDSTART">0</BACnetDeviceState>
-                                </state>
-                              </BACnetContextTagDeviceState>
-                            </BACnetContextTag>
+                              <value dataType="uint" bitLength="8" stringRepresentation="COLDSTART">0</value>
+                            </BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDeviceTagged>
                           </reinitializedStateOfDevice>
                           <password>
                             <BACnetContextTag>
@@ -3340,8 +3316,8 @@ make -f wp.mak clean</value>
                         <BACnetErrorGeneral>
                           <error>
                             <Error>
-                              <rawErrorClass>
-                                <BACnetApplicationTag>
+                              <errorClass>
+                                <ErrorClassTagged>
                                   <header>
                                     <BACnetTagHeader>
                                       <tagNumber dataType="uint" bitLength="4">9</tagNumber>
@@ -3351,17 +3327,11 @@ make -f wp.mak clean</value>
                                       <lengthValueType dataType="uint" bitLength="3">1</lengthValueType>
                                     </BACnetTagHeader>
                                   </header>
-                                  <BACnetApplicationTagEnumerated>
-                                    <payload>
-                                      <BACnetTagPayloadEnumerated>
-                                        <data dataType="byte" bitLength="8">0x05</data>
-                                      </BACnetTagPayloadEnumerated>
-                                    </payload>
-                                  </BACnetApplicationTagEnumerated>
-                                </BACnetApplicationTag>
-                              </rawErrorClass>
-                              <rawErrorCode>
-                                <BACnetApplicationTag>
+                                  <value dataType="uint" bitLength="8" stringRepresentation="SERVICES">5</value>
+                                </ErrorClassTagged>
+                              </errorClass>
+                              <errorCode>
+                                <ErrorCodeTagged>
                                   <header>
                                     <BACnetTagHeader>
                                       <tagNumber dataType="uint" bitLength="4">9</tagNumber>
@@ -3371,15 +3341,9 @@ make -f wp.mak clean</value>
                                       <lengthValueType dataType="uint" bitLength="3">1</lengthValueType>
                                     </BACnetTagHeader>
                                   </header>
-                                  <BACnetApplicationTagEnumerated>
-                                    <payload>
-                                      <BACnetTagPayloadEnumerated>
-                                        <data dataType="byte" bitLength="8">0x1a</data>
-                                      </BACnetTagPayloadEnumerated>
-                                    </payload>
-                                  </BACnetApplicationTagEnumerated>
-                                </BACnetApplicationTag>
-                              </rawErrorCode>
+                                  <value dataType="uint" bitLength="8" stringRepresentation="PASSWORD_FAILURE">26</value>
+                                </ErrorCodeTagged>
+                              </errorCode>
                             </Error>
                           </error>
                         </BACnetErrorGeneral>
@@ -3581,28 +3545,18 @@ make -f wp.mak clean</value>
                             </BACnetApplicationTag>
                           </maximumApduLengthAcceptedLength>
                           <segmentationSupported>
-                            <BACnetSegmentation>
-                              <rawData>
-                                <BACnetApplicationTag>
-                                  <header>
-                                    <BACnetTagHeader>
-                                      <tagNumber dataType="uint" bitLength="4">9</tagNumber>
-                                      <tagClass>
-                                        <TagClass dataType="uint" bitLength="1" stringRepresentation="APPLICATION_TAGS">0</TagClass>
-                                      </tagClass>
-                                      <lengthValueType dataType="uint" bitLength="3">1</lengthValueType>
-                                    </BACnetTagHeader>
-                                  </header>
-                                  <BACnetApplicationTagEnumerated>
-                                    <payload>
-                                      <BACnetTagPayloadEnumerated>
-                                        <data dataType="byte" bitLength="8">0x00</data>
-                                      </BACnetTagPayloadEnumerated>
-                                    </payload>
-                                  </BACnetApplicationTagEnumerated>
-                                </BACnetApplicationTag>
-                              </rawData>
-                            </BACnetSegmentation>
+                            <BACnetSegmentationTagged>
+                              <header>
+                                <BACnetTagHeader>
+                                  <tagNumber dataType="uint" bitLength="4">9</tagNumber>
+                                  <tagClass>
+                                    <TagClass dataType="uint" bitLength="1" stringRepresentation="APPLICATION_TAGS">0</TagClass>
+                                  </tagClass>
+                                  <lengthValueType dataType="uint" bitLength="3">1</lengthValueType>
+                                </BACnetTagHeader>
+                              </header>
+                              <value dataType="uint" bitLength="8" stringRepresentation="SEGMENTED_BOTH">0</value>
+                            </BACnetSegmentationTagged>
                           </segmentationSupported>
                           <vendorId>
                             <BACnetApplicationTag>
@@ -3714,7 +3668,7 @@ make -f wp.mak clean</value>
                             </BACnetContextTag>
                           </objectIdentifier>
                           <propertyIdentifier>
-                            <BACnetContextTag>
+                            <BACnetPropertyIdentifierTagged>
                               <header>
                                 <BACnetTagHeader>
                                   <tagNumber dataType="uint" bitLength="4">1</tagNumber>
@@ -3724,10 +3678,8 @@ make -f wp.mak clean</value>
                                   <lengthValueType dataType="uint" bitLength="3">1</lengthValueType>
                                 </BACnetTagHeader>
                               </header>
-                              <BACnetContextTagPropertyIdentifier>
-                                <propertyIdentifier dataType="uint" bitLength="8" stringRepresentation="PRIORITY_ARRAY">87</propertyIdentifier>
-                              </BACnetContextTagPropertyIdentifier>
-                            </BACnetContextTag>
+                              <value dataType="uint" bitLength="8" stringRepresentation="PRIORITY_ARRAY">87</value>
+                            </BACnetPropertyIdentifierTagged>
                           </propertyIdentifier>
                         </BACnetConfirmedServiceRequestReadProperty>
                       </BACnetConfirmedServiceRequest>
@@ -3790,8 +3742,8 @@ make -f wp.mak clean</value>
                         <BACnetErrorGeneral>
                           <error>
                             <Error>
-                              <rawErrorClass>
-                                <BACnetApplicationTag>
+                              <errorClass>
+                                <ErrorClassTagged>
                                   <header>
                                     <BACnetTagHeader>
                                       <tagNumber dataType="uint" bitLength="4">9</tagNumber>
@@ -3801,17 +3753,11 @@ make -f wp.mak clean</value>
                                       <lengthValueType dataType="uint" bitLength="3">1</lengthValueType>
                                     </BACnetTagHeader>
                                   </header>
-                                  <BACnetApplicationTagEnumerated>
-                                    <payload>
-                                      <BACnetTagPayloadEnumerated>
-                                        <data dataType="byte" bitLength="8">0x02</data>
-                                      </BACnetTagPayloadEnumerated>
-                                    </payload>
-                                  </BACnetApplicationTagEnumerated>
-                                </BACnetApplicationTag>
-                              </rawErrorClass>
-                              <rawErrorCode>
-                                <BACnetApplicationTag>
+                                  <value dataType="uint" bitLength="8" stringRepresentation="PROPERTY">2</value>
+                                </ErrorClassTagged>
+                              </errorClass>
+                              <errorCode>
+                                <ErrorCodeTagged>
                                   <header>
                                     <BACnetTagHeader>
                                       <tagNumber dataType="uint" bitLength="4">9</tagNumber>
@@ -3821,15 +3767,9 @@ make -f wp.mak clean</value>
                                       <lengthValueType dataType="uint" bitLength="3">1</lengthValueType>
                                     </BACnetTagHeader>
                                   </header>
-                                  <BACnetApplicationTagEnumerated>
-                                    <payload>
-                                      <BACnetTagPayloadEnumerated>
-                                        <data dataType="byte" bitLength="8">0x20</data>
-                                      </BACnetTagPayloadEnumerated>
-                                    </payload>
-                                  </BACnetApplicationTagEnumerated>
-                                </BACnetApplicationTag>
-                              </rawErrorCode>
+                                  <value dataType="uint" bitLength="8" stringRepresentation="UNKNOWN_PROPERTY">32</value>
+                                </ErrorCodeTagged>
+                              </errorCode>
                             </Error>
                           </error>
                         </BACnetErrorGeneral>
@@ -4031,28 +3971,18 @@ make -f wp.mak clean</value>
                             </BACnetApplicationTag>
                           </maximumApduLengthAcceptedLength>
                           <segmentationSupported>
-                            <BACnetSegmentation>
-                              <rawData>
-                                <BACnetApplicationTag>
-                                  <header>
-                                    <BACnetTagHeader>
-                                      <tagNumber dataType="uint" bitLength="4">9</tagNumber>
-                                      <tagClass>
-                                        <TagClass dataType="uint" bitLength="1" stringRepresentation="APPLICATION_TAGS">0</TagClass>
-                                      </tagClass>
-                                      <lengthValueType dataType="uint" bitLength="3">1</lengthValueType>
-                                    </BACnetTagHeader>
-                                  </header>
-                                  <BACnetApplicationTagEnumerated>
-                                    <payload>
-                                      <BACnetTagPayloadEnumerated>
-                                        <data dataType="byte" bitLength="8">0x00</data>
-                                      </BACnetTagPayloadEnumerated>
-                                    </payload>
-                                  </BACnetApplicationTagEnumerated>
-                                </BACnetApplicationTag>
-                              </rawData>
-                            </BACnetSegmentation>
+                            <BACnetSegmentationTagged>
+                              <header>
+                                <BACnetTagHeader>
+                                  <tagNumber dataType="uint" bitLength="4">9</tagNumber>
+                                  <tagClass>
+                                    <TagClass dataType="uint" bitLength="1" stringRepresentation="APPLICATION_TAGS">0</TagClass>
+                                  </tagClass>
+                                  <lengthValueType dataType="uint" bitLength="3">1</lengthValueType>
+                                </BACnetTagHeader>
+                              </header>
+                              <value dataType="uint" bitLength="8" stringRepresentation="SEGMENTED_BOTH">0</value>
+                            </BACnetSegmentationTagged>
                           </segmentationSupported>
                           <vendorId>
                             <BACnetApplicationTag>
@@ -4164,7 +4094,7 @@ make -f wp.mak clean</value>
                             </BACnetContextTag>
                           </objectIdentifier>
                           <propertyIdentifier>
-                            <BACnetContextTag>
+                            <BACnetPropertyIdentifierTagged>
                               <header>
                                 <BACnetTagHeader>
                                   <tagNumber dataType="uint" bitLength="4">1</tagNumber>
@@ -4174,10 +4104,8 @@ make -f wp.mak clean</value>
                                   <lengthValueType dataType="uint" bitLength="3">1</lengthValueType>
                                 </BACnetTagHeader>
                               </header>
-                              <BACnetContextTagPropertyIdentifier>
-                                <propertyIdentifier dataType="uint" bitLength="8" stringRepresentation="PRIORITY_ARRAY">87</propertyIdentifier>
-                              </BACnetContextTagPropertyIdentifier>
-                            </BACnetContextTag>
+                              <value dataType="uint" bitLength="8" stringRepresentation="PRIORITY_ARRAY">87</value>
+                            </BACnetPropertyIdentifierTagged>
                           </propertyIdentifier>
                         </BACnetConfirmedServiceRequestReadProperty>
                       </BACnetConfirmedServiceRequest>
@@ -4240,8 +4168,8 @@ make -f wp.mak clean</value>
                         <BACnetErrorGeneral>
                           <error>
                             <Error>
-                              <rawErrorClass>
-                                <BACnetApplicationTag>
+                              <errorClass>
+                                <ErrorClassTagged>
                                   <header>
                                     <BACnetTagHeader>
                                       <tagNumber dataType="uint" bitLength="4">9</tagNumber>
@@ -4251,17 +4179,11 @@ make -f wp.mak clean</value>
                                       <lengthValueType dataType="uint" bitLength="3">1</lengthValueType>
                                     </BACnetTagHeader>
                                   </header>
-                                  <BACnetApplicationTagEnumerated>
-                                    <payload>
-                                      <BACnetTagPayloadEnumerated>
-                                        <data dataType="byte" bitLength="8">0x02</data>
-                                      </BACnetTagPayloadEnumerated>
-                                    </payload>
-                                  </BACnetApplicationTagEnumerated>
-                                </BACnetApplicationTag>
-                              </rawErrorClass>
-                              <rawErrorCode>
-                                <BACnetApplicationTag>
+                                  <value dataType="uint" bitLength="8" stringRepresentation="PROPERTY">2</value>
+                                </ErrorClassTagged>
+                              </errorClass>
+                              <errorCode>
+                                <ErrorCodeTagged>
                                   <header>
                                     <BACnetTagHeader>
                                       <tagNumber dataType="uint" bitLength="4">9</tagNumber>
@@ -4271,15 +4193,9 @@ make -f wp.mak clean</value>
                                       <lengthValueType dataType="uint" bitLength="3">1</lengthValueType>
                                     </BACnetTagHeader>
                                   </header>
-                                  <BACnetApplicationTagEnumerated>
-                                    <payload>
-                                      <BACnetTagPayloadEnumerated>
-                                        <data dataType="byte" bitLength="8">0x20</data>
-                                      </BACnetTagPayloadEnumerated>
-                                    </payload>
-                                  </BACnetApplicationTagEnumerated>
-                                </BACnetApplicationTag>
-                              </rawErrorCode>
+                                  <value dataType="uint" bitLength="8" stringRepresentation="UNKNOWN_PROPERTY">32</value>
+                                </ErrorCodeTagged>
+                              </errorCode>
                             </Error>
                           </error>
                         </BACnetErrorGeneral>
@@ -4481,28 +4397,18 @@ make -f wp.mak clean</value>
                             </BACnetApplicationTag>
                           </maximumApduLengthAcceptedLength>
                           <segmentationSupported>
-                            <BACnetSegmentation>
-                              <rawData>
-                                <BACnetApplicationTag>
-                                  <header>
-                                    <BACnetTagHeader>
-                                      <tagNumber dataType="uint" bitLength="4">9</tagNumber>
-                                      <tagClass>
-                                        <TagClass dataType="uint" bitLength="1" stringRepresentation="APPLICATION_TAGS">0</TagClass>
-                                      </tagClass>
-                                      <lengthValueType dataType="uint" bitLength="3">1</lengthValueType>
-                                    </BACnetTagHeader>
-                                  </header>
-                                  <BACnetApplicationTagEnumerated>
-                                    <payload>
-                                      <BACnetTagPayloadEnumerated>
-                                        <data dataType="byte" bitLength="8">0x00</data>
-                                      </BACnetTagPayloadEnumerated>
-                                    </payload>
-                                  </BACnetApplicationTagEnumerated>
-                                </BACnetApplicationTag>
-                              </rawData>
-                            </BACnetSegmentation>
+                            <BACnetSegmentationTagged>
+                              <header>
+                                <BACnetTagHeader>
+                                  <tagNumber dataType="uint" bitLength="4">9</tagNumber>
+                                  <tagClass>
+                                    <TagClass dataType="uint" bitLength="1" stringRepresentation="APPLICATION_TAGS">0</TagClass>
+                                  </tagClass>
+                                  <lengthValueType dataType="uint" bitLength="3">1</lengthValueType>
+                                </BACnetTagHeader>
+                              </header>
+                              <value dataType="uint" bitLength="8" stringRepresentation="SEGMENTED_BOTH">0</value>
+                            </BACnetSegmentationTagged>
                           </segmentationSupported>
                           <vendorId>
                             <BACnetApplicationTag>
@@ -4614,7 +4520,7 @@ make -f wp.mak clean</value>
                             </BACnetContextTag>
                           </objectIdentifier>
                           <propertyIdentifier>
-                            <BACnetContextTag>
+                            <BACnetPropertyIdentifierTagged>
                               <header>
                                 <BACnetTagHeader>
                                   <tagNumber dataType="uint" bitLength="4">1</tagNumber>
@@ -4624,10 +4530,8 @@ make -f wp.mak clean</value>
                                   <lengthValueType dataType="uint" bitLength="3">1</lengthValueType>
                                 </BACnetTagHeader>
                               </header>
-                              <BACnetContextTagPropertyIdentifier>
-                                <propertyIdentifier dataType="uint" bitLength="8" stringRepresentation="PRIORITY_ARRAY">87</propertyIdentifier>
-                              </BACnetContextTagPropertyIdentifier>
-                            </BACnetContextTag>
+                              <value dataType="uint" bitLength="8" stringRepresentation="PRIORITY_ARRAY">87</value>
+                            </BACnetPropertyIdentifierTagged>
                           </propertyIdentifier>
                         </BACnetConfirmedServiceRequestReadProperty>
                       </BACnetConfirmedServiceRequest>
@@ -4712,7 +4616,7 @@ make -f wp.mak clean</value>
                             </BACnetContextTag>
                           </objectIdentifier>
                           <propertyIdentifier>
-                            <BACnetContextTag>
+                            <BACnetPropertyIdentifierTagged>
                               <header>
                                 <BACnetTagHeader>
                                   <tagNumber dataType="uint" bitLength="4">1</tagNumber>
@@ -4722,10 +4626,8 @@ make -f wp.mak clean</value>
                                   <lengthValueType dataType="uint" bitLength="3">1</lengthValueType>
                                 </BACnetTagHeader>
                               </header>
-                              <BACnetContextTagPropertyIdentifier>
-                                <propertyIdentifier dataType="uint" bitLength="8" stringRepresentation="PRIORITY_ARRAY">87</propertyIdentifier>
-                              </BACnetContextTagPropertyIdentifier>
-                            </BACnetContextTag>
+                              <value dataType="uint" bitLength="8" stringRepresentation="PRIORITY_ARRAY">87</value>
+                            </BACnetPropertyIdentifierTagged>
                           </propertyIdentifier>
                           <values>
                             <BACnetConstructedData>
@@ -5197,7 +5099,7 @@ make -f wp.mak clean</value>
                               <data isList="true">
                                 <BACnetPropertyValue>
                                   <propertyIdentifier>
-                                    <BACnetContextTag>
+                                    <BACnetPropertyIdentifierTagged>
                                       <header>
                                         <BACnetTagHeader>
                                           <tagNumber dataType="uint" bitLength="4">0</tagNumber>
@@ -5207,10 +5109,8 @@ make -f wp.mak clean</value>
                                           <lengthValueType dataType="uint" bitLength="3">1</lengthValueType>
                                         </BACnetTagHeader>
                                       </header>
-                                      <BACnetContextTagPropertyIdentifier>
-                                        <propertyIdentifier dataType="uint" bitLength="8" stringRepresentation="PRESENT_VALUE">85</propertyIdentifier>
-                                      </BACnetContextTagPropertyIdentifier>
-                                    </BACnetContextTag>
+                                      <value dataType="uint" bitLength="8" stringRepresentation="PRESENT_VALUE">85</value>
+                                    </BACnetPropertyIdentifierTagged>
                                   </propertyIdentifier>
                                   <propertyValue>
                                     <BACnetConstructedDataElement>
@@ -5494,28 +5394,18 @@ make -f wp.mak clean</value>
                             </BACnetApplicationTag>
                           </maximumApduLengthAcceptedLength>
                           <segmentationSupported>
-                            <BACnetSegmentation>
-                              <rawData>
-                                <BACnetApplicationTag>
-                                  <header>
-                                    <BACnetTagHeader>
-                                      <tagNumber dataType="uint" bitLength="4">9</tagNumber>
-                                      <tagClass>
-                                        <TagClass dataType="uint" bitLength="1" stringRepresentation="APPLICATION_TAGS">0</TagClass>
-                                      </tagClass>
-                                      <lengthValueType dataType="uint" bitLength="3">1</lengthValueType>
-                                    </BACnetTagHeader>
-                                  </header>
-                                  <BACnetApplicationTagEnumerated>
-                                    <payload>
-                                      <BACnetTagPayloadEnumerated>
-                                        <data dataType="byte" bitLength="8">0x00</data>
-                                      </BACnetTagPayloadEnumerated>
-                                    </payload>
-                                  </BACnetApplicationTagEnumerated>
-                                </BACnetApplicationTag>
-                              </rawData>
-                            </BACnetSegmentation>
+                            <BACnetSegmentationTagged>
+                              <header>
+                                <BACnetTagHeader>
+                                  <tagNumber dataType="uint" bitLength="4">9</tagNumber>
+                                  <tagClass>
+                                    <TagClass dataType="uint" bitLength="1" stringRepresentation="APPLICATION_TAGS">0</TagClass>
+                                  </tagClass>
+                                  <lengthValueType dataType="uint" bitLength="3">1</lengthValueType>
+                                </BACnetTagHeader>
+                              </header>
+                              <value dataType="uint" bitLength="8" stringRepresentation="SEGMENTED_BOTH">0</value>
+                            </BACnetSegmentationTagged>
                           </segmentationSupported>
                           <vendorId>
                             <BACnetApplicationTag>
@@ -5627,7 +5517,7 @@ make -f wp.mak clean</value>
                             </BACnetContextTag>
                           </objectIdentifier>
                           <propertyIdentifier>
-                            <BACnetContextTag>
+                            <BACnetPropertyIdentifierTagged>
                               <header>
                                 <BACnetTagHeader>
                                   <tagNumber dataType="uint" bitLength="4">1</tagNumber>
@@ -5637,10 +5527,8 @@ make -f wp.mak clean</value>
                                   <lengthValueType dataType="uint" bitLength="3">1</lengthValueType>
                                 </BACnetTagHeader>
                               </header>
-                              <BACnetContextTagPropertyIdentifier>
-                                <propertyIdentifier dataType="uint" bitLength="8" stringRepresentation="PRESENT_VALUE">85</propertyIdentifier>
-                              </BACnetContextTagPropertyIdentifier>
-                            </BACnetContextTag>
+                              <value dataType="uint" bitLength="8" stringRepresentation="PRESENT_VALUE">85</value>
+                            </BACnetPropertyIdentifierTagged>
                           </propertyIdentifier>
                           <propertyValue>
                             <BACnetConstructedData>
@@ -5758,8 +5646,8 @@ make -f wp.mak clean</value>
                         <BACnetErrorGeneral>
                           <error>
                             <Error>
-                              <rawErrorClass>
-                                <BACnetApplicationTag>
+                              <errorClass>
+                                <ErrorClassTagged>
                                   <header>
                                     <BACnetTagHeader>
                                       <tagNumber dataType="uint" bitLength="4">9</tagNumber>
@@ -5769,17 +5657,11 @@ make -f wp.mak clean</value>
                                       <lengthValueType dataType="uint" bitLength="3">1</lengthValueType>
                                     </BACnetTagHeader>
                                   </header>
-                                  <BACnetApplicationTagEnumerated>
-                                    <payload>
-                                      <BACnetTagPayloadEnumerated>
-                                        <data dataType="byte" bitLength="8">0x01</data>
-                                      </BACnetTagPayloadEnumerated>
-                                    </payload>
-                                  </BACnetApplicationTagEnumerated>
-                                </BACnetApplicationTag>
-                              </rawErrorClass>
-                              <rawErrorCode>
-                                <BACnetApplicationTag>
+                                  <value dataType="uint" bitLength="8" stringRepresentation="OBJECT">1</value>
+                                </ErrorClassTagged>
+                              </errorClass>
+                              <errorCode>
+                                <ErrorCodeTagged>
                                   <header>
                                     <BACnetTagHeader>
                                       <tagNumber dataType="uint" bitLength="4">9</tagNumber>
@@ -5789,15 +5671,9 @@ make -f wp.mak clean</value>
                                       <lengthValueType dataType="uint" bitLength="3">1</lengthValueType>
                                     </BACnetTagHeader>
                                   </header>
-                                  <BACnetApplicationTagEnumerated>
-                                    <payload>
-                                      <BACnetTagPayloadEnumerated>
-                                        <data dataType="byte" bitLength="8">0x1f</data>
-                                      </BACnetTagPayloadEnumerated>
-                                    </payload>
-                                  </BACnetApplicationTagEnumerated>
-                                </BACnetApplicationTag>
-                              </rawErrorCode>
+                                  <value dataType="uint" bitLength="8" stringRepresentation="UNKNOWN_OBJECT">31</value>
+                                </ErrorCodeTagged>
+                              </errorCode>
                             </Error>
                           </error>
                         </BACnetErrorGeneral>
@@ -5999,28 +5875,18 @@ make -f wp.mak clean</value>
                             </BACnetApplicationTag>
                           </maximumApduLengthAcceptedLength>
                           <segmentationSupported>
-                            <BACnetSegmentation>
-                              <rawData>
-                                <BACnetApplicationTag>
-                                  <header>
-                                    <BACnetTagHeader>
-                                      <tagNumber dataType="uint" bitLength="4">9</tagNumber>
-                                      <tagClass>
-                                        <TagClass dataType="uint" bitLength="1" stringRepresentation="APPLICATION_TAGS">0</TagClass>
-                                      </tagClass>
-                                      <lengthValueType dataType="uint" bitLength="3">1</lengthValueType>
-                                    </BACnetTagHeader>
-                                  </header>
-                                  <BACnetApplicationTagEnumerated>
-                                    <payload>
-                                      <BACnetTagPayloadEnumerated>
-                                        <data dataType="byte" bitLength="8">0x00</data>
-                                      </BACnetTagPayloadEnumerated>
-                                    </payload>
-                                  </BACnetApplicationTagEnumerated>
-                                </BACnetApplicationTag>
-                              </rawData>
-                            </BACnetSegmentation>
+                            <BACnetSegmentationTagged>
+                              <header>
+                                <BACnetTagHeader>
+                                  <tagNumber dataType="uint" bitLength="4">9</tagNumber>
+                                  <tagClass>
+                                    <TagClass dataType="uint" bitLength="1" stringRepresentation="APPLICATION_TAGS">0</TagClass>
+                                  </tagClass>
+                                  <lengthValueType dataType="uint" bitLength="3">1</lengthValueType>
+                                </BACnetTagHeader>
+                              </header>
+                              <value dataType="uint" bitLength="8" stringRepresentation="SEGMENTED_BOTH">0</value>
+                            </BACnetSegmentationTagged>
                           </segmentationSupported>
                           <vendorId>
                             <BACnetApplicationTag>
@@ -6111,28 +5977,18 @@ make -f wp.mak clean</value>
                         </serviceChoice>
                         <BACnetConfirmedServiceRequestDeviceCommunicationControl>
                           <enableDisable>
-                            <BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable>
-                              <rawData>
-                                <BACnetContextTag>
-                                  <header>
-                                    <BACnetTagHeader>
-                                      <tagNumber dataType="uint" bitLength="4">1</tagNumber>
-                                      <tagClass>
-                                        <TagClass dataType="uint" bitLength="1" stringRepresentation="CONTEXT_SPECIFIC_TAGS">1</TagClass>
-                                      </tagClass>
-                                      <lengthValueType dataType="uint" bitLength="3">1</lengthValueType>
-                                    </BACnetTagHeader>
-                                  </header>
-                                  <BACnetContextTagEnumerated>
-                                    <payload>
-                                      <BACnetTagPayloadEnumerated>
-                                        <data dataType="byte" bitLength="8">0x00</data>
-                                      </BACnetTagPayloadEnumerated>
-                                    </payload>
-                                  </BACnetContextTagEnumerated>
-                                </BACnetContextTag>
-                              </rawData>
-                            </BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable>
+                            <BACnetConfirmedServiceRequestReinitializeDeviceEnableDisableTagged>
+                              <header>
+                                <BACnetTagHeader>
+                                  <tagNumber dataType="uint" bitLength="4">1</tagNumber>
+                                  <tagClass>
+                                    <TagClass dataType="uint" bitLength="1" stringRepresentation="CONTEXT_SPECIFIC_TAGS">1</TagClass>
+                                  </tagClass>
+                                  <lengthValueType dataType="uint" bitLength="3">1</lengthValueType>
+                                </BACnetTagHeader>
+                              </header>
+                              <value dataType="uint" bitLength="8" stringRepresentation="ENABLE">0</value>
+                            </BACnetConfirmedServiceRequestReinitializeDeviceEnableDisableTagged>
                           </enableDisable>
                           <password>
                             <BACnetContextTag>
@@ -6408,28 +6264,18 @@ make -f wp.mak clean</value>
                             </BACnetApplicationTag>
                           </maximumApduLengthAcceptedLength>
                           <segmentationSupported>
-                            <BACnetSegmentation>
-                              <rawData>
-                                <BACnetApplicationTag>
-                                  <header>
-                                    <BACnetTagHeader>
-                                      <tagNumber dataType="uint" bitLength="4">9</tagNumber>
-                                      <tagClass>
-                                        <TagClass dataType="uint" bitLength="1" stringRepresentation="APPLICATION_TAGS">0</TagClass>
-                                      </tagClass>
-                                      <lengthValueType dataType="uint" bitLength="3">1</lengthValueType>
-                                    </BACnetTagHeader>
-                                  </header>
-                                  <BACnetApplicationTagEnumerated>
-                                    <payload>
-                                      <BACnetTagPayloadEnumerated>
-                                        <data dataType="byte" bitLength="8">0x00</data>
-                                      </BACnetTagPayloadEnumerated>
-                                    </payload>
-                                  </BACnetApplicationTagEnumerated>
-                                </BACnetApplicationTag>
-                              </rawData>
-                            </BACnetSegmentation>
+                            <BACnetSegmentationTagged>
+                              <header>
+                                <BACnetTagHeader>
+                                  <tagNumber dataType="uint" bitLength="4">9</tagNumber>
+                                  <tagClass>
+                                    <TagClass dataType="uint" bitLength="1" stringRepresentation="APPLICATION_TAGS">0</TagClass>
+                                  </tagClass>
+                                  <lengthValueType dataType="uint" bitLength="3">1</lengthValueType>
+                                </BACnetTagHeader>
+                              </header>
+                              <value dataType="uint" bitLength="8" stringRepresentation="SEGMENTED_BOTH">0</value>
+                            </BACnetSegmentationTagged>
                           </segmentationSupported>
                           <vendorId>
                             <BACnetApplicationTag>
@@ -6520,28 +6366,18 @@ make -f wp.mak clean</value>
                         </serviceChoice>
                         <BACnetConfirmedServiceRequestDeviceCommunicationControl>
                           <enableDisable>
-                            <BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable>
-                              <rawData>
-                                <BACnetContextTag>
-                                  <header>
-                                    <BACnetTagHeader>
-                                      <tagNumber dataType="uint" bitLength="4">1</tagNumber>
-                                      <tagClass>
-                                        <TagClass dataType="uint" bitLength="1" stringRepresentation="CONTEXT_SPECIFIC_TAGS">1</TagClass>
-                                      </tagClass>
-                                      <lengthValueType dataType="uint" bitLength="3">1</lengthValueType>
-                                    </BACnetTagHeader>
-                                  </header>
-                                  <BACnetContextTagEnumerated>
-                                    <payload>
-                                      <BACnetTagPayloadEnumerated>
-                                        <data dataType="byte" bitLength="8">0x00</data>
-                                      </BACnetTagPayloadEnumerated>
-                                    </payload>
-                                  </BACnetContextTagEnumerated>
-                                </BACnetContextTag>
-                              </rawData>
-                            </BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable>
+                            <BACnetConfirmedServiceRequestReinitializeDeviceEnableDisableTagged>
+                              <header>
+                                <BACnetTagHeader>
+                                  <tagNumber dataType="uint" bitLength="4">1</tagNumber>
+                                  <tagClass>
+                                    <TagClass dataType="uint" bitLength="1" stringRepresentation="CONTEXT_SPECIFIC_TAGS">1</TagClass>
+                                  </tagClass>
+                                  <lengthValueType dataType="uint" bitLength="3">1</lengthValueType>
+                                </BACnetTagHeader>
+                              </header>
+                              <value dataType="uint" bitLength="8" stringRepresentation="ENABLE">0</value>
+                            </BACnetConfirmedServiceRequestReinitializeDeviceEnableDisableTagged>
                           </enableDisable>
                           <password>
                             <BACnetContextTag>
@@ -6628,8 +6464,8 @@ make -f wp.mak clean</value>
                         <BACnetErrorGeneral>
                           <error>
                             <Error>
-                              <rawErrorClass>
-                                <BACnetApplicationTag>
+                              <errorClass>
+                                <ErrorClassTagged>
                                   <header>
                                     <BACnetTagHeader>
                                       <tagNumber dataType="uint" bitLength="4">9</tagNumber>
@@ -6639,17 +6475,11 @@ make -f wp.mak clean</value>
                                       <lengthValueType dataType="uint" bitLength="3">1</lengthValueType>
                                     </BACnetTagHeader>
                                   </header>
-                                  <BACnetApplicationTagEnumerated>
-                                    <payload>
-                                      <BACnetTagPayloadEnumerated>
-                                        <data dataType="byte" bitLength="8">0x05</data>
-                                      </BACnetTagPayloadEnumerated>
-                                    </payload>
-                                  </BACnetApplicationTagEnumerated>
-                                </BACnetApplicationTag>
-                              </rawErrorClass>
-                              <rawErrorCode>
-                                <BACnetApplicationTag>
+                                  <value dataType="uint" bitLength="8" stringRepresentation="SERVICES">5</value>
+                                </ErrorClassTagged>
+                              </errorClass>
+                              <errorCode>
+                                <ErrorCodeTagged>
                                   <header>
                                     <BACnetTagHeader>
                                       <tagNumber dataType="uint" bitLength="4">9</tagNumber>
@@ -6659,15 +6489,9 @@ make -f wp.mak clean</value>
                                       <lengthValueType dataType="uint" bitLength="3">1</lengthValueType>
                                     </BACnetTagHeader>
                                   </header>
-                                  <BACnetApplicationTagEnumerated>
-                                    <payload>
-                                      <BACnetTagPayloadEnumerated>
-                                        <data dataType="byte" bitLength="8">0x1a</data>
-                                      </BACnetTagPayloadEnumerated>
-                                    </payload>
-                                  </BACnetApplicationTagEnumerated>
-                                </BACnetApplicationTag>
-                              </rawErrorCode>
+                                  <value dataType="uint" bitLength="8" stringRepresentation="PASSWORD_FAILURE">26</value>
+                                </ErrorCodeTagged>
+                              </errorCode>
                             </Error>
                           </error>
                         </BACnetErrorGeneral>
@@ -6769,28 +6593,18 @@ make -f wp.mak clean</value>
                             </BACnetApplicationTag>
                           </maximumApduLengthAcceptedLength>
                           <segmentationSupported>
-                            <BACnetSegmentation>
-                              <rawData>
-                                <BACnetApplicationTag>
-                                  <header>
-                                    <BACnetTagHeader>
-                                      <tagNumber dataType="uint" bitLength="4">9</tagNumber>
-                                      <tagClass>
-                                        <TagClass dataType="uint" bitLength="1" stringRepresentation="APPLICATION_TAGS">0</TagClass>
-                                      </tagClass>
-                                      <lengthValueType dataType="uint" bitLength="3">1</lengthValueType>
-                                    </BACnetTagHeader>
-                                  </header>
-                                  <BACnetApplicationTagEnumerated>
-                                    <payload>
-                                      <BACnetTagPayloadEnumerated>
-                                        <data dataType="byte" bitLength="8">0x03</data>
-                                      </BACnetTagPayloadEnumerated>
-                                    </payload>
-                                  </BACnetApplicationTagEnumerated>
-                                </BACnetApplicationTag>
-                              </rawData>
-                            </BACnetSegmentation>
+                            <BACnetSegmentationTagged>
+                              <header>
+                                <BACnetTagHeader>
+                                  <tagNumber dataType="uint" bitLength="4">9</tagNumber>
+                                  <tagClass>
+                                    <TagClass dataType="uint" bitLength="1" stringRepresentation="APPLICATION_TAGS">0</TagClass>
+                                  </tagClass>
+                                  <lengthValueType dataType="uint" bitLength="3">1</lengthValueType>
+                                </BACnetTagHeader>
+                              </header>
+                              <value dataType="uint" bitLength="8" stringRepresentation="NO_SEGMENTATION">3</value>
+                            </BACnetSegmentationTagged>
                           </segmentationSupported>
                           <vendorId>
                             <BACnetApplicationTag>
@@ -6880,28 +6694,18 @@ make -f wp.mak clean</value>
                         </serviceChoice>
                         <BACnetConfirmedServiceRequestDeviceCommunicationControl>
                           <enableDisable>
-                            <BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable>
-                              <rawData>
-                                <BACnetContextTag>
-                                  <header>
-                                    <BACnetTagHeader>
-                                      <tagNumber dataType="uint" bitLength="4">1</tagNumber>
-                                      <tagClass>
-                                        <TagClass dataType="uint" bitLength="1" stringRepresentation="CONTEXT_SPECIFIC_TAGS">1</TagClass>
-                                      </tagClass>
-                                      <lengthValueType dataType="uint" bitLength="3">1</lengthValueType>
-                                    </BACnetTagHeader>
-                                  </header>
-                                  <BACnetContextTagEnumerated>
-                                    <payload>
-                                      <BACnetTagPayloadEnumerated>
-                                        <data dataType="byte" bitLength="8">0x01</data>
-                                      </BACnetTagPayloadEnumerated>
-                                    </payload>
-                                  </BACnetContextTagEnumerated>
-                                </BACnetContextTag>
-                              </rawData>
-                            </BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable>
+                            <BACnetConfirmedServiceRequestReinitializeDeviceEnableDisableTagged>
+                              <header>
+                                <BACnetTagHeader>
+                                  <tagNumber dataType="uint" bitLength="4">1</tagNumber>
+                                  <tagClass>
+                                    <TagClass dataType="uint" bitLength="1" stringRepresentation="CONTEXT_SPECIFIC_TAGS">1</TagClass>
+                                  </tagClass>
+                                  <lengthValueType dataType="uint" bitLength="3">1</lengthValueType>
+                                </BACnetTagHeader>
+                              </header>
+                              <value dataType="uint" bitLength="8" stringRepresentation="DISABLE">1</value>
+                            </BACnetConfirmedServiceRequestReinitializeDeviceEnableDisableTagged>
                           </enableDisable>
                           <password>
                             <BACnetContextTag>
@@ -6996,28 +6800,18 @@ make -f wp.mak clean</value>
                         </serviceChoice>
                         <BACnetConfirmedServiceRequestDeviceCommunicationControl>
                           <enableDisable>
-                            <BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable>
-                              <rawData>
-                                <BACnetContextTag>
-                                  <header>
-                                    <BACnetTagHeader>
-                                      <tagNumber dataType="uint" bitLength="4">1</tagNumber>
-                                      <tagClass>
-                                        <TagClass dataType="uint" bitLength="1" stringRepresentation="CONTEXT_SPECIFIC_TAGS">1</TagClass>
-                                      </tagClass>
-                                      <lengthValueType dataType="uint" bitLength="3">1</lengthValueType>
-                                    </BACnetTagHeader>
-                                  </header>
-                                  <BACnetContextTagEnumerated>
-                                    <payload>
-                                      <BACnetTagPayloadEnumerated>
-                                        <data dataType="byte" bitLength="8">0x01</data>
-                                      </BACnetTagPayloadEnumerated>
-                                    </payload>
-                                  </BACnetContextTagEnumerated>
-                                </BACnetContextTag>
-                              </rawData>
-                            </BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable>
+                            <BACnetConfirmedServiceRequestReinitializeDeviceEnableDisableTagged>
+                              <header>
+                                <BACnetTagHeader>
+                                  <tagNumber dataType="uint" bitLength="4">1</tagNumber>
+                                  <tagClass>
+                                    <TagClass dataType="uint" bitLength="1" stringRepresentation="CONTEXT_SPECIFIC_TAGS">1</TagClass>
+                                  </tagClass>
+                                  <lengthValueType dataType="uint" bitLength="3">1</lengthValueType>
+                                </BACnetTagHeader>
+                              </header>
+                              <value dataType="uint" bitLength="8" stringRepresentation="DISABLE">1</value>
+                            </BACnetConfirmedServiceRequestReinitializeDeviceEnableDisableTagged>
                           </enableDisable>
                           <password>
                             <BACnetContextTag>
@@ -7112,28 +6906,18 @@ make -f wp.mak clean</value>
                         </serviceChoice>
                         <BACnetConfirmedServiceRequestDeviceCommunicationControl>
                           <enableDisable>
-                            <BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable>
-                              <rawData>
-                                <BACnetContextTag>
-                                  <header>
-                                    <BACnetTagHeader>
-                                      <tagNumber dataType="uint" bitLength="4">1</tagNumber>
-                                      <tagClass>
-                                        <TagClass dataType="uint" bitLength="1" stringRepresentation="CONTEXT_SPECIFIC_TAGS">1</TagClass>
-                                      </tagClass>
-                                      <lengthValueType dataType="uint" bitLength="3">1</lengthValueType>
-                                    </BACnetTagHeader>
-                                  </header>
-                                  <BACnetContextTagEnumerated>
-                                    <payload>
-                                      <BACnetTagPayloadEnumerated>
-                                        <data dataType="byte" bitLength="8">0x01</data>
-                                      </BACnetTagPayloadEnumerated>
-                                    </payload>
-                                  </BACnetContextTagEnumerated>
-                                </BACnetContextTag>
-                              </rawData>
-                            </BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable>
+                            <BACnetConfirmedServiceRequestReinitializeDeviceEnableDisableTagged>
+                              <header>
+                                <BACnetTagHeader>
+                                  <tagNumber dataType="uint" bitLength="4">1</tagNumber>
+                                  <tagClass>
+                                    <TagClass dataType="uint" bitLength="1" stringRepresentation="CONTEXT_SPECIFIC_TAGS">1</TagClass>
+                                  </tagClass>
+                                  <lengthValueType dataType="uint" bitLength="3">1</lengthValueType>
+                                </BACnetTagHeader>
+                              </header>
+                              <value dataType="uint" bitLength="8" stringRepresentation="DISABLE">1</value>
+                            </BACnetConfirmedServiceRequestReinitializeDeviceEnableDisableTagged>
                           </enableDisable>
                           <password>
                             <BACnetContextTag>
@@ -7228,28 +7012,18 @@ make -f wp.mak clean</value>
                         </serviceChoice>
                         <BACnetConfirmedServiceRequestDeviceCommunicationControl>
                           <enableDisable>
-                            <BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable>
-                              <rawData>
-                                <BACnetContextTag>
-                                  <header>
-                                    <BACnetTagHeader>
-                                      <tagNumber dataType="uint" bitLength="4">1</tagNumber>
-                                      <tagClass>
-                                        <TagClass dataType="uint" bitLength="1" stringRepresentation="CONTEXT_SPECIFIC_TAGS">1</TagClass>
-                                      </tagClass>
-                                      <lengthValueType dataType="uint" bitLength="3">1</lengthValueType>
-                                    </BACnetTagHeader>
-                                  </header>
-                                  <BACnetContextTagEnumerated>
-                                    <payload>
-                                      <BACnetTagPayloadEnumerated>
-                                        <data dataType="byte" bitLength="8">0x01</data>
-                                      </BACnetTagPayloadEnumerated>
-                                    </payload>
-                                  </BACnetContextTagEnumerated>
-                                </BACnetContextTag>
-                              </rawData>
-                            </BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable>
+                            <BACnetConfirmedServiceRequestReinitializeDeviceEnableDisableTagged>
+                              <header>
+                                <BACnetTagHeader>
+                                  <tagNumber dataType="uint" bitLength="4">1</tagNumber>
+                                  <tagClass>
+                                    <TagClass dataType="uint" bitLength="1" stringRepresentation="CONTEXT_SPECIFIC_TAGS">1</TagClass>
+                                  </tagClass>
+                                  <lengthValueType dataType="uint" bitLength="3">1</lengthValueType>
+                                </BACnetTagHeader>
+                              </header>
+                              <value dataType="uint" bitLength="8" stringRepresentation="DISABLE">1</value>
+                            </BACnetConfirmedServiceRequestReinitializeDeviceEnableDisableTagged>
                           </enableDisable>
                           <password>
                             <BACnetContextTag>
@@ -7375,28 +7149,18 @@ make -f wp.mak clean</value>
                             </BACnetApplicationTag>
                           </maximumApduLengthAcceptedLength>
                           <segmentationSupported>
-                            <BACnetSegmentation>
-                              <rawData>
-                                <BACnetApplicationTag>
-                                  <header>
-                                    <BACnetTagHeader>
-                                      <tagNumber dataType="uint" bitLength="4">9</tagNumber>
-                                      <tagClass>
-                                        <TagClass dataType="uint" bitLength="1" stringRepresentation="APPLICATION_TAGS">0</TagClass>
-                                      </tagClass>
-                                      <lengthValueType dataType="uint" bitLength="3">1</lengthValueType>
-                                    </BACnetTagHeader>
-                                  </header>
-                                  <BACnetApplicationTagEnumerated>
-                                    <payload>
-                                      <BACnetTagPayloadEnumerated>
-                                        <data dataType="byte" bitLength="8">0x03</data>
-                                      </BACnetTagPayloadEnumerated>
-                                    </payload>
-                                  </BACnetApplicationTagEnumerated>
-                                </BACnetApplicationTag>
-                              </rawData>
-                            </BACnetSegmentation>
+                            <BACnetSegmentationTagged>
+                              <header>
+                                <BACnetTagHeader>
+                                  <tagNumber dataType="uint" bitLength="4">9</tagNumber>
+                                  <tagClass>
+                                    <TagClass dataType="uint" bitLength="1" stringRepresentation="APPLICATION_TAGS">0</TagClass>
+                                  </tagClass>
+                                  <lengthValueType dataType="uint" bitLength="3">1</lengthValueType>
+                                </BACnetTagHeader>
+                              </header>
+                              <value dataType="uint" bitLength="8" stringRepresentation="NO_SEGMENTATION">3</value>
+                            </BACnetSegmentationTagged>
                           </segmentationSupported>
                           <vendorId>
                             <BACnetApplicationTag>
@@ -7486,28 +7250,18 @@ make -f wp.mak clean</value>
                         </serviceChoice>
                         <BACnetConfirmedServiceRequestDeviceCommunicationControl>
                           <enableDisable>
-                            <BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable>
-                              <rawData>
-                                <BACnetContextTag>
-                                  <header>
-                                    <BACnetTagHeader>
-                                      <tagNumber dataType="uint" bitLength="4">1</tagNumber>
-                                      <tagClass>
-                                        <TagClass dataType="uint" bitLength="1" stringRepresentation="CONTEXT_SPECIFIC_TAGS">1</TagClass>
-                                      </tagClass>
-                                      <lengthValueType dataType="uint" bitLength="3">1</lengthValueType>
-                                    </BACnetTagHeader>
-                                  </header>
-                                  <BACnetContextTagEnumerated>
-                                    <payload>
-                                      <BACnetTagPayloadEnumerated>
-                                        <data dataType="byte" bitLength="8">0x01</data>
-                                      </BACnetTagPayloadEnumerated>
-                                    </payload>
-                                  </BACnetContextTagEnumerated>
-                                </BACnetContextTag>
-                              </rawData>
-                            </BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable>
+                            <BACnetConfirmedServiceRequestReinitializeDeviceEnableDisableTagged>
+                              <header>
+                                <BACnetTagHeader>
+                                  <tagNumber dataType="uint" bitLength="4">1</tagNumber>
+                                  <tagClass>
+                                    <TagClass dataType="uint" bitLength="1" stringRepresentation="CONTEXT_SPECIFIC_TAGS">1</TagClass>
+                                  </tagClass>
+                                  <lengthValueType dataType="uint" bitLength="3">1</lengthValueType>
+                                </BACnetTagHeader>
+                              </header>
+                              <value dataType="uint" bitLength="8" stringRepresentation="DISABLE">1</value>
+                            </BACnetConfirmedServiceRequestReinitializeDeviceEnableDisableTagged>
                           </enableDisable>
                           <password>
                             <BACnetContextTag>
@@ -7595,8 +7349,8 @@ make -f wp.mak clean</value>
                         <BACnetErrorGeneral>
                           <error>
                             <Error>
-                              <rawErrorClass>
-                                <BACnetApplicationTag>
+                              <errorClass>
+                                <ErrorClassTagged>
                                   <header>
                                     <BACnetTagHeader>
                                       <tagNumber dataType="uint" bitLength="4">9</tagNumber>
@@ -7606,17 +7360,11 @@ make -f wp.mak clean</value>
                                       <lengthValueType dataType="uint" bitLength="3">1</lengthValueType>
                                     </BACnetTagHeader>
                                   </header>
-                                  <BACnetApplicationTagEnumerated>
-                                    <payload>
-                                      <BACnetTagPayloadEnumerated>
-                                        <data dataType="byte" bitLength="8">0x05</data>
-                                      </BACnetTagPayloadEnumerated>
-                                    </payload>
-                                  </BACnetApplicationTagEnumerated>
-                                </BACnetApplicationTag>
-                              </rawErrorClass>
-                              <rawErrorCode>
-                                <BACnetApplicationTag>
+                                  <value dataType="uint" bitLength="8" stringRepresentation="SERVICES">5</value>
+                                </ErrorClassTagged>
+                              </errorClass>
+                              <errorCode>
+                                <ErrorCodeTagged>
                                   <header>
                                     <BACnetTagHeader>
                                       <tagNumber dataType="uint" bitLength="4">9</tagNumber>
@@ -7626,15 +7374,9 @@ make -f wp.mak clean</value>
                                       <lengthValueType dataType="uint" bitLength="3">1</lengthValueType>
                                     </BACnetTagHeader>
                                   </header>
-                                  <BACnetApplicationTagEnumerated>
-                                    <payload>
-                                      <BACnetTagPayloadEnumerated>
-                                        <data dataType="byte" bitLength="8">0x1a</data>
-                                      </BACnetTagPayloadEnumerated>
-                                    </payload>
-                                  </BACnetApplicationTagEnumerated>
-                                </BACnetApplicationTag>
-                              </rawErrorCode>
+                                  <value dataType="uint" bitLength="8" stringRepresentation="PASSWORD_FAILURE">26</value>
+                                </ErrorCodeTagged>
+                              </errorCode>
                             </Error>
                           </error>
                         </BACnetErrorGeneral>
@@ -7705,28 +7447,18 @@ make -f wp.mak clean</value>
                         </serviceChoice>
                         <BACnetConfirmedServiceRequestDeviceCommunicationControl>
                           <enableDisable>
-                            <BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable>
-                              <rawData>
-                                <BACnetContextTag>
-                                  <header>
-                                    <BACnetTagHeader>
-                                      <tagNumber dataType="uint" bitLength="4">1</tagNumber>
-                                      <tagClass>
-                                        <TagClass dataType="uint" bitLength="1" stringRepresentation="CONTEXT_SPECIFIC_TAGS">1</TagClass>
-                                      </tagClass>
-                                      <lengthValueType dataType="uint" bitLength="3">1</lengthValueType>
-                                    </BACnetTagHeader>
-                                  </header>
-                                  <BACnetContextTagEnumerated>
-                                    <payload>
-                                      <BACnetTagPayloadEnumerated>
-                                        <data dataType="byte" bitLength="8">0x01</data>
-                                      </BACnetTagPayloadEnumerated>
-                                    </payload>
-                                  </BACnetContextTagEnumerated>
-                                </BACnetContextTag>
-                              </rawData>
-                            </BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable>
+                            <BACnetConfirmedServiceRequestReinitializeDeviceEnableDisableTagged>
+                              <header>
+                                <BACnetTagHeader>
+                                  <tagNumber dataType="uint" bitLength="4">1</tagNumber>
+                                  <tagClass>
+                                    <TagClass dataType="uint" bitLength="1" stringRepresentation="CONTEXT_SPECIFIC_TAGS">1</TagClass>
+                                  </tagClass>
+                                  <lengthValueType dataType="uint" bitLength="3">1</lengthValueType>
+                                </BACnetTagHeader>
+                              </header>
+                              <value dataType="uint" bitLength="8" stringRepresentation="DISABLE">1</value>
+                            </BACnetConfirmedServiceRequestReinitializeDeviceEnableDisableTagged>
                           </enableDisable>
                           <password>
                             <BACnetContextTag>
@@ -7903,28 +7635,18 @@ make -f wp.mak clean</value>
                             </BACnetApplicationTag>
                           </maximumApduLengthAcceptedLength>
                           <segmentationSupported>
-                            <BACnetSegmentation>
-                              <rawData>
-                                <BACnetApplicationTag>
-                                  <header>
-                                    <BACnetTagHeader>
-                                      <tagNumber dataType="uint" bitLength="4">9</tagNumber>
-                                      <tagClass>
-                                        <TagClass dataType="uint" bitLength="1" stringRepresentation="APPLICATION_TAGS">0</TagClass>
-                                      </tagClass>
-                                      <lengthValueType dataType="uint" bitLength="3">1</lengthValueType>
-                                    </BACnetTagHeader>
-                                  </header>
-                                  <BACnetApplicationTagEnumerated>
-                                    <payload>
-                                      <BACnetTagPayloadEnumerated>
-                                        <data dataType="byte" bitLength="8">0x03</data>
-                                      </BACnetTagPayloadEnumerated>
-                                    </payload>
-                                  </BACnetApplicationTagEnumerated>
-                                </BACnetApplicationTag>
-                              </rawData>
-                            </BACnetSegmentation>
+                            <BACnetSegmentationTagged>
+                              <header>
+                                <BACnetTagHeader>
+                                  <tagNumber dataType="uint" bitLength="4">9</tagNumber>
+                                  <tagClass>
+                                    <TagClass dataType="uint" bitLength="1" stringRepresentation="APPLICATION_TAGS">0</TagClass>
+                                  </tagClass>
+                                  <lengthValueType dataType="uint" bitLength="3">1</lengthValueType>
+                                </BACnetTagHeader>
+                              </header>
+                              <value dataType="uint" bitLength="8" stringRepresentation="NO_SEGMENTATION">3</value>
+                            </BACnetSegmentationTagged>
                           </segmentationSupported>
                           <vendorId>
                             <BACnetApplicationTag>
@@ -8324,7 +8046,7 @@ make -f wp.mak clean</value>
                         </serviceChoice>
                         <BACnetConfirmedServiceRequestReinitializeDevice>
                           <reinitializedStateOfDevice>
-                            <BACnetContextTag>
+                            <BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDeviceTagged>
                               <header>
                                 <BACnetTagHeader>
                                   <tagNumber dataType="uint" bitLength="4">0</tagNumber>
@@ -8334,12 +8056,8 @@ make -f wp.mak clean</value>
                                   <lengthValueType dataType="uint" bitLength="3">1</lengthValueType>
                                 </BACnetTagHeader>
                               </header>
-                              <BACnetContextTagDeviceState>
-                                <state>
-                                  <BACnetDeviceState dataType="uint" bitLength="8" stringRepresentation="COLDSTART">0</BACnetDeviceState>
-                                </state>
-                              </BACnetContextTagDeviceState>
-                            </BACnetContextTag>
+                              <value dataType="uint" bitLength="8" stringRepresentation="COLDSTART">0</value>
+                            </BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDeviceTagged>
                           </reinitializedStateOfDevice>
                           <password>
                             <BACnetContextTag>
@@ -8427,8 +8145,8 @@ make -f wp.mak clean</value>
                         <BACnetErrorGeneral>
                           <error>
                             <Error>
-                              <rawErrorClass>
-                                <BACnetApplicationTag>
+                              <errorClass>
+                                <ErrorClassTagged>
                                   <header>
                                     <BACnetTagHeader>
                                       <tagNumber dataType="uint" bitLength="4">9</tagNumber>
@@ -8438,17 +8156,11 @@ make -f wp.mak clean</value>
                                       <lengthValueType dataType="uint" bitLength="3">1</lengthValueType>
                                     </BACnetTagHeader>
                                   </header>
-                                  <BACnetApplicationTagEnumerated>
-                                    <payload>
-                                      <BACnetTagPayloadEnumerated>
-                                        <data dataType="byte" bitLength="8">0x05</data>
-                                      </BACnetTagPayloadEnumerated>
-                                    </payload>
-                                  </BACnetApplicationTagEnumerated>
-                                </BACnetApplicationTag>
-                              </rawErrorClass>
-                              <rawErrorCode>
-                                <BACnetApplicationTag>
+                                  <value dataType="uint" bitLength="8" stringRepresentation="SERVICES">5</value>
+                                </ErrorClassTagged>
+                              </errorClass>
+                              <errorCode>
+                                <ErrorCodeTagged>
                                   <header>
                                     <BACnetTagHeader>
                                       <tagNumber dataType="uint" bitLength="4">9</tagNumber>
@@ -8458,15 +8170,9 @@ make -f wp.mak clean</value>
                                       <lengthValueType dataType="uint" bitLength="3">1</lengthValueType>
                                     </BACnetTagHeader>
                                   </header>
-                                  <BACnetApplicationTagEnumerated>
-                                    <payload>
-                                      <BACnetTagPayloadEnumerated>
-                                        <data dataType="byte" bitLength="8">0x1a</data>
-                                      </BACnetTagPayloadEnumerated>
-                                    </payload>
-                                  </BACnetApplicationTagEnumerated>
-                                </BACnetApplicationTag>
-                              </rawErrorCode>
+                                  <value dataType="uint" bitLength="8" stringRepresentation="PASSWORD_FAILURE">26</value>
+                                </ErrorCodeTagged>
+                              </errorCode>
                             </Error>
                           </error>
                         </BACnetErrorGeneral>
@@ -8537,7 +8243,7 @@ make -f wp.mak clean</value>
                         </serviceChoice>
                         <BACnetConfirmedServiceRequestReinitializeDevice>
                           <reinitializedStateOfDevice>
-                            <BACnetContextTag>
+                            <BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDeviceTagged>
                               <header>
                                 <BACnetTagHeader>
                                   <tagNumber dataType="uint" bitLength="4">0</tagNumber>
@@ -8547,12 +8253,8 @@ make -f wp.mak clean</value>
                                   <lengthValueType dataType="uint" bitLength="3">1</lengthValueType>
                                 </BACnetTagHeader>
                               </header>
-                              <BACnetContextTagDeviceState>
-                                <state>
-                                  <BACnetDeviceState dataType="uint" bitLength="8" stringRepresentation="COLDSTART">0</BACnetDeviceState>
-                                </state>
-                              </BACnetContextTagDeviceState>
-                            </BACnetContextTag>
+                              <value dataType="uint" bitLength="8" stringRepresentation="COLDSTART">0</value>
+                            </BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDeviceTagged>
                           </reinitializedStateOfDevice>
                           <password>
                             <BACnetContextTag>
@@ -10258,7 +9960,11 @@ Test "BACnet Applicat</value>
                   <APDUReject>
                     <reserved dataType="uint" bitLength="4">0</reserved>
                     <originalInvokeId dataType="uint" bitLength="8">58</originalInvokeId>
-                    <rawRejectReason dataType="uint" bitLength="8">9</rawRejectReason>
+                    <rejectReason>
+                      <RejectReasonTagged>
+                        <value dataType="uint" bitLength="8" stringRepresentation="UNRECOGNIZED_SERVICE">9</value>
+                      </RejectReasonTagged>
+                    </rejectReason>
                   </APDUReject>
                 </APDU>
               </apdu>
@@ -10364,7 +10070,7 @@ Test "BACnet Applicat</value>
                               <listOfPropertyReferences isList="true">
                                 <BACnetPropertyReference>
                                   <propertyIdentifier>
-                                    <BACnetContextTag>
+                                    <BACnetPropertyIdentifierTagged>
                                       <header>
                                         <BACnetTagHeader>
                                           <tagNumber dataType="uint" bitLength="4">0</tagNumber>
@@ -10374,10 +10080,8 @@ Test "BACnet Applicat</value>
                                           <lengthValueType dataType="uint" bitLength="3">1</lengthValueType>
                                         </BACnetTagHeader>
                                       </header>
-                                      <BACnetContextTagPropertyIdentifier>
-                                        <propertyIdentifier dataType="uint" bitLength="8" stringRepresentation="ALL">8</propertyIdentifier>
-                                      </BACnetContextTagPropertyIdentifier>
-                                    </BACnetContextTag>
+                                      <value dataType="uint" bitLength="8" stringRepresentation="ALL">8</value>
+                                    </BACnetPropertyIdentifierTagged>
                                   </propertyIdentifier>
                                 </BACnetPropertyReference>
                               </listOfPropertyReferences>
@@ -10452,7 +10156,11 @@ Test "BACnet Applicat</value>
                   <APDUReject>
                     <reserved dataType="uint" bitLength="4">0</reserved>
                     <originalInvokeId dataType="uint" bitLength="8">59</originalInvokeId>
-                    <rawRejectReason dataType="uint" bitLength="8">9</rawRejectReason>
+                    <rejectReason>
+                      <RejectReasonTagged>
+                        <value dataType="uint" bitLength="8" stringRepresentation="UNRECOGNIZED_SERVICE">9</value>
+                      </RejectReasonTagged>
+                    </rejectReason>
                   </APDUReject>
                 </APDU>
               </apdu>
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsDataType.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsDataType.go
index 44dea26544..26cf291b50 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsDataType.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsDataType.go
@@ -26,6 +26,7 @@ import (
 
 // Code generated by code-generation. DO NOT EDIT.
 
+// AdsDataType is an enum
 type AdsDataType int8
 
 type IAdsDataType interface {
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/CommandId.go b/plc4go/internal/plc4go/ads/readwrite/model/CommandId.go
index 19d4d3fdc6..e99cf05dec 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/CommandId.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/CommandId.go
@@ -26,6 +26,7 @@ import (
 
 // Code generated by code-generation. DO NOT EDIT.
 
+// CommandId is an enum
 type CommandId uint16
 
 type ICommandId interface {
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/ReservedIndexGroups.go b/plc4go/internal/plc4go/ads/readwrite/model/ReservedIndexGroups.go
index e9e7cb545b..f373cb9721 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/ReservedIndexGroups.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/ReservedIndexGroups.go
@@ -26,6 +26,7 @@ import (
 
 // Code generated by code-generation. DO NOT EDIT.
 
+// ReservedIndexGroups is an enum
 type ReservedIndexGroups uint32
 
 type IReservedIndexGroups interface {
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/ReturnCode.go b/plc4go/internal/plc4go/ads/readwrite/model/ReturnCode.go
index b0ae736b3d..a757209729 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/ReturnCode.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/ReturnCode.go
@@ -26,6 +26,7 @@ import (
 
 // Code generated by code-generation. DO NOT EDIT.
 
+// ReturnCode is an enum
 type ReturnCode uint32
 
 type IReturnCode interface {
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/ParserHelper.go b/plc4go/internal/plc4go/bacnetip/readwrite/ParserHelper.go
index cf116f65af..d20984a5e8 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/ParserHelper.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/ParserHelper.go
@@ -39,12 +39,33 @@ func (m BacnetipParserHelper) Parse(typeName string, arguments []string, io util
 		}
 		dataType := model.BACnetDataTypeByName(arguments[1])
 		return model.BACnetContextTagParse(io, tagNumberArgument, dataType)
+	case "BACnetNotifyTypeTagged":
+		tagNumber, err := utils.StrToUint8(arguments[0])
+		if err != nil {
+			return nil, errors.Wrap(err, "Error parsing")
+		}
+		tagClass := model.TagClassByName(arguments[1])
+		return model.BACnetNotifyTypeTaggedParse(io, tagNumber, tagClass)
+	case "ErrorClassTagged":
+		tagNumber, err := utils.StrToUint8(arguments[0])
+		if err != nil {
+			return nil, errors.Wrap(err, "Error parsing")
+		}
+		tagClass := model.TagClassByName(arguments[1])
+		return model.ErrorClassTaggedParse(io, tagNumber, tagClass)
 	case "BACnetStatusFlags":
 		tagNumber, err := utils.StrToUint8(arguments[0])
 		if err != nil {
 			return nil, errors.Wrap(err, "Error parsing")
 		}
 		return model.BACnetStatusFlagsParse(io, tagNumber)
+	case "BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDeviceTagged":
+		tagNumber, err := utils.StrToUint8(arguments[0])
+		if err != nil {
+			return nil, errors.Wrap(err, "Error parsing")
+		}
+		tagClass := model.TagClassByName(arguments[1])
+		return model.BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDeviceTaggedParse(io, tagNumber, tagClass)
 	case "BACnetPropertyReferenceEnclosed":
 		tagNumber, err := utils.StrToUint8(arguments[0])
 		if err != nil {
@@ -71,8 +92,8 @@ func (m BacnetipParserHelper) Parse(typeName string, arguments []string, io util
 		return model.BVLCForeignDeviceTableEntryParse(io)
 	case "BACnetReadAccessPropertyReadResult":
 		objectType := model.BACnetObjectTypeByName(arguments[0])
-		var propertyIdentifier model.BACnetContextTagPropertyIdentifier
-		return model.BACnetReadAccessPropertyReadResultParse(io, objectType, &propertyIdentifier)
+		propertyIdentifierArgument := model.BACnetPropertyIdentifierByName(arguments[1])
+		return model.BACnetReadAccessPropertyReadResultParse(io, objectType, propertyIdentifierArgument)
 	case "NLM":
 		apduLength, err := utils.StrToUint16(arguments[0])
 		if err != nil {
@@ -82,12 +103,12 @@ func (m BacnetipParserHelper) Parse(typeName string, arguments []string, io util
 	case "BACnetActionCommand":
 		return model.BACnetActionCommandParse(io)
 	case "BACnetReliabilityTagged":
-		tagClass := model.TagClassByName(arguments[0])
-		tagNumber, err := utils.StrToUint8(arguments[1])
+		tagNumber, err := utils.StrToUint8(arguments[0])
 		if err != nil {
 			return nil, errors.Wrap(err, "Error parsing")
 		}
-		return model.BACnetReliabilityTaggedParse(io, tagClass, tagNumber)
+		tagClass := model.TagClassByName(arguments[1])
+		return model.BACnetReliabilityTaggedParse(io, tagNumber, tagClass)
 	case "BACnetTagPayloadDate":
 		return model.BACnetTagPayloadDateParse(io)
 	case "BACnetNotificationParametersExtendedParameters":
@@ -96,6 +117,13 @@ func (m BacnetipParserHelper) Parse(typeName string, arguments []string, io util
 			return nil, errors.Wrap(err, "Error parsing")
 		}
 		return model.BACnetNotificationParametersExtendedParametersParse(io, tagNumber)
+	case "BACnetConfirmedServiceRequestReinitializeDeviceEnableDisableTagged":
+		tagNumber, err := utils.StrToUint8(arguments[0])
+		if err != nil {
+			return nil, errors.Wrap(err, "Error parsing")
+		}
+		tagClass := model.TagClassByName(arguments[1])
+		return model.BACnetConfirmedServiceRequestReinitializeDeviceEnableDisableTaggedParse(io, tagNumber, tagClass)
 	case "BACnetReadAccessProperty":
 		objectType := model.BACnetObjectTypeByName(arguments[0])
 		return model.BACnetReadAccessPropertyParse(io, objectType)
@@ -105,6 +133,13 @@ func (m BacnetipParserHelper) Parse(typeName string, arguments []string, io util
 			return nil, errors.Wrap(err, "Error parsing")
 		}
 		return model.BACnetNotificationParametersChangeOfValueNewValueParse(io, tagNumber)
+	case "ErrorCodeTagged":
+		tagNumber, err := utils.StrToUint8(arguments[0])
+		if err != nil {
+			return nil, errors.Wrap(err, "Error parsing")
+		}
+		tagClass := model.TagClassByName(arguments[1])
+		return model.ErrorCodeTaggedParse(io, tagNumber, tagClass)
 	case "BACnetTagPayloadEnumerated":
 		actualLength, err := utils.StrToUint32(arguments[0])
 		if err != nil {
@@ -143,32 +178,38 @@ func (m BacnetipParserHelper) Parse(typeName string, arguments []string, io util
 			return nil, errors.Wrap(err, "Error parsing")
 		}
 		objectType := model.BACnetObjectTypeByName(arguments[1])
-		var propertyIdentifierArgument model.BACnetContextTagPropertyIdentifier
-		return model.BACnetConstructedDataParse(io, tagNumber, objectType, &propertyIdentifierArgument)
+		propertyIdentifierArgument := model.BACnetPropertyIdentifierByName(arguments[2])
+		return model.BACnetConstructedDataParse(io, tagNumber, objectType, propertyIdentifierArgument)
 	case "BACnetTimeStampEnclosed":
 		tagNumber, err := utils.StrToUint8(arguments[0])
 		if err != nil {
 			return nil, errors.Wrap(err, "Error parsing")
 		}
 		return model.BACnetTimeStampEnclosedParse(io, tagNumber)
+	case "BACnetEventTypeTagged":
+		tagNumber, err := utils.StrToUint8(arguments[0])
+		if err != nil {
+			return nil, errors.Wrap(err, "Error parsing")
+		}
+		tagClass := model.TagClassByName(arguments[1])
+		return model.BACnetEventTypeTaggedParse(io, tagNumber, tagClass)
 	case "BACnetObjectPropertyReference":
 		return model.BACnetObjectPropertyReferenceParse(io)
-	case "BACnetSegmentation":
-		return model.BACnetSegmentationParse(io)
-	case "BACnetResultFlags":
+	case "BACnetLifeSafetyStateTagged":
 		tagNumber, err := utils.StrToUint8(arguments[0])
 		if err != nil {
 			return nil, errors.Wrap(err, "Error parsing")
 		}
-		return model.BACnetResultFlagsParse(io, tagNumber)
-	case "BACnetTagPayloadTime":
-		return model.BACnetTagPayloadTimeParse(io)
-	case "BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable":
+		tagClass := model.TagClassByName(arguments[1])
+		return model.BACnetLifeSafetyStateTaggedParse(io, tagNumber, tagClass)
+	case "BACnetResultFlags":
 		tagNumber, err := utils.StrToUint8(arguments[0])
 		if err != nil {
 			return nil, errors.Wrap(err, "Error parsing")
 		}
-		return model.BACnetConfirmedServiceRequestReinitializeDeviceEnableDisableParse(io, tagNumber)
+		return model.BACnetResultFlagsParse(io, tagNumber)
+	case "BACnetTagPayloadTime":
+		return model.BACnetTagPayloadTimeParse(io)
 	case "BACnetTagPayloadSignedInteger":
 		actualLength, err := utils.StrToUint32(arguments[0])
 		if err != nil {
@@ -224,6 +265,13 @@ func (m BacnetipParserHelper) Parse(typeName string, arguments []string, io util
 			return nil, errors.Wrap(err, "Error parsing")
 		}
 		return model.APDUParse(io, apduLength)
+	case "BACnetSegmentationTagged":
+		tagNumber, err := utils.StrToUint8(arguments[0])
+		if err != nil {
+			return nil, errors.Wrap(err, "Error parsing")
+		}
+		tagClass := model.TagClassByName(arguments[1])
+		return model.BACnetSegmentationTaggedParse(io, tagNumber, tagClass)
 	case "BACnetTagPayloadCharacterString":
 		actualLength, err := utils.StrToUint32(arguments[0])
 		if err != nil {
@@ -235,6 +283,13 @@ func (m BacnetipParserHelper) Parse(typeName string, arguments []string, io util
 	case "BACnetError":
 		errorChoice := model.BACnetConfirmedServiceChoiceByName(arguments[0])
 		return model.BACnetErrorParse(io, errorChoice)
+	case "BACnetPropertyIdentifierTagged":
+		tagNumber, err := utils.StrToUint8(arguments[0])
+		if err != nil {
+			return nil, errors.Wrap(err, "Error parsing")
+		}
+		tagClass := model.TagClassByName(arguments[1])
+		return model.BACnetPropertyIdentifierTaggedParse(io, tagNumber, tagClass)
 	case "BACnetTimeStamp":
 		return model.BACnetTimeStampParse(io)
 	case "BACnetNotificationParameters":
@@ -274,6 +329,12 @@ func (m BacnetipParserHelper) Parse(typeName string, arguments []string, io util
 			return nil, errors.Wrap(err, "Error parsing")
 		}
 		return model.BACnetEventSummariesListParse(io, tagNumber)
+	case "AbortReasonTagged":
+		actualLength, err := utils.StrToUint32(arguments[0])
+		if err != nil {
+			return nil, errors.Wrap(err, "Error parsing")
+		}
+		return model.AbortReasonTaggedParse(io, actualLength)
 	case "BACnetAddress":
 		return model.BACnetAddressParse(io)
 	case "BACnetTagPayloadUnsignedInteger":
@@ -292,6 +353,13 @@ func (m BacnetipParserHelper) Parse(typeName string, arguments []string, io util
 			return nil, errors.Wrap(err, "Error parsing")
 		}
 		return model.BACnetTagPayloadBitStringParse(io, actualLength)
+	case "BACnetNetworkTypeTagged":
+		tagNumber, err := utils.StrToUint8(arguments[0])
+		if err != nil {
+			return nil, errors.Wrap(err, "Error parsing")
+		}
+		tagClass := model.TagClassByName(arguments[1])
+		return model.BACnetNetworkTypeTaggedParse(io, tagNumber, tagClass)
 	case "BACnetObjectPropertyReferenceEnclosed":
 		tagNumber, err := utils.StrToUint8(arguments[0])
 		if err != nil {
@@ -302,8 +370,15 @@ func (m BacnetipParserHelper) Parse(typeName string, arguments []string, io util
 		return model.BACnetDeviceObjectPropertyReferenceParse(io)
 	case "BACnetConstructedDataElement":
 		objectType := model.BACnetObjectTypeByName(arguments[0])
-		var propertyIdentifier model.BACnetContextTagPropertyIdentifier
-		return model.BACnetConstructedDataElementParse(io, objectType, &propertyIdentifier)
+		propertyIdentifierArgument := model.BACnetPropertyIdentifierByName(arguments[1])
+		return model.BACnetConstructedDataElementParse(io, objectType, propertyIdentifierArgument)
+	case "BACnetEventStateTagged":
+		tagNumber, err := utils.StrToUint8(arguments[0])
+		if err != nil {
+			return nil, errors.Wrap(err, "Error parsing")
+		}
+		tagClass := model.TagClassByName(arguments[1])
+		return model.BACnetEventStateTaggedParse(io, tagNumber, tagClass)
 	case "BACnetPropertyValues":
 		tagNumber, err := utils.StrToUint8(arguments[0])
 		if err != nil {
@@ -342,10 +417,6 @@ func (m BacnetipParserHelper) Parse(typeName string, arguments []string, io util
 		return model.SubscribeCOVPropertyMultipleErrorFirstFailedSubscriptionParse(io, tagNumber)
 	case "BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecifications":
 		return model.BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsParse(io)
-	case "BACnetConstructedDataAcceptedModesEntry":
-		return model.BACnetConstructedDataAcceptedModesEntryParse(io)
-	case "BACnetConstructedDataLifeSafetyStateEntry":
-		return model.BACnetConstructedDataLifeSafetyStateEntryParse(io)
 	case "BACnetWriteAccessSpecification":
 		return model.BACnetWriteAccessSpecificationParse(io)
 	case "BACnetServiceAck":
@@ -360,6 +431,12 @@ func (m BacnetipParserHelper) Parse(typeName string, arguments []string, io util
 			return nil, errors.Wrap(err, "Error parsing")
 		}
 		return model.BACnetBinaryPVParse(io, tagNumber)
+	case "RejectReasonTagged":
+		actualLength, err := utils.StrToUint32(arguments[0])
+		if err != nil {
+			return nil, errors.Wrap(err, "Error parsing")
+		}
+		return model.RejectReasonTaggedParse(io, actualLength)
 	case "ListOfCovNotifications":
 		return model.ListOfCovNotificationsParse(io)
 	case "BACnetConfirmedServiceRequestCreateObjectObjectSpecifier":
@@ -390,6 +467,13 @@ func (m BacnetipParserHelper) Parse(typeName string, arguments []string, io util
 		return model.NPDUParse(io, npduLength)
 	case "BACnetPropertyReference":
 		return model.BACnetPropertyReferenceParse(io)
+	case "BACnetLifeSafetyModeTagged":
+		tagNumber, err := utils.StrToUint8(arguments[0])
+		if err != nil {
+			return nil, errors.Wrap(err, "Error parsing")
+		}
+		tagClass := model.TagClassByName(arguments[1])
+		return model.BACnetLifeSafetyModeTaggedParse(io, tagNumber, tagClass)
 	}
 	return nil, errors.Errorf("Unsupported type %s", typeName)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/XmlParserHelper.go b/plc4go/internal/plc4go/bacnetip/readwrite/XmlParserHelper.go
index 346425c1a4..fa73e4b6a4 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/XmlParserHelper.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/XmlParserHelper.go
@@ -50,6 +50,22 @@ func (m BacnetipXmlParserHelper) Parse(typeName string, xmlString string, parser
 		tagNumberArgument := uint8(parsedUint0)
 		dataType := model.BACnetDataTypeByName(parserArguments[1])
 		return model.BACnetContextTagParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)), tagNumberArgument, dataType)
+	case "BACnetNotifyTypeTagged":
+		parsedUint0, err := strconv.ParseUint(parserArguments[0], 10, 8)
+		if err != nil {
+			return nil, err
+		}
+		tagNumber := uint8(parsedUint0)
+		tagClass := model.TagClassByName(parserArguments[1])
+		return model.BACnetNotifyTypeTaggedParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)), tagNumber, tagClass)
+	case "ErrorClassTagged":
+		parsedUint0, err := strconv.ParseUint(parserArguments[0], 10, 8)
+		if err != nil {
+			return nil, err
+		}
+		tagNumber := uint8(parsedUint0)
+		tagClass := model.TagClassByName(parserArguments[1])
+		return model.ErrorClassTaggedParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)), tagNumber, tagClass)
 	case "BACnetStatusFlags":
 		parsedUint0, err := strconv.ParseUint(parserArguments[0], 10, 8)
 		if err != nil {
@@ -57,6 +73,14 @@ func (m BacnetipXmlParserHelper) Parse(typeName string, xmlString string, parser
 		}
 		tagNumber := uint8(parsedUint0)
 		return model.BACnetStatusFlagsParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)), tagNumber)
+	case "BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDeviceTagged":
+		parsedUint0, err := strconv.ParseUint(parserArguments[0], 10, 8)
+		if err != nil {
+			return nil, err
+		}
+		tagNumber := uint8(parsedUint0)
+		tagClass := model.TagClassByName(parserArguments[1])
+		return model.BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDeviceTaggedParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)), tagNumber, tagClass)
 	case "BACnetPropertyReferenceEnclosed":
 		parsedUint0, err := strconv.ParseUint(parserArguments[0], 10, 8)
 		if err != nil {
@@ -86,9 +110,8 @@ func (m BacnetipXmlParserHelper) Parse(typeName string, xmlString string, parser
 		return model.BVLCForeignDeviceTableEntryParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)))
 	case "BACnetReadAccessPropertyReadResult":
 		objectType := model.BACnetObjectTypeByName(parserArguments[0])
-		// TODO: find a way to parse the sub types
-		var propertyIdentifier model.BACnetContextTagPropertyIdentifier
-		return model.BACnetReadAccessPropertyReadResultParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)), objectType, &propertyIdentifier)
+		propertyIdentifierArgument := model.BACnetPropertyIdentifierByName(parserArguments[1])
+		return model.BACnetReadAccessPropertyReadResultParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)), objectType, propertyIdentifierArgument)
 	case "NLM":
 		parsedUint0, err := strconv.ParseUint(parserArguments[0], 10, 16)
 		if err != nil {
@@ -99,13 +122,13 @@ func (m BacnetipXmlParserHelper) Parse(typeName string, xmlString string, parser
 	case "BACnetActionCommand":
 		return model.BACnetActionCommandParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)))
 	case "BACnetReliabilityTagged":
-		tagClass := model.TagClassByName(parserArguments[0])
-		parsedUint1, err := strconv.ParseUint(parserArguments[1], 10, 8)
+		parsedUint0, err := strconv.ParseUint(parserArguments[0], 10, 8)
 		if err != nil {
 			return nil, err
 		}
-		tagNumber := uint8(parsedUint1)
-		return model.BACnetReliabilityTaggedParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)), tagClass, tagNumber)
+		tagNumber := uint8(parsedUint0)
+		tagClass := model.TagClassByName(parserArguments[1])
+		return model.BACnetReliabilityTaggedParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)), tagNumber, tagClass)
 	case "BACnetTagPayloadDate":
 		return model.BACnetTagPayloadDateParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)))
 	case "BACnetNotificationParametersExtendedParameters":
@@ -115,6 +138,14 @@ func (m BacnetipXmlParserHelper) Parse(typeName string, xmlString string, parser
 		}
 		tagNumber := uint8(parsedUint0)
 		return model.BACnetNotificationParametersExtendedParametersParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)), tagNumber)
+	case "BACnetConfirmedServiceRequestReinitializeDeviceEnableDisableTagged":
+		parsedUint0, err := strconv.ParseUint(parserArguments[0], 10, 8)
+		if err != nil {
+			return nil, err
+		}
+		tagNumber := uint8(parsedUint0)
+		tagClass := model.TagClassByName(parserArguments[1])
+		return model.BACnetConfirmedServiceRequestReinitializeDeviceEnableDisableTaggedParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)), tagNumber, tagClass)
 	case "BACnetReadAccessProperty":
 		objectType := model.BACnetObjectTypeByName(parserArguments[0])
 		return model.BACnetReadAccessPropertyParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)), objectType)
@@ -125,6 +156,14 @@ func (m BacnetipXmlParserHelper) Parse(typeName string, xmlString string, parser
 		}
 		tagNumber := uint8(parsedUint0)
 		return model.BACnetNotificationParametersChangeOfValueNewValueParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)), tagNumber)
+	case "ErrorCodeTagged":
+		parsedUint0, err := strconv.ParseUint(parserArguments[0], 10, 8)
+		if err != nil {
+			return nil, err
+		}
+		tagNumber := uint8(parsedUint0)
+		tagClass := model.TagClassByName(parserArguments[1])
+		return model.ErrorCodeTaggedParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)), tagNumber, tagClass)
 	case "BACnetTagPayloadEnumerated":
 		parsedUint0, err := strconv.ParseUint(parserArguments[0], 10, 32)
 		if err != nil {
@@ -168,9 +207,8 @@ func (m BacnetipXmlParserHelper) Parse(typeName string, xmlString string, parser
 		}
 		tagNumber := uint8(parsedUint0)
 		objectType := model.BACnetObjectTypeByName(parserArguments[1])
-		// TODO: find a way to parse the sub types
-		var propertyIdentifierArgument model.BACnetContextTagPropertyIdentifier
-		return model.BACnetConstructedDataParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)), tagNumber, objectType, &propertyIdentifierArgument)
+		propertyIdentifierArgument := model.BACnetPropertyIdentifierByName(parserArguments[2])
+		return model.BACnetConstructedDataParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)), tagNumber, objectType, propertyIdentifierArgument)
 	case "BACnetTimeStampEnclosed":
 		parsedUint0, err := strconv.ParseUint(parserArguments[0], 10, 8)
 		if err != nil {
@@ -178,26 +216,33 @@ func (m BacnetipXmlParserHelper) Parse(typeName string, xmlString string, parser
 		}
 		tagNumber := uint8(parsedUint0)
 		return model.BACnetTimeStampEnclosedParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)), tagNumber)
+	case "BACnetEventTypeTagged":
+		parsedUint0, err := strconv.ParseUint(parserArguments[0], 10, 8)
+		if err != nil {
+			return nil, err
+		}
+		tagNumber := uint8(parsedUint0)
+		tagClass := model.TagClassByName(parserArguments[1])
+		return model.BACnetEventTypeTaggedParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)), tagNumber, tagClass)
 	case "BACnetObjectPropertyReference":
 		return model.BACnetObjectPropertyReferenceParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)))
-	case "BACnetSegmentation":
-		return model.BACnetSegmentationParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)))
-	case "BACnetResultFlags":
+	case "BACnetLifeSafetyStateTagged":
 		parsedUint0, err := strconv.ParseUint(parserArguments[0], 10, 8)
 		if err != nil {
 			return nil, err
 		}
 		tagNumber := uint8(parsedUint0)
-		return model.BACnetResultFlagsParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)), tagNumber)
-	case "BACnetTagPayloadTime":
-		return model.BACnetTagPayloadTimeParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)))
-	case "BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable":
+		tagClass := model.TagClassByName(parserArguments[1])
+		return model.BACnetLifeSafetyStateTaggedParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)), tagNumber, tagClass)
+	case "BACnetResultFlags":
 		parsedUint0, err := strconv.ParseUint(parserArguments[0], 10, 8)
 		if err != nil {
 			return nil, err
 		}
 		tagNumber := uint8(parsedUint0)
-		return model.BACnetConfirmedServiceRequestReinitializeDeviceEnableDisableParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)), tagNumber)
+		return model.BACnetResultFlagsParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)), tagNumber)
+	case "BACnetTagPayloadTime":
+		return model.BACnetTagPayloadTimeParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)))
 	case "BACnetTagPayloadSignedInteger":
 		parsedUint0, err := strconv.ParseUint(parserArguments[0], 10, 32)
 		if err != nil {
@@ -259,6 +304,14 @@ func (m BacnetipXmlParserHelper) Parse(typeName string, xmlString string, parser
 		}
 		apduLength := uint16(parsedUint0)
 		return model.APDUParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)), apduLength)
+	case "BACnetSegmentationTagged":
+		parsedUint0, err := strconv.ParseUint(parserArguments[0], 10, 8)
+		if err != nil {
+			return nil, err
+		}
+		tagNumber := uint8(parsedUint0)
+		tagClass := model.TagClassByName(parserArguments[1])
+		return model.BACnetSegmentationTaggedParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)), tagNumber, tagClass)
 	case "BACnetTagPayloadCharacterString":
 		parsedUint0, err := strconv.ParseUint(parserArguments[0], 10, 32)
 		if err != nil {
@@ -271,6 +324,14 @@ func (m BacnetipXmlParserHelper) Parse(typeName string, xmlString string, parser
 	case "BACnetError":
 		errorChoice := model.BACnetConfirmedServiceChoiceByName(parserArguments[0])
 		return model.BACnetErrorParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)), errorChoice)
+	case "BACnetPropertyIdentifierTagged":
+		parsedUint0, err := strconv.ParseUint(parserArguments[0], 10, 8)
+		if err != nil {
+			return nil, err
+		}
+		tagNumber := uint8(parsedUint0)
+		tagClass := model.TagClassByName(parserArguments[1])
+		return model.BACnetPropertyIdentifierTaggedParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)), tagNumber, tagClass)
 	case "BACnetTimeStamp":
 		return model.BACnetTimeStampParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)))
 	case "BACnetNotificationParameters":
@@ -316,6 +377,13 @@ func (m BacnetipXmlParserHelper) Parse(typeName string, xmlString string, parser
 		}
 		tagNumber := uint8(parsedUint0)
 		return model.BACnetEventSummariesListParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)), tagNumber)
+	case "AbortReasonTagged":
+		parsedUint0, err := strconv.ParseUint(parserArguments[0], 10, 32)
+		if err != nil {
+			return nil, err
+		}
+		actualLength := uint32(parsedUint0)
+		return model.AbortReasonTaggedParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)), actualLength)
 	case "BACnetAddress":
 		return model.BACnetAddressParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)))
 	case "BACnetTagPayloadUnsignedInteger":
@@ -336,6 +404,14 @@ func (m BacnetipXmlParserHelper) Parse(typeName string, xmlString string, parser
 		}
 		actualLength := uint32(parsedUint0)
 		return model.BACnetTagPayloadBitStringParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)), actualLength)
+	case "BACnetNetworkTypeTagged":
+		parsedUint0, err := strconv.ParseUint(parserArguments[0], 10, 8)
+		if err != nil {
+			return nil, err
+		}
+		tagNumber := uint8(parsedUint0)
+		tagClass := model.TagClassByName(parserArguments[1])
+		return model.BACnetNetworkTypeTaggedParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)), tagNumber, tagClass)
 	case "BACnetObjectPropertyReferenceEnclosed":
 		parsedUint0, err := strconv.ParseUint(parserArguments[0], 10, 8)
 		if err != nil {
@@ -347,9 +423,16 @@ func (m BacnetipXmlParserHelper) Parse(typeName string, xmlString string, parser
 		return model.BACnetDeviceObjectPropertyReferenceParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)))
 	case "BACnetConstructedDataElement":
 		objectType := model.BACnetObjectTypeByName(parserArguments[0])
-		// TODO: find a way to parse the sub types
-		var propertyIdentifier model.BACnetContextTagPropertyIdentifier
-		return model.BACnetConstructedDataElementParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)), objectType, &propertyIdentifier)
+		propertyIdentifierArgument := model.BACnetPropertyIdentifierByName(parserArguments[1])
+		return model.BACnetConstructedDataElementParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)), objectType, propertyIdentifierArgument)
+	case "BACnetEventStateTagged":
+		parsedUint0, err := strconv.ParseUint(parserArguments[0], 10, 8)
+		if err != nil {
+			return nil, err
+		}
+		tagNumber := uint8(parsedUint0)
+		tagClass := model.TagClassByName(parserArguments[1])
+		return model.BACnetEventStateTaggedParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)), tagNumber, tagClass)
 	case "BACnetPropertyValues":
 		parsedUint0, err := strconv.ParseUint(parserArguments[0], 10, 8)
 		if err != nil {
@@ -392,10 +475,6 @@ func (m BacnetipXmlParserHelper) Parse(typeName string, xmlString string, parser
 		return model.SubscribeCOVPropertyMultipleErrorFirstFailedSubscriptionParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)), tagNumber)
 	case "BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecifications":
 		return model.BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleListOfCovSubscriptionSpecificationsParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)))
-	case "BACnetConstructedDataAcceptedModesEntry":
-		return model.BACnetConstructedDataAcceptedModesEntryParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)))
-	case "BACnetConstructedDataLifeSafetyStateEntry":
-		return model.BACnetConstructedDataLifeSafetyStateEntryParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)))
 	case "BACnetWriteAccessSpecification":
 		return model.BACnetWriteAccessSpecificationParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)))
 	case "BACnetServiceAck":
@@ -412,6 +491,13 @@ func (m BacnetipXmlParserHelper) Parse(typeName string, xmlString string, parser
 		}
 		tagNumber := uint8(parsedUint0)
 		return model.BACnetBinaryPVParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)), tagNumber)
+	case "RejectReasonTagged":
+		parsedUint0, err := strconv.ParseUint(parserArguments[0], 10, 32)
+		if err != nil {
+			return nil, err
+		}
+		actualLength := uint32(parsedUint0)
+		return model.RejectReasonTaggedParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)), actualLength)
 	case "ListOfCovNotifications":
 		return model.ListOfCovNotificationsParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)))
 	case "BACnetConfirmedServiceRequestCreateObjectObjectSpecifier":
@@ -446,6 +532,14 @@ func (m BacnetipXmlParserHelper) Parse(typeName string, xmlString string, parser
 		return model.NPDUParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)), npduLength)
 	case "BACnetPropertyReference":
 		return model.BACnetPropertyReferenceParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)))
+	case "BACnetLifeSafetyModeTagged":
+		parsedUint0, err := strconv.ParseUint(parserArguments[0], 10, 8)
+		if err != nil {
+			return nil, err
+		}
+		tagNumber := uint8(parsedUint0)
+		tagClass := model.TagClassByName(parserArguments[1])
+		return model.BACnetLifeSafetyModeTaggedParse(utils.NewXmlReadBuffer(strings.NewReader(xmlString)), tagNumber, tagClass)
 	}
 	return nil, errors.Errorf("Unsupported type %s", typeName)
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUAbort.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUAbort.go
index cfe910a7be..fbe35062c8 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUAbort.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUAbort.go
@@ -32,7 +32,7 @@ type APDUAbort struct {
 	*APDU
 	Server           bool
 	OriginalInvokeId uint8
-	RawAbortReason   uint8
+	AbortReason      *AbortReasonTagged
 
 	// Arguments.
 	ApduLength uint16
@@ -45,14 +45,8 @@ type IAPDUAbort interface {
 	GetServer() bool
 	// GetOriginalInvokeId returns OriginalInvokeId (property field)
 	GetOriginalInvokeId() uint8
-	// GetRawAbortReason returns RawAbortReason (property field)
-	GetRawAbortReason() uint8
-	// GetIsAbortReasonProprietary returns IsAbortReasonProprietary (virtual field)
-	GetIsAbortReasonProprietary() bool
-	// GetAbortReason returns AbortReason (virtual field)
-	GetAbortReason() AbortReason
-	// GetAbortReasonProprietary returns AbortReasonProprietary (virtual field)
-	GetAbortReasonProprietary() uint8
+	// GetAbortReason returns AbortReason (property field)
+	GetAbortReason() *AbortReasonTagged
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
@@ -94,29 +88,8 @@ func (m *APDUAbort) GetOriginalInvokeId() uint8 {
 	return m.OriginalInvokeId
 }
 
-func (m *APDUAbort) GetRawAbortReason() uint8 {
-	return m.RawAbortReason
-}
-
-///////////////////////
-///////////////////////
-///////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////
-/////////////////////// Accessors for virtual fields.
-///////////////////////
-
-func (m *APDUAbort) GetIsAbortReasonProprietary() bool {
-	return bool(bool((m.GetRawAbortReason()) > (63)))
-}
-
-func (m *APDUAbort) GetAbortReason() AbortReason {
-	return AbortReason(MapAbortReason(m.GetRawAbortReason(), m.GetIsAbortReasonProprietary()))
-}
-
-func (m *APDUAbort) GetAbortReasonProprietary() uint8 {
-	return uint8(utils.InlineIf(m.GetIsAbortReasonProprietary(), func() interface{} { return uint8(m.GetRawAbortReason()) }, func() interface{} { return uint8(uint8(0)) }).(uint8))
+func (m *APDUAbort) GetAbortReason() *AbortReasonTagged {
+	return m.AbortReason
 }
 
 ///////////////////////
@@ -125,11 +98,11 @@ func (m *APDUAbort) GetAbortReasonProprietary() uint8 {
 ///////////////////////////////////////////////////////////
 
 // NewAPDUAbort factory function for APDUAbort
-func NewAPDUAbort(server bool, originalInvokeId uint8, rawAbortReason uint8, apduLength uint16) *APDUAbort {
+func NewAPDUAbort(server bool, originalInvokeId uint8, abortReason *AbortReasonTagged, apduLength uint16) *APDUAbort {
 	_result := &APDUAbort{
 		Server:           server,
 		OriginalInvokeId: originalInvokeId,
-		RawAbortReason:   rawAbortReason,
+		AbortReason:      abortReason,
 		APDU:             NewAPDU(apduLength),
 	}
 	_result.Child = _result
@@ -172,14 +145,8 @@ func (m *APDUAbort) GetLengthInBitsConditional(lastItem bool) uint16 {
 	// Simple field (originalInvokeId)
 	lengthInBits += 8
 
-	// Simple field (rawAbortReason)
-	lengthInBits += 8
-
-	// A virtual field doesn't have any in- or output.
-
-	// A virtual field doesn't have any in- or output.
-
-	// A virtual field doesn't have any in- or output.
+	// Simple field (abortReason)
+	lengthInBits += m.AbortReason.GetLengthInBits()
 
 	return lengthInBits
 }
@@ -225,27 +192,18 @@ func APDUAbortParse(readBuffer utils.ReadBuffer, apduLength uint16) (*APDUAbort,
 	}
 	originalInvokeId := _originalInvokeId
 
-	// Simple Field (rawAbortReason)
-	_rawAbortReason, _rawAbortReasonErr := readBuffer.ReadUint8("rawAbortReason", 8)
-	if _rawAbortReasonErr != nil {
-		return nil, errors.Wrap(_rawAbortReasonErr, "Error parsing 'rawAbortReason' field")
+	// Simple Field (abortReason)
+	if pullErr := readBuffer.PullContext("abortReason"); pullErr != nil {
+		return nil, pullErr
+	}
+	_abortReason, _abortReasonErr := AbortReasonTaggedParse(readBuffer, uint32(uint32(1)))
+	if _abortReasonErr != nil {
+		return nil, errors.Wrap(_abortReasonErr, "Error parsing 'abortReason' field")
+	}
+	abortReason := CastAbortReasonTagged(_abortReason)
+	if closeErr := readBuffer.CloseContext("abortReason"); closeErr != nil {
+		return nil, closeErr
 	}
-	rawAbortReason := _rawAbortReason
-
-	// Virtual field
-	_isAbortReasonProprietary := bool((rawAbortReason) > (63))
-	isAbortReasonProprietary := bool(_isAbortReasonProprietary)
-	_ = isAbortReasonProprietary
-
-	// Virtual field
-	_abortReason := MapAbortReason(rawAbortReason, isAbortReasonProprietary)
-	abortReason := AbortReason(_abortReason)
-	_ = abortReason
-
-	// Virtual field
-	_abortReasonProprietary := utils.InlineIf(isAbortReasonProprietary, func() interface{} { return uint8(rawAbortReason) }, func() interface{} { return uint8(uint8(0)) }).(uint8)
-	abortReasonProprietary := uint8(_abortReasonProprietary)
-	_ = abortReasonProprietary
 
 	if closeErr := readBuffer.CloseContext("APDUAbort"); closeErr != nil {
 		return nil, closeErr
@@ -255,7 +213,7 @@ func APDUAbortParse(readBuffer utils.ReadBuffer, apduLength uint16) (*APDUAbort,
 	_child := &APDUAbort{
 		Server:           server,
 		OriginalInvokeId: originalInvokeId,
-		RawAbortReason:   rawAbortReason,
+		AbortReason:      CastAbortReasonTagged(abortReason),
 		APDU:             &APDU{},
 	}
 	_child.APDU.Child = _child
@@ -292,24 +250,17 @@ func (m *APDUAbort) Serialize(writeBuffer utils.WriteBuffer) error {
 			return errors.Wrap(_originalInvokeIdErr, "Error serializing 'originalInvokeId' field")
 		}
 
-		// Simple Field (rawAbortReason)
-		rawAbortReason := uint8(m.RawAbortReason)
-		_rawAbortReasonErr := writeBuffer.WriteUint8("rawAbortReason", 8, (rawAbortReason))
-		if _rawAbortReasonErr != nil {
-			return errors.Wrap(_rawAbortReasonErr, "Error serializing 'rawAbortReason' field")
+		// Simple Field (abortReason)
+		if pushErr := writeBuffer.PushContext("abortReason"); pushErr != nil {
+			return pushErr
 		}
-		// Virtual field
-		if _isAbortReasonProprietaryErr := writeBuffer.WriteVirtual("isAbortReasonProprietary", m.GetIsAbortReasonProprietary()); _isAbortReasonProprietaryErr != nil {
-			return errors.Wrap(_isAbortReasonProprietaryErr, "Error serializing 'isAbortReasonProprietary' field")
+		_abortReasonErr := m.AbortReason.Serialize(writeBuffer)
+		if popErr := writeBuffer.PopContext("abortReason"); popErr != nil {
+			return popErr
 		}
-		// Virtual field
-		if _abortReasonErr := writeBuffer.WriteVirtual("abortReason", m.GetAbortReason()); _abortReasonErr != nil {
+		if _abortReasonErr != nil {
 			return errors.Wrap(_abortReasonErr, "Error serializing 'abortReason' field")
 		}
-		// Virtual field
-		if _abortReasonProprietaryErr := writeBuffer.WriteVirtual("abortReasonProprietary", m.GetAbortReasonProprietary()); _abortReasonProprietaryErr != nil {
-			return errors.Wrap(_abortReasonProprietaryErr, "Error serializing 'abortReasonProprietary' field")
-		}
 
 		if popErr := writeBuffer.PopContext("APDUAbort"); popErr != nil {
 			return popErr
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUReject.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUReject.go
index 1817bd0fb8..95eb57d391 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUReject.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUReject.go
@@ -31,7 +31,7 @@ import (
 type APDUReject struct {
 	*APDU
 	OriginalInvokeId uint8
-	RawRejectReason  uint8
+	RejectReason     *RejectReasonTagged
 
 	// Arguments.
 	ApduLength uint16
@@ -42,14 +42,8 @@ type IAPDUReject interface {
 	IAPDU
 	// GetOriginalInvokeId returns OriginalInvokeId (property field)
 	GetOriginalInvokeId() uint8
-	// GetRawRejectReason returns RawRejectReason (property field)
-	GetRawRejectReason() uint8
-	// GetIsRejectReasonProprietary returns IsRejectReasonProprietary (virtual field)
-	GetIsRejectReasonProprietary() bool
-	// GetRejectReason returns RejectReason (virtual field)
-	GetRejectReason() RejectReason
-	// GetRejectReasonProprietary returns RejectReasonProprietary (virtual field)
-	GetRejectReasonProprietary() uint8
+	// GetRejectReason returns RejectReason (property field)
+	GetRejectReason() *RejectReasonTagged
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
@@ -87,29 +81,8 @@ func (m *APDUReject) GetOriginalInvokeId() uint8 {
 	return m.OriginalInvokeId
 }
 
-func (m *APDUReject) GetRawRejectReason() uint8 {
-	return m.RawRejectReason
-}
-
-///////////////////////
-///////////////////////
-///////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////
-/////////////////////// Accessors for virtual fields.
-///////////////////////
-
-func (m *APDUReject) GetIsRejectReasonProprietary() bool {
-	return bool(bool((m.GetRawRejectReason()) > (63)))
-}
-
-func (m *APDUReject) GetRejectReason() RejectReason {
-	return RejectReason(MapRejectReason(m.GetRawRejectReason(), m.GetIsRejectReasonProprietary()))
-}
-
-func (m *APDUReject) GetRejectReasonProprietary() uint8 {
-	return uint8(utils.InlineIf(m.GetIsRejectReasonProprietary(), func() interface{} { return uint8(m.GetRawRejectReason()) }, func() interface{} { return uint8(uint8(0)) }).(uint8))
+func (m *APDUReject) GetRejectReason() *RejectReasonTagged {
+	return m.RejectReason
 }
 
 ///////////////////////
@@ -118,10 +91,10 @@ func (m *APDUReject) GetRejectReasonProprietary() uint8 {
 ///////////////////////////////////////////////////////////
 
 // NewAPDUReject factory function for APDUReject
-func NewAPDUReject(originalInvokeId uint8, rawRejectReason uint8, apduLength uint16) *APDUReject {
+func NewAPDUReject(originalInvokeId uint8, rejectReason *RejectReasonTagged, apduLength uint16) *APDUReject {
 	_result := &APDUReject{
 		OriginalInvokeId: originalInvokeId,
-		RawRejectReason:  rawRejectReason,
+		RejectReason:     rejectReason,
 		APDU:             NewAPDU(apduLength),
 	}
 	_result.Child = _result
@@ -161,14 +134,8 @@ func (m *APDUReject) GetLengthInBitsConditional(lastItem bool) uint16 {
 	// Simple field (originalInvokeId)
 	lengthInBits += 8
 
-	// Simple field (rawRejectReason)
-	lengthInBits += 8
-
-	// A virtual field doesn't have any in- or output.
-
-	// A virtual field doesn't have any in- or output.
-
-	// A virtual field doesn't have any in- or output.
+	// Simple field (rejectReason)
+	lengthInBits += m.RejectReason.GetLengthInBits()
 
 	return lengthInBits
 }
@@ -207,27 +174,18 @@ func APDURejectParse(readBuffer utils.ReadBuffer, apduLength uint16) (*APDURejec
 	}
 	originalInvokeId := _originalInvokeId
 
-	// Simple Field (rawRejectReason)
-	_rawRejectReason, _rawRejectReasonErr := readBuffer.ReadUint8("rawRejectReason", 8)
-	if _rawRejectReasonErr != nil {
-		return nil, errors.Wrap(_rawRejectReasonErr, "Error parsing 'rawRejectReason' field")
+	// Simple Field (rejectReason)
+	if pullErr := readBuffer.PullContext("rejectReason"); pullErr != nil {
+		return nil, pullErr
+	}
+	_rejectReason, _rejectReasonErr := RejectReasonTaggedParse(readBuffer, uint32(uint32(1)))
+	if _rejectReasonErr != nil {
+		return nil, errors.Wrap(_rejectReasonErr, "Error parsing 'rejectReason' field")
+	}
+	rejectReason := CastRejectReasonTagged(_rejectReason)
+	if closeErr := readBuffer.CloseContext("rejectReason"); closeErr != nil {
+		return nil, closeErr
 	}
-	rawRejectReason := _rawRejectReason
-
-	// Virtual field
-	_isRejectReasonProprietary := bool((rawRejectReason) > (63))
-	isRejectReasonProprietary := bool(_isRejectReasonProprietary)
-	_ = isRejectReasonProprietary
-
-	// Virtual field
-	_rejectReason := MapRejectReason(rawRejectReason, isRejectReasonProprietary)
-	rejectReason := RejectReason(_rejectReason)
-	_ = rejectReason
-
-	// Virtual field
-	_rejectReasonProprietary := utils.InlineIf(isRejectReasonProprietary, func() interface{} { return uint8(rawRejectReason) }, func() interface{} { return uint8(uint8(0)) }).(uint8)
-	rejectReasonProprietary := uint8(_rejectReasonProprietary)
-	_ = rejectReasonProprietary
 
 	if closeErr := readBuffer.CloseContext("APDUReject"); closeErr != nil {
 		return nil, closeErr
@@ -236,7 +194,7 @@ func APDURejectParse(readBuffer utils.ReadBuffer, apduLength uint16) (*APDURejec
 	// Create a partially initialized instance
 	_child := &APDUReject{
 		OriginalInvokeId: originalInvokeId,
-		RawRejectReason:  rawRejectReason,
+		RejectReason:     CastRejectReasonTagged(rejectReason),
 		APDU:             &APDU{},
 	}
 	_child.APDU.Child = _child
@@ -266,24 +224,17 @@ func (m *APDUReject) Serialize(writeBuffer utils.WriteBuffer) error {
 			return errors.Wrap(_originalInvokeIdErr, "Error serializing 'originalInvokeId' field")
 		}
 
-		// Simple Field (rawRejectReason)
-		rawRejectReason := uint8(m.RawRejectReason)
-		_rawRejectReasonErr := writeBuffer.WriteUint8("rawRejectReason", 8, (rawRejectReason))
-		if _rawRejectReasonErr != nil {
-			return errors.Wrap(_rawRejectReasonErr, "Error serializing 'rawRejectReason' field")
+		// Simple Field (rejectReason)
+		if pushErr := writeBuffer.PushContext("rejectReason"); pushErr != nil {
+			return pushErr
 		}
-		// Virtual field
-		if _isRejectReasonProprietaryErr := writeBuffer.WriteVirtual("isRejectReasonProprietary", m.GetIsRejectReasonProprietary()); _isRejectReasonProprietaryErr != nil {
-			return errors.Wrap(_isRejectReasonProprietaryErr, "Error serializing 'isRejectReasonProprietary' field")
+		_rejectReasonErr := m.RejectReason.Serialize(writeBuffer)
+		if popErr := writeBuffer.PopContext("rejectReason"); popErr != nil {
+			return popErr
 		}
-		// Virtual field
-		if _rejectReasonErr := writeBuffer.WriteVirtual("rejectReason", m.GetRejectReason()); _rejectReasonErr != nil {
+		if _rejectReasonErr != nil {
 			return errors.Wrap(_rejectReasonErr, "Error serializing 'rejectReason' field")
 		}
-		// Virtual field
-		if _rejectReasonProprietaryErr := writeBuffer.WriteVirtual("rejectReasonProprietary", m.GetRejectReasonProprietary()); _rejectReasonProprietaryErr != nil {
-			return errors.Wrap(_rejectReasonProprietaryErr, "Error serializing 'rejectReasonProprietary' field")
-		}
 
 		if popErr := writeBuffer.PopContext("APDUReject"); popErr != nil {
 			return popErr
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/AbortReason.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/AbortReason.go
index a673834d27..0ca7b17e1c 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/AbortReason.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/AbortReason.go
@@ -26,6 +26,7 @@ import (
 
 // Code generated by code-generation. DO NOT EDIT.
 
+// AbortReason is an enum
 type AbortReason uint8
 
 type IAbortReason interface {
@@ -45,6 +46,7 @@ const (
 	AbortReason_OUT_OF_RESOURCES                  AbortReason = 9
 	AbortReason_TSM_TIMEOUT                       AbortReason = 10
 	AbortReason_APDU_TOO_LONG                     AbortReason = 11
+	AbortReason_VENDOR_PROPRIETARY_VALUE          AbortReason = 0xFF
 )
 
 var AbortReasonValues []AbortReason
@@ -64,6 +66,7 @@ func init() {
 		AbortReason_OUT_OF_RESOURCES,
 		AbortReason_TSM_TIMEOUT,
 		AbortReason_APDU_TOO_LONG,
+		AbortReason_VENDOR_PROPRIETARY_VALUE,
 	}
 }
 
@@ -71,6 +74,8 @@ func AbortReasonByValue(value uint8) AbortReason {
 	switch value {
 	case 0:
 		return AbortReason_OTHER
+	case 0xFF:
+		return AbortReason_VENDOR_PROPRIETARY_VALUE
 	case 1:
 		return AbortReason_BUFFER_OVERFLOW
 	case 10:
@@ -101,6 +106,8 @@ func AbortReasonByName(value string) AbortReason {
 	switch value {
 	case "OTHER":
 		return AbortReason_OTHER
+	case "VENDOR_PROPRIETARY_VALUE":
+		return AbortReason_VENDOR_PROPRIETARY_VALUE
 	case "BUFFER_OVERFLOW":
 		return AbortReason_BUFFER_OVERFLOW
 	case "TSM_TIMEOUT":
@@ -170,6 +177,8 @@ func (e AbortReason) name() string {
 	switch e {
 	case AbortReason_OTHER:
 		return "OTHER"
+	case AbortReason_VENDOR_PROPRIETARY_VALUE:
+		return "VENDOR_PROPRIETARY_VALUE"
 	case AbortReason_BUFFER_OVERFLOW:
 		return "BUFFER_OVERFLOW"
 	case AbortReason_TSM_TIMEOUT:
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetReliabilityTagged.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/AbortReasonTagged.go
similarity index 51%
copy from plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetReliabilityTagged.go
copy to plc4go/internal/plc4go/bacnetip/readwrite/model/AbortReasonTagged.go
index 5b7b38b553..84e2fba1b2 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetReliabilityTagged.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/AbortReasonTagged.go
@@ -26,23 +26,19 @@ import (
 
 // Code generated by code-generation. DO NOT EDIT.
 
-// BACnetReliabilityTagged is the data-structure of this message
-type BACnetReliabilityTagged struct {
-	Header           *BACnetTagHeader
-	Value            BACnetReliability
+// AbortReasonTagged is the data-structure of this message
+type AbortReasonTagged struct {
+	Value            AbortReason
 	ProprietaryValue uint32
 
 	// Arguments.
-	TagClass  TagClass
-	TagNumber uint8
+	ActualLength uint32
 }
 
-// IBACnetReliabilityTagged is the corresponding interface of BACnetReliabilityTagged
-type IBACnetReliabilityTagged interface {
-	// GetHeader returns Header (property field)
-	GetHeader() *BACnetTagHeader
+// IAbortReasonTagged is the corresponding interface of AbortReasonTagged
+type IAbortReasonTagged interface {
 	// GetValue returns Value (property field)
-	GetValue() BACnetReliability
+	GetValue() AbortReason
 	// GetProprietaryValue returns ProprietaryValue (property field)
 	GetProprietaryValue() uint32
 	// GetIsProprietary returns IsProprietary (virtual field)
@@ -60,15 +56,11 @@ type IBACnetReliabilityTagged interface {
 /////////////////////// Accessors for property fields.
 ///////////////////////
 
-func (m *BACnetReliabilityTagged) GetHeader() *BACnetTagHeader {
-	return m.Header
-}
-
-func (m *BACnetReliabilityTagged) GetValue() BACnetReliability {
+func (m *AbortReasonTagged) GetValue() AbortReason {
 	return m.Value
 }
 
-func (m *BACnetReliabilityTagged) GetProprietaryValue() uint32 {
+func (m *AbortReasonTagged) GetProprietaryValue() uint32 {
 	return m.ProprietaryValue
 }
 
@@ -81,8 +73,8 @@ func (m *BACnetReliabilityTagged) GetProprietaryValue() uint32 {
 /////////////////////// Accessors for virtual fields.
 ///////////////////////
 
-func (m *BACnetReliabilityTagged) GetIsProprietary() bool {
-	return bool(bool((m.GetValue()) == (BACnetReliability_VENDOR_PROPRIETARY_VALUE)))
+func (m *AbortReasonTagged) GetIsProprietary() bool {
+	return bool(bool((m.GetValue()) == (AbortReason_VENDOR_PROPRIETARY_VALUE)))
 }
 
 ///////////////////////
@@ -90,128 +82,90 @@ func (m *BACnetReliabilityTagged) GetIsProprietary() bool {
 ///////////////////////////////////////////////////////////
 ///////////////////////////////////////////////////////////
 
-// NewBACnetReliabilityTagged factory function for BACnetReliabilityTagged
-func NewBACnetReliabilityTagged(header *BACnetTagHeader, value BACnetReliability, proprietaryValue uint32, tagClass TagClass, tagNumber uint8) *BACnetReliabilityTagged {
-	return &BACnetReliabilityTagged{Header: header, Value: value, ProprietaryValue: proprietaryValue, TagClass: tagClass, TagNumber: tagNumber}
+// NewAbortReasonTagged factory function for AbortReasonTagged
+func NewAbortReasonTagged(value AbortReason, proprietaryValue uint32, actualLength uint32) *AbortReasonTagged {
+	return &AbortReasonTagged{Value: value, ProprietaryValue: proprietaryValue, ActualLength: actualLength}
 }
 
-func CastBACnetReliabilityTagged(structType interface{}) *BACnetReliabilityTagged {
-	if casted, ok := structType.(BACnetReliabilityTagged); ok {
+func CastAbortReasonTagged(structType interface{}) *AbortReasonTagged {
+	if casted, ok := structType.(AbortReasonTagged); ok {
 		return &casted
 	}
-	if casted, ok := structType.(*BACnetReliabilityTagged); ok {
+	if casted, ok := structType.(*AbortReasonTagged); ok {
 		return casted
 	}
 	return nil
 }
 
-func (m *BACnetReliabilityTagged) GetTypeName() string {
-	return "BACnetReliabilityTagged"
+func (m *AbortReasonTagged) GetTypeName() string {
+	return "AbortReasonTagged"
 }
 
-func (m *BACnetReliabilityTagged) GetLengthInBits() uint16 {
+func (m *AbortReasonTagged) GetLengthInBits() uint16 {
 	return m.GetLengthInBitsConditional(false)
 }
 
-func (m *BACnetReliabilityTagged) GetLengthInBitsConditional(lastItem bool) uint16 {
+func (m *AbortReasonTagged) GetLengthInBitsConditional(lastItem bool) uint16 {
 	lengthInBits := uint16(0)
 
-	// Simple field (header)
-	lengthInBits += m.Header.GetLengthInBits()
-
 	// Manual Field (value)
-	lengthInBits += uint16(int32(m.GetHeader().GetActualLength()) * int32(int32(8)))
+	lengthInBits += uint16(int32(m.ActualLength) * int32(int32(8)))
 
 	// A virtual field doesn't have any in- or output.
 
 	// Manual Field (proprietaryValue)
-	lengthInBits += uint16(int32(m.GetHeader().GetActualLength()) * int32(int32(8)))
+	lengthInBits += uint16(utils.InlineIf(m.GetIsProprietary(), func() interface{} { return int32(int32(m.ActualLength) * int32(int32(8))) }, func() interface{} { return int32(int32(0)) }).(int32))
 
 	return lengthInBits
 }
 
-func (m *BACnetReliabilityTagged) GetLengthInBytes() uint16 {
+func (m *AbortReasonTagged) GetLengthInBytes() uint16 {
 	return m.GetLengthInBits() / 8
 }
 
-func BACnetReliabilityTaggedParse(readBuffer utils.ReadBuffer, tagClass TagClass, tagNumber uint8) (*BACnetReliabilityTagged, error) {
+func AbortReasonTaggedParse(readBuffer utils.ReadBuffer, actualLength uint32) (*AbortReasonTagged, error) {
 	positionAware := readBuffer
 	_ = positionAware
-	if pullErr := readBuffer.PullContext("BACnetReliabilityTagged"); pullErr != nil {
+	if pullErr := readBuffer.PullContext("AbortReasonTagged"); pullErr != nil {
 		return nil, pullErr
 	}
 	currentPos := positionAware.GetPos()
 	_ = currentPos
 
-	// Simple Field (header)
-	if pullErr := readBuffer.PullContext("header"); pullErr != nil {
-		return nil, pullErr
-	}
-	_header, _headerErr := BACnetTagHeaderParse(readBuffer)
-	if _headerErr != nil {
-		return nil, errors.Wrap(_headerErr, "Error parsing 'header' field")
-	}
-	header := CastBACnetTagHeader(_header)
-	if closeErr := readBuffer.CloseContext("header"); closeErr != nil {
-		return nil, closeErr
-	}
-
-	// Validation
-	if !(bool((header.GetTagClass()) == (tagClass))) {
-		return nil, utils.ParseValidationError{"tag doesn't match"}
-	}
-
-	// Validation
-	if !(bool(bool(bool((header.GetTagClass()) == (TagClass_APPLICATION_TAGS)))) || bool(bool(bool((header.GetActualTagNumber()) == (tagNumber))))) {
-		return nil, utils.ParseAssertError{"tagnumber doesn't match"}
-	}
-
 	// Manual Field (value)
-	_value, _valueErr := ReadEnumGeneric(readBuffer, header.GetActualLength(), BACnetReliability_VENDOR_PROPRIETARY_VALUE)
+	_value, _valueErr := ReadEnumGeneric(readBuffer, actualLength, AbortReason_VENDOR_PROPRIETARY_VALUE)
 	if _valueErr != nil {
 		return nil, errors.Wrap(_valueErr, "Error parsing 'value' field")
 	}
-	value := _value.(BACnetReliability)
+	value := _value.(AbortReason)
 
 	// Virtual field
-	_isProprietary := bool((value) == (BACnetReliability_VENDOR_PROPRIETARY_VALUE))
+	_isProprietary := bool((value) == (AbortReason_VENDOR_PROPRIETARY_VALUE))
 	isProprietary := bool(_isProprietary)
 	_ = isProprietary
 
 	// Manual Field (proprietaryValue)
-	_proprietaryValue, _proprietaryValueErr := ReadProprietaryEnumGeneric(readBuffer, header.GetActualLength(), isProprietary)
+	_proprietaryValue, _proprietaryValueErr := ReadProprietaryEnumGeneric(readBuffer, actualLength, isProprietary)
 	if _proprietaryValueErr != nil {
 		return nil, errors.Wrap(_proprietaryValueErr, "Error parsing 'proprietaryValue' field")
 	}
 	proprietaryValue := _proprietaryValue.(uint32)
 
-	if closeErr := readBuffer.CloseContext("BACnetReliabilityTagged"); closeErr != nil {
+	if closeErr := readBuffer.CloseContext("AbortReasonTagged"); closeErr != nil {
 		return nil, closeErr
 	}
 
 	// Create the instance
-	return NewBACnetReliabilityTagged(header, value, proprietaryValue, tagClass, tagNumber), nil
+	return NewAbortReasonTagged(value, proprietaryValue, actualLength), nil
 }
 
-func (m *BACnetReliabilityTagged) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *AbortReasonTagged) Serialize(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
-	if pushErr := writeBuffer.PushContext("BACnetReliabilityTagged"); pushErr != nil {
+	if pushErr := writeBuffer.PushContext("AbortReasonTagged"); pushErr != nil {
 		return pushErr
 	}
 
-	// Simple Field (header)
-	if pushErr := writeBuffer.PushContext("header"); pushErr != nil {
-		return pushErr
-	}
-	_headerErr := m.Header.Serialize(writeBuffer)
-	if popErr := writeBuffer.PopContext("header"); popErr != nil {
-		return popErr
-	}
-	if _headerErr != nil {
-		return errors.Wrap(_headerErr, "Error serializing 'header' field")
-	}
-
 	// Manual Field (value)
 	_valueErr := WriteEnumGeneric(writeBuffer, m.GetValue())
 	if _valueErr != nil {
@@ -228,13 +182,13 @@ func (m *BACnetReliabilityTagged) Serialize(writeBuffer utils.WriteBuffer) error
 		return errors.Wrap(_proprietaryValueErr, "Error serializing 'proprietaryValue' field")
 	}
 
-	if popErr := writeBuffer.PopContext("BACnetReliabilityTagged"); popErr != nil {
+	if popErr := writeBuffer.PopContext("AbortReasonTagged"); popErr != nil {
 		return popErr
 	}
 	return nil
 }
 
-func (m *BACnetReliabilityTagged) String() string {
+func (m *AbortReasonTagged) String() string {
 	if m == nil {
 		return "<nil>"
 	}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetActionCommand.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetActionCommand.go
index 4374cd5658..17d8f6b8b5 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetActionCommand.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetActionCommand.go
@@ -31,7 +31,7 @@ import (
 type BACnetActionCommand struct {
 	DeviceIdentifier   *BACnetContextTagObjectIdentifier
 	ObjectIdentifier   *BACnetContextTagObjectIdentifier
-	PropertyIdentifier *BACnetContextTagPropertyIdentifier
+	PropertyIdentifier *BACnetPropertyIdentifierTagged
 	ArrayIndex         *BACnetContextTagUnsignedInteger
 	PropertyValue      *BACnetConstructedData
 	Priority           *BACnetContextTagUnsignedInteger
@@ -47,7 +47,7 @@ type IBACnetActionCommand interface {
 	// GetObjectIdentifier returns ObjectIdentifier (property field)
 	GetObjectIdentifier() *BACnetContextTagObjectIdentifier
 	// GetPropertyIdentifier returns PropertyIdentifier (property field)
-	GetPropertyIdentifier() *BACnetContextTagPropertyIdentifier
+	GetPropertyIdentifier() *BACnetPropertyIdentifierTagged
 	// GetArrayIndex returns ArrayIndex (property field)
 	GetArrayIndex() *BACnetContextTagUnsignedInteger
 	// GetPropertyValue returns PropertyValue (property field)
@@ -81,7 +81,7 @@ func (m *BACnetActionCommand) GetObjectIdentifier() *BACnetContextTagObjectIdent
 	return m.ObjectIdentifier
 }
 
-func (m *BACnetActionCommand) GetPropertyIdentifier() *BACnetContextTagPropertyIdentifier {
+func (m *BACnetActionCommand) GetPropertyIdentifier() *BACnetPropertyIdentifierTagged {
 	return m.PropertyIdentifier
 }
 
@@ -115,7 +115,7 @@ func (m *BACnetActionCommand) GetWriteSuccessful() *BACnetContextTagBoolean {
 ///////////////////////////////////////////////////////////
 
 // NewBACnetActionCommand factory function for BACnetActionCommand
-func NewBACnetActionCommand(deviceIdentifier *BACnetContextTagObjectIdentifier, objectIdentifier *BACnetContextTagObjectIdentifier, propertyIdentifier *BACnetContextTagPropertyIdentifier, arrayIndex *BACnetContextTagUnsignedInteger, propertyValue *BACnetConstructedData, priority *BACnetContextTagUnsignedInteger, postDelay *BACnetContextTagBoolean, quitOnFailure *BACnetContextTagBoolean, writeSuccessful *BACnetContextTagBoolean) *BACnetActionCommand {
+func NewBACnetActionCommand(deviceIdentifier *BACnetContextTagObjectIdentifier, objectIdentifier *BACnetContextTagObjectIdentifier, propertyIdentifier *BACnetPropertyIdentifierTagged, arrayIndex *BACnetContextTagUnsignedInteger, propertyValue *BACnetConstructedData, priority *BACnetContextTagUnsignedInteger, postDelay *BACnetContextTagBoolean, quitOnFailure *BACnetContextTagBoolean, writeSuccessful *BACnetContextTagBoolean) *BACnetActionCommand {
 	return &BACnetActionCommand{DeviceIdentifier: deviceIdentifier, ObjectIdentifier: objectIdentifier, PropertyIdentifier: propertyIdentifier, ArrayIndex: arrayIndex, PropertyValue: propertyValue, Priority: priority, PostDelay: postDelay, QuitOnFailure: quitOnFailure, WriteSuccessful: writeSuccessful}
 }
 
@@ -231,11 +231,11 @@ func BACnetActionCommandParse(readBuffer utils.ReadBuffer) (*BACnetActionCommand
 	if pullErr := readBuffer.PullContext("propertyIdentifier"); pullErr != nil {
 		return nil, pullErr
 	}
-	_propertyIdentifier, _propertyIdentifierErr := BACnetContextTagParse(readBuffer, uint8(uint8(2)), BACnetDataType(BACnetDataType_BACNET_PROPERTY_IDENTIFIER))
+	_propertyIdentifier, _propertyIdentifierErr := BACnetPropertyIdentifierTaggedParse(readBuffer, uint8(uint8(2)), TagClass(TagClass_CONTEXT_SPECIFIC_TAGS))
 	if _propertyIdentifierErr != nil {
 		return nil, errors.Wrap(_propertyIdentifierErr, "Error parsing 'propertyIdentifier' field")
 	}
-	propertyIdentifier := CastBACnetContextTagPropertyIdentifier(_propertyIdentifier)
+	propertyIdentifier := CastBACnetPropertyIdentifierTagged(_propertyIdentifier)
 	if closeErr := readBuffer.CloseContext("propertyIdentifier"); closeErr != nil {
 		return nil, closeErr
 	}
@@ -268,7 +268,7 @@ func BACnetActionCommandParse(readBuffer utils.ReadBuffer) (*BACnetActionCommand
 		if pullErr := readBuffer.PullContext("propertyValue"); pullErr != nil {
 			return nil, pullErr
 		}
-		_val, _err := BACnetConstructedDataParse(readBuffer, uint8(4), objectIdentifier.GetObjectType(), propertyIdentifier)
+		_val, _err := BACnetConstructedDataParse(readBuffer, uint8(4), objectIdentifier.GetObjectType(), propertyIdentifier.GetValue())
 		switch {
 		case errors.Is(_err, utils.ParseAssertError{}) || errors.Is(_err, io.EOF):
 			readBuffer.Reset(currentPos)
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetCharacterEncoding.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetCharacterEncoding.go
index 287fc1b5f0..e4f26b8581 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetCharacterEncoding.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetCharacterEncoding.go
@@ -26,6 +26,7 @@ import (
 
 // Code generated by code-generation. DO NOT EDIT.
 
+// BACnetCharacterEncoding is an enum
 type BACnetCharacterEncoding byte
 
 type IBACnetCharacterEncoding interface {
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceChoice.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceChoice.go
index 8568c73123..5d3528ac7f 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceChoice.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceChoice.go
@@ -26,6 +26,7 @@ import (
 
 // Code generated by code-generation. DO NOT EDIT.
 
+// BACnetConfirmedServiceChoice is an enum
 type BACnetConfirmedServiceChoice uint8
 
 type IBACnetConfirmedServiceChoice interface {
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAcknowledgeAlarm.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAcknowledgeAlarm.go
index e685c30ad0..fc9f65c63c 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAcknowledgeAlarm.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAcknowledgeAlarm.go
@@ -31,7 +31,7 @@ type BACnetConfirmedServiceRequestAcknowledgeAlarm struct {
 	*BACnetConfirmedServiceRequest
 	AcknowledgingProcessIdentifier *BACnetContextTagUnsignedInteger
 	EventObjectIdentifier          *BACnetContextTagObjectIdentifier
-	EventStateAcknowledged         *BACnetContextTagEventState
+	EventStateAcknowledged         *BACnetEventStateTagged
 	Timestamp                      *BACnetTimeStampEnclosed
 	AcknowledgmentSource           *BACnetContextTagCharacterString
 	TimeOfAcknowledgment           *BACnetTimeStampEnclosed
@@ -48,7 +48,7 @@ type IBACnetConfirmedServiceRequestAcknowledgeAlarm interface {
 	// GetEventObjectIdentifier returns EventObjectIdentifier (property field)
 	GetEventObjectIdentifier() *BACnetContextTagObjectIdentifier
 	// GetEventStateAcknowledged returns EventStateAcknowledged (property field)
-	GetEventStateAcknowledged() *BACnetContextTagEventState
+	GetEventStateAcknowledged() *BACnetEventStateTagged
 	// GetTimestamp returns Timestamp (property field)
 	GetTimestamp() *BACnetTimeStampEnclosed
 	// GetAcknowledgmentSource returns AcknowledgmentSource (property field)
@@ -97,7 +97,7 @@ func (m *BACnetConfirmedServiceRequestAcknowledgeAlarm) GetEventObjectIdentifier
 	return m.EventObjectIdentifier
 }
 
-func (m *BACnetConfirmedServiceRequestAcknowledgeAlarm) GetEventStateAcknowledged() *BACnetContextTagEventState {
+func (m *BACnetConfirmedServiceRequestAcknowledgeAlarm) GetEventStateAcknowledged() *BACnetEventStateTagged {
 	return m.EventStateAcknowledged
 }
 
@@ -119,7 +119,7 @@ func (m *BACnetConfirmedServiceRequestAcknowledgeAlarm) GetTimeOfAcknowledgment(
 ///////////////////////////////////////////////////////////
 
 // NewBACnetConfirmedServiceRequestAcknowledgeAlarm factory function for BACnetConfirmedServiceRequestAcknowledgeAlarm
-func NewBACnetConfirmedServiceRequestAcknowledgeAlarm(acknowledgingProcessIdentifier *BACnetContextTagUnsignedInteger, eventObjectIdentifier *BACnetContextTagObjectIdentifier, eventStateAcknowledged *BACnetContextTagEventState, timestamp *BACnetTimeStampEnclosed, acknowledgmentSource *BACnetContextTagCharacterString, timeOfAcknowledgment *BACnetTimeStampEnclosed, serviceRequestLength uint16) *BACnetConfirmedServiceRequestAcknowledgeAlarm {
+func NewBACnetConfirmedServiceRequestAcknowledgeAlarm(acknowledgingProcessIdentifier *BACnetContextTagUnsignedInteger, eventObjectIdentifier *BACnetContextTagObjectIdentifier, eventStateAcknowledged *BACnetEventStateTagged, timestamp *BACnetTimeStampEnclosed, acknowledgmentSource *BACnetContextTagCharacterString, timeOfAcknowledgment *BACnetTimeStampEnclosed, serviceRequestLength uint16) *BACnetConfirmedServiceRequestAcknowledgeAlarm {
 	_result := &BACnetConfirmedServiceRequestAcknowledgeAlarm{
 		AcknowledgingProcessIdentifier: acknowledgingProcessIdentifier,
 		EventObjectIdentifier:          eventObjectIdentifier,
@@ -224,11 +224,11 @@ func BACnetConfirmedServiceRequestAcknowledgeAlarmParse(readBuffer utils.ReadBuf
 	if pullErr := readBuffer.PullContext("eventStateAcknowledged"); pullErr != nil {
 		return nil, pullErr
 	}
-	_eventStateAcknowledged, _eventStateAcknowledgedErr := BACnetContextTagParse(readBuffer, uint8(uint8(2)), BACnetDataType(BACnetDataType_EVENT_STATE))
+	_eventStateAcknowledged, _eventStateAcknowledgedErr := BACnetEventStateTaggedParse(readBuffer, uint8(uint8(2)), TagClass(TagClass_CONTEXT_SPECIFIC_TAGS))
 	if _eventStateAcknowledgedErr != nil {
 		return nil, errors.Wrap(_eventStateAcknowledgedErr, "Error parsing 'eventStateAcknowledged' field")
 	}
-	eventStateAcknowledged := CastBACnetContextTagEventState(_eventStateAcknowledged)
+	eventStateAcknowledged := CastBACnetEventStateTagged(_eventStateAcknowledged)
 	if closeErr := readBuffer.CloseContext("eventStateAcknowledged"); closeErr != nil {
 		return nil, closeErr
 	}
@@ -280,7 +280,7 @@ func BACnetConfirmedServiceRequestAcknowledgeAlarmParse(readBuffer utils.ReadBuf
 	_child := &BACnetConfirmedServiceRequestAcknowledgeAlarm{
 		AcknowledgingProcessIdentifier: CastBACnetContextTagUnsignedInteger(acknowledgingProcessIdentifier),
 		EventObjectIdentifier:          CastBACnetContextTagObjectIdentifier(eventObjectIdentifier),
-		EventStateAcknowledged:         CastBACnetContextTagEventState(eventStateAcknowledged),
+		EventStateAcknowledged:         CastBACnetEventStateTagged(eventStateAcknowledged),
 		Timestamp:                      CastBACnetTimeStampEnclosed(timestamp),
 		AcknowledgmentSource:           CastBACnetContextTagCharacterString(acknowledgmentSource),
 		TimeOfAcknowledgment:           CastBACnetTimeStampEnclosed(timeOfAcknowledgment),
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAddListElement.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAddListElement.go
index e2702c9b70..a158e70668 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAddListElement.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestAddListElement.go
@@ -31,7 +31,7 @@ import (
 type BACnetConfirmedServiceRequestAddListElement struct {
 	*BACnetConfirmedServiceRequest
 	ObjectIdentifier   *BACnetContextTagObjectIdentifier
-	PropertyIdentifier *BACnetContextTagPropertyIdentifier
+	PropertyIdentifier *BACnetPropertyIdentifierTagged
 	ArrayIndex         *BACnetContextTagUnsignedInteger
 	ListOfElements     *BACnetConstructedData
 
@@ -45,7 +45,7 @@ type IBACnetConfirmedServiceRequestAddListElement interface {
 	// GetObjectIdentifier returns ObjectIdentifier (property field)
 	GetObjectIdentifier() *BACnetContextTagObjectIdentifier
 	// GetPropertyIdentifier returns PropertyIdentifier (property field)
-	GetPropertyIdentifier() *BACnetContextTagPropertyIdentifier
+	GetPropertyIdentifier() *BACnetPropertyIdentifierTagged
 	// GetArrayIndex returns ArrayIndex (property field)
 	GetArrayIndex() *BACnetContextTagUnsignedInteger
 	// GetListOfElements returns ListOfElements (property field)
@@ -88,7 +88,7 @@ func (m *BACnetConfirmedServiceRequestAddListElement) GetObjectIdentifier() *BAC
 	return m.ObjectIdentifier
 }
 
-func (m *BACnetConfirmedServiceRequestAddListElement) GetPropertyIdentifier() *BACnetContextTagPropertyIdentifier {
+func (m *BACnetConfirmedServiceRequestAddListElement) GetPropertyIdentifier() *BACnetPropertyIdentifierTagged {
 	return m.PropertyIdentifier
 }
 
@@ -106,7 +106,7 @@ func (m *BACnetConfirmedServiceRequestAddListElement) GetListOfElements() *BACne
 ///////////////////////////////////////////////////////////
 
 // NewBACnetConfirmedServiceRequestAddListElement factory function for BACnetConfirmedServiceRequestAddListElement
-func NewBACnetConfirmedServiceRequestAddListElement(objectIdentifier *BACnetContextTagObjectIdentifier, propertyIdentifier *BACnetContextTagPropertyIdentifier, arrayIndex *BACnetContextTagUnsignedInteger, listOfElements *BACnetConstructedData, serviceRequestLength uint16) *BACnetConfirmedServiceRequestAddListElement {
+func NewBACnetConfirmedServiceRequestAddListElement(objectIdentifier *BACnetContextTagObjectIdentifier, propertyIdentifier *BACnetPropertyIdentifierTagged, arrayIndex *BACnetContextTagUnsignedInteger, listOfElements *BACnetConstructedData, serviceRequestLength uint16) *BACnetConfirmedServiceRequestAddListElement {
 	_result := &BACnetConfirmedServiceRequestAddListElement{
 		ObjectIdentifier:              objectIdentifier,
 		PropertyIdentifier:            propertyIdentifier,
@@ -194,11 +194,11 @@ func BACnetConfirmedServiceRequestAddListElementParse(readBuffer utils.ReadBuffe
 	if pullErr := readBuffer.PullContext("propertyIdentifier"); pullErr != nil {
 		return nil, pullErr
 	}
-	_propertyIdentifier, _propertyIdentifierErr := BACnetContextTagParse(readBuffer, uint8(uint8(1)), BACnetDataType(BACnetDataType_BACNET_PROPERTY_IDENTIFIER))
+	_propertyIdentifier, _propertyIdentifierErr := BACnetPropertyIdentifierTaggedParse(readBuffer, uint8(uint8(1)), TagClass(TagClass_CONTEXT_SPECIFIC_TAGS))
 	if _propertyIdentifierErr != nil {
 		return nil, errors.Wrap(_propertyIdentifierErr, "Error parsing 'propertyIdentifier' field")
 	}
-	propertyIdentifier := CastBACnetContextTagPropertyIdentifier(_propertyIdentifier)
+	propertyIdentifier := CastBACnetPropertyIdentifierTagged(_propertyIdentifier)
 	if closeErr := readBuffer.CloseContext("propertyIdentifier"); closeErr != nil {
 		return nil, closeErr
 	}
@@ -231,7 +231,7 @@ func BACnetConfirmedServiceRequestAddListElementParse(readBuffer utils.ReadBuffe
 		if pullErr := readBuffer.PullContext("listOfElements"); pullErr != nil {
 			return nil, pullErr
 		}
-		_val, _err := BACnetConstructedDataParse(readBuffer, uint8(3), objectIdentifier.GetObjectType(), propertyIdentifier)
+		_val, _err := BACnetConstructedDataParse(readBuffer, uint8(3), objectIdentifier.GetObjectType(), propertyIdentifier.GetValue())
 		switch {
 		case errors.Is(_err, utils.ParseAssertError{}) || errors.Is(_err, io.EOF):
 			readBuffer.Reset(currentPos)
@@ -252,7 +252,7 @@ func BACnetConfirmedServiceRequestAddListElementParse(readBuffer utils.ReadBuffe
 	// Create a partially initialized instance
 	_child := &BACnetConfirmedServiceRequestAddListElement{
 		ObjectIdentifier:              CastBACnetContextTagObjectIdentifier(objectIdentifier),
-		PropertyIdentifier:            CastBACnetContextTagPropertyIdentifier(propertyIdentifier),
+		PropertyIdentifier:            CastBACnetPropertyIdentifierTagged(propertyIdentifier),
 		ArrayIndex:                    CastBACnetContextTagUnsignedInteger(arrayIndex),
 		ListOfElements:                CastBACnetConstructedData(listOfElements),
 		BACnetConfirmedServiceRequest: &BACnetConfirmedServiceRequest{},
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedEventNotification.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedEventNotification.go
index f6118405bf..15feba9307 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedEventNotification.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedEventNotification.go
@@ -36,12 +36,12 @@ type BACnetConfirmedServiceRequestConfirmedEventNotification struct {
 	Timestamp                  *BACnetTimeStampEnclosed
 	NotificationClass          *BACnetContextTagUnsignedInteger
 	Priority                   *BACnetContextTagUnsignedInteger
-	EventType                  *BACnetContextTagEventType
+	EventType                  *BACnetEventTypeTagged
 	MessageText                *BACnetContextTagCharacterString
-	NotifyType                 *BACnetContextTagNotifyType
+	NotifyType                 *BACnetNotifyTypeTagged
 	AckRequired                *BACnetContextTagBoolean
-	FromState                  *BACnetContextTagEventState
-	ToState                    *BACnetContextTagEventState
+	FromState                  *BACnetEventStateTagged
+	ToState                    *BACnetEventStateTagged
 	EventValues                *BACnetNotificationParameters
 
 	// Arguments.
@@ -64,17 +64,17 @@ type IBACnetConfirmedServiceRequestConfirmedEventNotification interface {
 	// GetPriority returns Priority (property field)
 	GetPriority() *BACnetContextTagUnsignedInteger
 	// GetEventType returns EventType (property field)
-	GetEventType() *BACnetContextTagEventType
+	GetEventType() *BACnetEventTypeTagged
 	// GetMessageText returns MessageText (property field)
 	GetMessageText() *BACnetContextTagCharacterString
 	// GetNotifyType returns NotifyType (property field)
-	GetNotifyType() *BACnetContextTagNotifyType
+	GetNotifyType() *BACnetNotifyTypeTagged
 	// GetAckRequired returns AckRequired (property field)
 	GetAckRequired() *BACnetContextTagBoolean
 	// GetFromState returns FromState (property field)
-	GetFromState() *BACnetContextTagEventState
+	GetFromState() *BACnetEventStateTagged
 	// GetToState returns ToState (property field)
-	GetToState() *BACnetContextTagEventState
+	GetToState() *BACnetEventStateTagged
 	// GetEventValues returns EventValues (property field)
 	GetEventValues() *BACnetNotificationParameters
 	// GetLengthInBytes returns the length in bytes
@@ -135,7 +135,7 @@ func (m *BACnetConfirmedServiceRequestConfirmedEventNotification) GetPriority()
 	return m.Priority
 }
 
-func (m *BACnetConfirmedServiceRequestConfirmedEventNotification) GetEventType() *BACnetContextTagEventType {
+func (m *BACnetConfirmedServiceRequestConfirmedEventNotification) GetEventType() *BACnetEventTypeTagged {
 	return m.EventType
 }
 
@@ -143,7 +143,7 @@ func (m *BACnetConfirmedServiceRequestConfirmedEventNotification) GetMessageText
 	return m.MessageText
 }
 
-func (m *BACnetConfirmedServiceRequestConfirmedEventNotification) GetNotifyType() *BACnetContextTagNotifyType {
+func (m *BACnetConfirmedServiceRequestConfirmedEventNotification) GetNotifyType() *BACnetNotifyTypeTagged {
 	return m.NotifyType
 }
 
@@ -151,11 +151,11 @@ func (m *BACnetConfirmedServiceRequestConfirmedEventNotification) GetAckRequired
 	return m.AckRequired
 }
 
-func (m *BACnetConfirmedServiceRequestConfirmedEventNotification) GetFromState() *BACnetContextTagEventState {
+func (m *BACnetConfirmedServiceRequestConfirmedEventNotification) GetFromState() *BACnetEventStateTagged {
 	return m.FromState
 }
 
-func (m *BACnetConfirmedServiceRequestConfirmedEventNotification) GetToState() *BACnetContextTagEventState {
+func (m *BACnetConfirmedServiceRequestConfirmedEventNotification) GetToState() *BACnetEventStateTagged {
 	return m.ToState
 }
 
@@ -169,7 +169,7 @@ func (m *BACnetConfirmedServiceRequestConfirmedEventNotification) GetEventValues
 ///////////////////////////////////////////////////////////
 
 // NewBACnetConfirmedServiceRequestConfirmedEventNotification factory function for BACnetConfirmedServiceRequestConfirmedEventNotification
-func NewBACnetConfirmedServiceRequestConfirmedEventNotification(processIdentifier *BACnetContextTagUnsignedInteger, initiatingDeviceIdentifier *BACnetContextTagObjectIdentifier, eventObjectIdentifier *BACnetContextTagObjectIdentifier, timestamp *BACnetTimeStampEnclosed, notificationClass *BACnetContextTagUnsignedInteger, priority *BACnetContextTagUnsignedInteger, eventType *BACnetContextTagEventType, messageText *BACnetContextTagCharacterString, notifyType *BACnetContextTagNotifyType, ac [...]
+func NewBACnetConfirmedServiceRequestConfirmedEventNotification(processIdentifier *BACnetContextTagUnsignedInteger, initiatingDeviceIdentifier *BACnetContextTagObjectIdentifier, eventObjectIdentifier *BACnetContextTagObjectIdentifier, timestamp *BACnetTimeStampEnclosed, notificationClass *BACnetContextTagUnsignedInteger, priority *BACnetContextTagUnsignedInteger, eventType *BACnetEventTypeTagged, messageText *BACnetContextTagCharacterString, notifyType *BACnetNotifyTypeTagged, ackRequire [...]
 	_result := &BACnetConfirmedServiceRequestConfirmedEventNotification{
 		ProcessIdentifier:             processIdentifier,
 		InitiatingDeviceIdentifier:    initiatingDeviceIdentifier,
@@ -362,11 +362,11 @@ func BACnetConfirmedServiceRequestConfirmedEventNotificationParse(readBuffer uti
 	if pullErr := readBuffer.PullContext("eventType"); pullErr != nil {
 		return nil, pullErr
 	}
-	_eventType, _eventTypeErr := BACnetContextTagParse(readBuffer, uint8(uint8(6)), BACnetDataType(BACnetDataType_EVENT_TYPE))
+	_eventType, _eventTypeErr := BACnetEventTypeTaggedParse(readBuffer, uint8(uint8(6)), TagClass(TagClass_CONTEXT_SPECIFIC_TAGS))
 	if _eventTypeErr != nil {
 		return nil, errors.Wrap(_eventTypeErr, "Error parsing 'eventType' field")
 	}
-	eventType := CastBACnetContextTagEventType(_eventType)
+	eventType := CastBACnetEventTypeTagged(_eventType)
 	if closeErr := readBuffer.CloseContext("eventType"); closeErr != nil {
 		return nil, closeErr
 	}
@@ -396,11 +396,11 @@ func BACnetConfirmedServiceRequestConfirmedEventNotificationParse(readBuffer uti
 	if pullErr := readBuffer.PullContext("notifyType"); pullErr != nil {
 		return nil, pullErr
 	}
-	_notifyType, _notifyTypeErr := BACnetContextTagParse(readBuffer, uint8(uint8(8)), BACnetDataType(BACnetDataType_NOTIFY_TYPE))
+	_notifyType, _notifyTypeErr := BACnetNotifyTypeTaggedParse(readBuffer, uint8(uint8(8)), TagClass(TagClass_CONTEXT_SPECIFIC_TAGS))
 	if _notifyTypeErr != nil {
 		return nil, errors.Wrap(_notifyTypeErr, "Error parsing 'notifyType' field")
 	}
-	notifyType := CastBACnetContextTagNotifyType(_notifyType)
+	notifyType := CastBACnetNotifyTypeTagged(_notifyType)
 	if closeErr := readBuffer.CloseContext("notifyType"); closeErr != nil {
 		return nil, closeErr
 	}
@@ -427,20 +427,20 @@ func BACnetConfirmedServiceRequestConfirmedEventNotificationParse(readBuffer uti
 	}
 
 	// Optional Field (fromState) (Can be skipped, if a given expression evaluates to false)
-	var fromState *BACnetContextTagEventState = nil
+	var fromState *BACnetEventStateTagged = nil
 	{
 		currentPos = positionAware.GetPos()
 		if pullErr := readBuffer.PullContext("fromState"); pullErr != nil {
 			return nil, pullErr
 		}
-		_val, _err := BACnetContextTagParse(readBuffer, uint8(10), BACnetDataType_EVENT_STATE)
+		_val, _err := BACnetEventStateTaggedParse(readBuffer, uint8(10), TagClass_CONTEXT_SPECIFIC_TAGS)
 		switch {
 		case errors.Is(_err, utils.ParseAssertError{}) || errors.Is(_err, io.EOF):
 			readBuffer.Reset(currentPos)
 		case _err != nil:
 			return nil, errors.Wrap(_err, "Error parsing 'fromState' field")
 		default:
-			fromState = CastBACnetContextTagEventState(_val)
+			fromState = CastBACnetEventStateTagged(_val)
 			if closeErr := readBuffer.CloseContext("fromState"); closeErr != nil {
 				return nil, closeErr
 			}
@@ -451,11 +451,11 @@ func BACnetConfirmedServiceRequestConfirmedEventNotificationParse(readBuffer uti
 	if pullErr := readBuffer.PullContext("toState"); pullErr != nil {
 		return nil, pullErr
 	}
-	_toState, _toStateErr := BACnetContextTagParse(readBuffer, uint8(uint8(11)), BACnetDataType(BACnetDataType_EVENT_STATE))
+	_toState, _toStateErr := BACnetEventStateTaggedParse(readBuffer, uint8(uint8(11)), TagClass(TagClass_CONTEXT_SPECIFIC_TAGS))
 	if _toStateErr != nil {
 		return nil, errors.Wrap(_toStateErr, "Error parsing 'toState' field")
 	}
-	toState := CastBACnetContextTagEventState(_toState)
+	toState := CastBACnetEventStateTagged(_toState)
 	if closeErr := readBuffer.CloseContext("toState"); closeErr != nil {
 		return nil, closeErr
 	}
@@ -493,12 +493,12 @@ func BACnetConfirmedServiceRequestConfirmedEventNotificationParse(readBuffer uti
 		Timestamp:                     CastBACnetTimeStampEnclosed(timestamp),
 		NotificationClass:             CastBACnetContextTagUnsignedInteger(notificationClass),
 		Priority:                      CastBACnetContextTagUnsignedInteger(priority),
-		EventType:                     CastBACnetContextTagEventType(eventType),
+		EventType:                     CastBACnetEventTypeTagged(eventType),
 		MessageText:                   CastBACnetContextTagCharacterString(messageText),
-		NotifyType:                    CastBACnetContextTagNotifyType(notifyType),
+		NotifyType:                    CastBACnetNotifyTypeTagged(notifyType),
 		AckRequired:                   CastBACnetContextTagBoolean(ackRequired),
-		FromState:                     CastBACnetContextTagEventState(fromState),
-		ToState:                       CastBACnetContextTagEventState(toState),
+		FromState:                     CastBACnetEventStateTagged(fromState),
+		ToState:                       CastBACnetEventStateTagged(toState),
 		EventValues:                   CastBACnetNotificationParameters(eventValues),
 		BACnetConfirmedServiceRequest: &BACnetConfirmedServiceRequest{},
 	}
@@ -643,7 +643,7 @@ func (m *BACnetConfirmedServiceRequestConfirmedEventNotification) Serialize(writ
 		}
 
 		// Optional Field (fromState) (Can be skipped, if the value is null)
-		var fromState *BACnetContextTagEventState = nil
+		var fromState *BACnetEventStateTagged = nil
 		if m.FromState != nil {
 			if pushErr := writeBuffer.PushContext("fromState"); pushErr != nil {
 				return pushErr
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedPrivateTransfer.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedPrivateTransfer.go
index cfadcc38c1..88409ecb80 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedPrivateTransfer.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestConfirmedPrivateTransfer.go
@@ -197,7 +197,7 @@ func BACnetConfirmedServiceRequestConfirmedPrivateTransferParse(readBuffer utils
 		if pullErr := readBuffer.PullContext("serviceParameters"); pullErr != nil {
 			return nil, pullErr
 		}
-		_val, _err := BACnetConstructedDataParse(readBuffer, uint8(2), BACnetObjectType_VENDOR_PROPRIETARY_VALUE, DummyPropertyIdentifier())
+		_val, _err := BACnetConstructedDataParse(readBuffer, uint8(2), BACnetObjectType_VENDOR_PROPRIETARY_VALUE, BACnetPropertyIdentifier_VENDOR_PROPRIETARY_VALUE)
 		switch {
 		case errors.Is(_err, utils.ParseAssertError{}) || errors.Is(_err, io.EOF):
 			readBuffer.Reset(currentPos)
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestDeviceCommunicationControl.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestDeviceCommunicationControl.go
index e125cacabc..98e6bf67f4 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestDeviceCommunicationControl.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestDeviceCommunicationControl.go
@@ -31,7 +31,7 @@ import (
 type BACnetConfirmedServiceRequestDeviceCommunicationControl struct {
 	*BACnetConfirmedServiceRequest
 	TimeDuration  *BACnetContextTagUnsignedInteger
-	EnableDisable *BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable
+	EnableDisable *BACnetConfirmedServiceRequestReinitializeDeviceEnableDisableTagged
 	Password      *BACnetContextTagCharacterString
 
 	// Arguments.
@@ -44,7 +44,7 @@ type IBACnetConfirmedServiceRequestDeviceCommunicationControl interface {
 	// GetTimeDuration returns TimeDuration (property field)
 	GetTimeDuration() *BACnetContextTagUnsignedInteger
 	// GetEnableDisable returns EnableDisable (property field)
-	GetEnableDisable() *BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable
+	GetEnableDisable() *BACnetConfirmedServiceRequestReinitializeDeviceEnableDisableTagged
 	// GetPassword returns Password (property field)
 	GetPassword() *BACnetContextTagCharacterString
 	// GetLengthInBytes returns the length in bytes
@@ -85,7 +85,7 @@ func (m *BACnetConfirmedServiceRequestDeviceCommunicationControl) GetTimeDuratio
 	return m.TimeDuration
 }
 
-func (m *BACnetConfirmedServiceRequestDeviceCommunicationControl) GetEnableDisable() *BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable {
+func (m *BACnetConfirmedServiceRequestDeviceCommunicationControl) GetEnableDisable() *BACnetConfirmedServiceRequestReinitializeDeviceEnableDisableTagged {
 	return m.EnableDisable
 }
 
@@ -99,7 +99,7 @@ func (m *BACnetConfirmedServiceRequestDeviceCommunicationControl) GetPassword()
 ///////////////////////////////////////////////////////////
 
 // NewBACnetConfirmedServiceRequestDeviceCommunicationControl factory function for BACnetConfirmedServiceRequestDeviceCommunicationControl
-func NewBACnetConfirmedServiceRequestDeviceCommunicationControl(timeDuration *BACnetContextTagUnsignedInteger, enableDisable *BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable, password *BACnetContextTagCharacterString, serviceRequestLength uint16) *BACnetConfirmedServiceRequestDeviceCommunicationControl {
+func NewBACnetConfirmedServiceRequestDeviceCommunicationControl(timeDuration *BACnetContextTagUnsignedInteger, enableDisable *BACnetConfirmedServiceRequestReinitializeDeviceEnableDisableTagged, password *BACnetContextTagCharacterString, serviceRequestLength uint16) *BACnetConfirmedServiceRequestDeviceCommunicationControl {
 	_result := &BACnetConfirmedServiceRequestDeviceCommunicationControl{
 		TimeDuration:                  timeDuration,
 		EnableDisable:                 enableDisable,
@@ -191,11 +191,11 @@ func BACnetConfirmedServiceRequestDeviceCommunicationControlParse(readBuffer uti
 	if pullErr := readBuffer.PullContext("enableDisable"); pullErr != nil {
 		return nil, pullErr
 	}
-	_enableDisable, _enableDisableErr := BACnetConfirmedServiceRequestReinitializeDeviceEnableDisableParse(readBuffer, uint8(uint8(1)))
+	_enableDisable, _enableDisableErr := BACnetConfirmedServiceRequestReinitializeDeviceEnableDisableTaggedParse(readBuffer, uint8(uint8(1)), TagClass(TagClass_CONTEXT_SPECIFIC_TAGS))
 	if _enableDisableErr != nil {
 		return nil, errors.Wrap(_enableDisableErr, "Error parsing 'enableDisable' field")
 	}
-	enableDisable := CastBACnetConfirmedServiceRequestReinitializeDeviceEnableDisable(_enableDisable)
+	enableDisable := CastBACnetConfirmedServiceRequestReinitializeDeviceEnableDisableTagged(_enableDisable)
 	if closeErr := readBuffer.CloseContext("enableDisable"); closeErr != nil {
 		return nil, closeErr
 	}
@@ -228,7 +228,7 @@ func BACnetConfirmedServiceRequestDeviceCommunicationControlParse(readBuffer uti
 	// Create a partially initialized instance
 	_child := &BACnetConfirmedServiceRequestDeviceCommunicationControl{
 		TimeDuration:                  CastBACnetContextTagUnsignedInteger(timeDuration),
-		EnableDisable:                 CastBACnetConfirmedServiceRequestReinitializeDeviceEnableDisable(enableDisable),
+		EnableDisable:                 CastBACnetConfirmedServiceRequestReinitializeDeviceEnableDisableTagged(enableDisable),
 		Password:                      CastBACnetContextTagCharacterString(password),
 		BACnetConfirmedServiceRequest: &BACnetConfirmedServiceRequest{},
 	}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadProperty.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadProperty.go
index 54c96b1564..71f4a2aa44 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadProperty.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadProperty.go
@@ -31,7 +31,7 @@ import (
 type BACnetConfirmedServiceRequestReadProperty struct {
 	*BACnetConfirmedServiceRequest
 	ObjectIdentifier   *BACnetContextTagObjectIdentifier
-	PropertyIdentifier *BACnetContextTagPropertyIdentifier
+	PropertyIdentifier *BACnetPropertyIdentifierTagged
 	ArrayIndex         *BACnetContextTagUnsignedInteger
 
 	// Arguments.
@@ -44,7 +44,7 @@ type IBACnetConfirmedServiceRequestReadProperty interface {
 	// GetObjectIdentifier returns ObjectIdentifier (property field)
 	GetObjectIdentifier() *BACnetContextTagObjectIdentifier
 	// GetPropertyIdentifier returns PropertyIdentifier (property field)
-	GetPropertyIdentifier() *BACnetContextTagPropertyIdentifier
+	GetPropertyIdentifier() *BACnetPropertyIdentifierTagged
 	// GetArrayIndex returns ArrayIndex (property field)
 	GetArrayIndex() *BACnetContextTagUnsignedInteger
 	// GetLengthInBytes returns the length in bytes
@@ -85,7 +85,7 @@ func (m *BACnetConfirmedServiceRequestReadProperty) GetObjectIdentifier() *BACne
 	return m.ObjectIdentifier
 }
 
-func (m *BACnetConfirmedServiceRequestReadProperty) GetPropertyIdentifier() *BACnetContextTagPropertyIdentifier {
+func (m *BACnetConfirmedServiceRequestReadProperty) GetPropertyIdentifier() *BACnetPropertyIdentifierTagged {
 	return m.PropertyIdentifier
 }
 
@@ -99,7 +99,7 @@ func (m *BACnetConfirmedServiceRequestReadProperty) GetArrayIndex() *BACnetConte
 ///////////////////////////////////////////////////////////
 
 // NewBACnetConfirmedServiceRequestReadProperty factory function for BACnetConfirmedServiceRequestReadProperty
-func NewBACnetConfirmedServiceRequestReadProperty(objectIdentifier *BACnetContextTagObjectIdentifier, propertyIdentifier *BACnetContextTagPropertyIdentifier, arrayIndex *BACnetContextTagUnsignedInteger, serviceRequestLength uint16) *BACnetConfirmedServiceRequestReadProperty {
+func NewBACnetConfirmedServiceRequestReadProperty(objectIdentifier *BACnetContextTagObjectIdentifier, propertyIdentifier *BACnetPropertyIdentifierTagged, arrayIndex *BACnetContextTagUnsignedInteger, serviceRequestLength uint16) *BACnetConfirmedServiceRequestReadProperty {
 	_result := &BACnetConfirmedServiceRequestReadProperty{
 		ObjectIdentifier:              objectIdentifier,
 		PropertyIdentifier:            propertyIdentifier,
@@ -181,11 +181,11 @@ func BACnetConfirmedServiceRequestReadPropertyParse(readBuffer utils.ReadBuffer,
 	if pullErr := readBuffer.PullContext("propertyIdentifier"); pullErr != nil {
 		return nil, pullErr
 	}
-	_propertyIdentifier, _propertyIdentifierErr := BACnetContextTagParse(readBuffer, uint8(uint8(1)), BACnetDataType(BACnetDataType_BACNET_PROPERTY_IDENTIFIER))
+	_propertyIdentifier, _propertyIdentifierErr := BACnetPropertyIdentifierTaggedParse(readBuffer, uint8(uint8(1)), TagClass(TagClass_CONTEXT_SPECIFIC_TAGS))
 	if _propertyIdentifierErr != nil {
 		return nil, errors.Wrap(_propertyIdentifierErr, "Error parsing 'propertyIdentifier' field")
 	}
-	propertyIdentifier := CastBACnetContextTagPropertyIdentifier(_propertyIdentifier)
+	propertyIdentifier := CastBACnetPropertyIdentifierTagged(_propertyIdentifier)
 	if closeErr := readBuffer.CloseContext("propertyIdentifier"); closeErr != nil {
 		return nil, closeErr
 	}
@@ -218,7 +218,7 @@ func BACnetConfirmedServiceRequestReadPropertyParse(readBuffer utils.ReadBuffer,
 	// Create a partially initialized instance
 	_child := &BACnetConfirmedServiceRequestReadProperty{
 		ObjectIdentifier:              CastBACnetContextTagObjectIdentifier(objectIdentifier),
-		PropertyIdentifier:            CastBACnetContextTagPropertyIdentifier(propertyIdentifier),
+		PropertyIdentifier:            CastBACnetPropertyIdentifierTagged(propertyIdentifier),
 		ArrayIndex:                    CastBACnetContextTagUnsignedInteger(arrayIndex),
 		BACnetConfirmedServiceRequest: &BACnetConfirmedServiceRequest{},
 	}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadRange.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadRange.go
index 389446e151..75e65f402d 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadRange.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReadRange.go
@@ -31,7 +31,7 @@ import (
 type BACnetConfirmedServiceRequestReadRange struct {
 	*BACnetConfirmedServiceRequest
 	ObjectIdentifier   *BACnetContextTagObjectIdentifier
-	PropertyIdentifier *BACnetContextTagPropertyIdentifier
+	PropertyIdentifier *BACnetPropertyIdentifierTagged
 	PropertyArrayIndex *BACnetContextTagUnsignedInteger
 	ReadRange          *BACnetConfirmedServiceRequestReadRangeRange
 
@@ -45,7 +45,7 @@ type IBACnetConfirmedServiceRequestReadRange interface {
 	// GetObjectIdentifier returns ObjectIdentifier (property field)
 	GetObjectIdentifier() *BACnetContextTagObjectIdentifier
 	// GetPropertyIdentifier returns PropertyIdentifier (property field)
-	GetPropertyIdentifier() *BACnetContextTagPropertyIdentifier
+	GetPropertyIdentifier() *BACnetPropertyIdentifierTagged
 	// GetPropertyArrayIndex returns PropertyArrayIndex (property field)
 	GetPropertyArrayIndex() *BACnetContextTagUnsignedInteger
 	// GetReadRange returns ReadRange (property field)
@@ -88,7 +88,7 @@ func (m *BACnetConfirmedServiceRequestReadRange) GetObjectIdentifier() *BACnetCo
 	return m.ObjectIdentifier
 }
 
-func (m *BACnetConfirmedServiceRequestReadRange) GetPropertyIdentifier() *BACnetContextTagPropertyIdentifier {
+func (m *BACnetConfirmedServiceRequestReadRange) GetPropertyIdentifier() *BACnetPropertyIdentifierTagged {
 	return m.PropertyIdentifier
 }
 
@@ -106,7 +106,7 @@ func (m *BACnetConfirmedServiceRequestReadRange) GetReadRange() *BACnetConfirmed
 ///////////////////////////////////////////////////////////
 
 // NewBACnetConfirmedServiceRequestReadRange factory function for BACnetConfirmedServiceRequestReadRange
-func NewBACnetConfirmedServiceRequestReadRange(objectIdentifier *BACnetContextTagObjectIdentifier, propertyIdentifier *BACnetContextTagPropertyIdentifier, propertyArrayIndex *BACnetContextTagUnsignedInteger, readRange *BACnetConfirmedServiceRequestReadRangeRange, serviceRequestLength uint16) *BACnetConfirmedServiceRequestReadRange {
+func NewBACnetConfirmedServiceRequestReadRange(objectIdentifier *BACnetContextTagObjectIdentifier, propertyIdentifier *BACnetPropertyIdentifierTagged, propertyArrayIndex *BACnetContextTagUnsignedInteger, readRange *BACnetConfirmedServiceRequestReadRangeRange, serviceRequestLength uint16) *BACnetConfirmedServiceRequestReadRange {
 	_result := &BACnetConfirmedServiceRequestReadRange{
 		ObjectIdentifier:              objectIdentifier,
 		PropertyIdentifier:            propertyIdentifier,
@@ -194,11 +194,11 @@ func BACnetConfirmedServiceRequestReadRangeParse(readBuffer utils.ReadBuffer, se
 	if pullErr := readBuffer.PullContext("propertyIdentifier"); pullErr != nil {
 		return nil, pullErr
 	}
-	_propertyIdentifier, _propertyIdentifierErr := BACnetContextTagParse(readBuffer, uint8(uint8(1)), BACnetDataType(BACnetDataType_BACNET_PROPERTY_IDENTIFIER))
+	_propertyIdentifier, _propertyIdentifierErr := BACnetPropertyIdentifierTaggedParse(readBuffer, uint8(uint8(1)), TagClass(TagClass_CONTEXT_SPECIFIC_TAGS))
 	if _propertyIdentifierErr != nil {
 		return nil, errors.Wrap(_propertyIdentifierErr, "Error parsing 'propertyIdentifier' field")
 	}
-	propertyIdentifier := CastBACnetContextTagPropertyIdentifier(_propertyIdentifier)
+	propertyIdentifier := CastBACnetPropertyIdentifierTagged(_propertyIdentifier)
 	if closeErr := readBuffer.CloseContext("propertyIdentifier"); closeErr != nil {
 		return nil, closeErr
 	}
@@ -252,7 +252,7 @@ func BACnetConfirmedServiceRequestReadRangeParse(readBuffer utils.ReadBuffer, se
 	// Create a partially initialized instance
 	_child := &BACnetConfirmedServiceRequestReadRange{
 		ObjectIdentifier:              CastBACnetContextTagObjectIdentifier(objectIdentifier),
-		PropertyIdentifier:            CastBACnetContextTagPropertyIdentifier(propertyIdentifier),
+		PropertyIdentifier:            CastBACnetPropertyIdentifierTagged(propertyIdentifier),
 		PropertyArrayIndex:            CastBACnetContextTagUnsignedInteger(propertyArrayIndex),
 		ReadRange:                     CastBACnetConfirmedServiceRequestReadRangeRange(readRange),
 		BACnetConfirmedServiceRequest: &BACnetConfirmedServiceRequest{},
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReinitializeDevice.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReinitializeDevice.go
index d225df31ac..e96fcfa005 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReinitializeDevice.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReinitializeDevice.go
@@ -30,7 +30,7 @@ import (
 // BACnetConfirmedServiceRequestReinitializeDevice is the data-structure of this message
 type BACnetConfirmedServiceRequestReinitializeDevice struct {
 	*BACnetConfirmedServiceRequest
-	ReinitializedStateOfDevice *BACnetContextTagDeviceState
+	ReinitializedStateOfDevice *BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDeviceTagged
 	Password                   *BACnetContextTagCharacterString
 
 	// Arguments.
@@ -41,7 +41,7 @@ type BACnetConfirmedServiceRequestReinitializeDevice struct {
 type IBACnetConfirmedServiceRequestReinitializeDevice interface {
 	IBACnetConfirmedServiceRequest
 	// GetReinitializedStateOfDevice returns ReinitializedStateOfDevice (property field)
-	GetReinitializedStateOfDevice() *BACnetContextTagDeviceState
+	GetReinitializedStateOfDevice() *BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDeviceTagged
 	// GetPassword returns Password (property field)
 	GetPassword() *BACnetContextTagCharacterString
 	// GetLengthInBytes returns the length in bytes
@@ -78,7 +78,7 @@ func (m *BACnetConfirmedServiceRequestReinitializeDevice) GetParent() *BACnetCon
 /////////////////////// Accessors for property fields.
 ///////////////////////
 
-func (m *BACnetConfirmedServiceRequestReinitializeDevice) GetReinitializedStateOfDevice() *BACnetContextTagDeviceState {
+func (m *BACnetConfirmedServiceRequestReinitializeDevice) GetReinitializedStateOfDevice() *BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDeviceTagged {
 	return m.ReinitializedStateOfDevice
 }
 
@@ -92,7 +92,7 @@ func (m *BACnetConfirmedServiceRequestReinitializeDevice) GetPassword() *BACnetC
 ///////////////////////////////////////////////////////////
 
 // NewBACnetConfirmedServiceRequestReinitializeDevice factory function for BACnetConfirmedServiceRequestReinitializeDevice
-func NewBACnetConfirmedServiceRequestReinitializeDevice(reinitializedStateOfDevice *BACnetContextTagDeviceState, password *BACnetContextTagCharacterString, serviceRequestLength uint16) *BACnetConfirmedServiceRequestReinitializeDevice {
+func NewBACnetConfirmedServiceRequestReinitializeDevice(reinitializedStateOfDevice *BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDeviceTagged, password *BACnetContextTagCharacterString, serviceRequestLength uint16) *BACnetConfirmedServiceRequestReinitializeDevice {
 	_result := &BACnetConfirmedServiceRequestReinitializeDevice{
 		ReinitializedStateOfDevice:    reinitializedStateOfDevice,
 		Password:                      password,
@@ -157,11 +157,11 @@ func BACnetConfirmedServiceRequestReinitializeDeviceParse(readBuffer utils.ReadB
 	if pullErr := readBuffer.PullContext("reinitializedStateOfDevice"); pullErr != nil {
 		return nil, pullErr
 	}
-	_reinitializedStateOfDevice, _reinitializedStateOfDeviceErr := BACnetContextTagParse(readBuffer, uint8(uint8(0)), BACnetDataType(BACnetDataType_BACNET_DEVICE_STATE))
+	_reinitializedStateOfDevice, _reinitializedStateOfDeviceErr := BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDeviceTaggedParse(readBuffer, uint8(uint8(0)), TagClass(TagClass_CONTEXT_SPECIFIC_TAGS))
 	if _reinitializedStateOfDeviceErr != nil {
 		return nil, errors.Wrap(_reinitializedStateOfDeviceErr, "Error parsing 'reinitializedStateOfDevice' field")
 	}
-	reinitializedStateOfDevice := CastBACnetContextTagDeviceState(_reinitializedStateOfDevice)
+	reinitializedStateOfDevice := CastBACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDeviceTagged(_reinitializedStateOfDevice)
 	if closeErr := readBuffer.CloseContext("reinitializedStateOfDevice"); closeErr != nil {
 		return nil, closeErr
 	}
@@ -193,7 +193,7 @@ func BACnetConfirmedServiceRequestReinitializeDeviceParse(readBuffer utils.ReadB
 
 	// Create a partially initialized instance
 	_child := &BACnetConfirmedServiceRequestReinitializeDevice{
-		ReinitializedStateOfDevice:    CastBACnetContextTagDeviceState(reinitializedStateOfDevice),
+		ReinitializedStateOfDevice:    CastBACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDeviceTagged(reinitializedStateOfDevice),
 		Password:                      CastBACnetContextTagCharacterString(password),
 		BACnetConfirmedServiceRequest: &BACnetConfirmedServiceRequest{},
 	}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable.go
index dcf5745bf3..126ab4657a 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable.go
@@ -22,223 +22,117 @@ package model
 import (
 	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
 	"github.com/pkg/errors"
-	"io"
 )
 
 // Code generated by code-generation. DO NOT EDIT.
 
-// BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable is the data-structure of this message
-type BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable struct {
-	RawData *BACnetContextTagEnumerated
+// BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable is an enum
+type BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable uint8
 
-	// Arguments.
-	TagNumber uint8
-}
-
-// IBACnetConfirmedServiceRequestReinitializeDeviceEnableDisable is the corresponding interface of BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable
 type IBACnetConfirmedServiceRequestReinitializeDeviceEnableDisable interface {
-	// GetRawData returns RawData (property field)
-	GetRawData() *BACnetContextTagEnumerated
-	// GetIsEnable returns IsEnable (virtual field)
-	GetIsEnable() bool
-	// GetIsDisable returns IsDisable (virtual field)
-	GetIsDisable() bool
-	// GetIsDisableInitiation returns IsDisableInitiation (virtual field)
-	GetIsDisableInitiation() bool
-	// GetLengthInBytes returns the length in bytes
-	GetLengthInBytes() uint16
-	// GetLengthInBits returns the length in bits
-	GetLengthInBits() uint16
-	// Serialize serializes this type
 	Serialize(writeBuffer utils.WriteBuffer) error
 }
 
-///////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////
-/////////////////////// Accessors for property fields.
-///////////////////////
-
-func (m *BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable) GetRawData() *BACnetContextTagEnumerated {
-	return m.RawData
-}
-
-///////////////////////
-///////////////////////
-///////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////
-/////////////////////// Accessors for virtual fields.
-///////////////////////
-
-func (m *BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable) GetIsEnable() bool {
-	rawData := m.RawData
-	_ = rawData
-	return bool(bool(bool((m.GetRawData()) != (nil))) && bool(bool(((*m.GetRawData()).GetActualValue()) == (0))))
-}
-
-func (m *BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable) GetIsDisable() bool {
-	rawData := m.RawData
-	_ = rawData
-	return bool(bool(bool((m.GetRawData()) != (nil))) && bool(bool(((*m.GetRawData()).GetActualValue()) == (1))))
-}
-
-func (m *BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable) GetIsDisableInitiation() bool {
-	rawData := m.RawData
-	_ = rawData
-	return bool(bool(bool((m.GetRawData()) != (nil))) && bool(bool(((*m.GetRawData()).GetActualValue()) == (2))))
-}
+const (
+	BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable_ENABLE                   BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable = 0
+	BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable_DISABLE                  BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable = 1
+	BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable_DISABLE_INITIATION       BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable = 2
+	BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable_VENDOR_PROPRIETARY_VALUE BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable = 0xFF
+)
 
-///////////////////////
-///////////////////////
-///////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////
+var BACnetConfirmedServiceRequestReinitializeDeviceEnableDisableValues []BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable
 
-// NewBACnetConfirmedServiceRequestReinitializeDeviceEnableDisable factory function for BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable
-func NewBACnetConfirmedServiceRequestReinitializeDeviceEnableDisable(rawData *BACnetContextTagEnumerated, tagNumber uint8) *BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable {
-	return &BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable{RawData: rawData, TagNumber: tagNumber}
+func init() {
+	_ = errors.New
+	BACnetConfirmedServiceRequestReinitializeDeviceEnableDisableValues = []BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable{
+		BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable_ENABLE,
+		BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable_DISABLE,
+		BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable_DISABLE_INITIATION,
+		BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable_VENDOR_PROPRIETARY_VALUE,
+	}
 }
 
-func CastBACnetConfirmedServiceRequestReinitializeDeviceEnableDisable(structType interface{}) *BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable {
-	if casted, ok := structType.(BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable); ok {
-		return &casted
-	}
-	if casted, ok := structType.(*BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable); ok {
-		return casted
+func BACnetConfirmedServiceRequestReinitializeDeviceEnableDisableByValue(value uint8) BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable {
+	switch value {
+	case 0:
+		return BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable_ENABLE
+	case 0xFF:
+		return BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable_VENDOR_PROPRIETARY_VALUE
+	case 1:
+		return BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable_DISABLE
+	case 2:
+		return BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable_DISABLE_INITIATION
 	}
-	return nil
+	return 0
 }
 
-func (m *BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable) GetTypeName() string {
-	return "BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable"
+func BACnetConfirmedServiceRequestReinitializeDeviceEnableDisableByName(value string) BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable {
+	switch value {
+	case "ENABLE":
+		return BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable_ENABLE
+	case "VENDOR_PROPRIETARY_VALUE":
+		return BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable_VENDOR_PROPRIETARY_VALUE
+	case "DISABLE":
+		return BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable_DISABLE
+	case "DISABLE_INITIATION":
+		return BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable_DISABLE_INITIATION
+	}
+	return 0
 }
 
-func (m *BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable) GetLengthInBits() uint16 {
-	return m.GetLengthInBitsConditional(false)
+func BACnetConfirmedServiceRequestReinitializeDeviceEnableDisableKnows(value uint8) bool {
+	for _, typeValue := range BACnetConfirmedServiceRequestReinitializeDeviceEnableDisableValues {
+		if uint8(typeValue) == value {
+			return true
+		}
+	}
+	return false
 }
 
-func (m *BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable) GetLengthInBitsConditional(lastItem bool) uint16 {
-	lengthInBits := uint16(0)
-
-	// Optional Field (rawData)
-	if m.RawData != nil {
-		lengthInBits += (*m.RawData).GetLengthInBits()
+func CastBACnetConfirmedServiceRequestReinitializeDeviceEnableDisable(structType interface{}) BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable {
+	castFunc := func(typ interface{}) BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable {
+		if sBACnetConfirmedServiceRequestReinitializeDeviceEnableDisable, ok := typ.(BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable); ok {
+			return sBACnetConfirmedServiceRequestReinitializeDeviceEnableDisable
+		}
+		return 0
 	}
+	return castFunc(structType)
+}
 
-	// A virtual field doesn't have any in- or output.
-
-	// A virtual field doesn't have any in- or output.
-
-	// A virtual field doesn't have any in- or output.
-
-	return lengthInBits
+func (m BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable) GetLengthInBits() uint16 {
+	return 8
 }
 
-func (m *BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable) GetLengthInBytes() uint16 {
+func (m BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable) GetLengthInBytes() uint16 {
 	return m.GetLengthInBits() / 8
 }
 
-func BACnetConfirmedServiceRequestReinitializeDeviceEnableDisableParse(readBuffer utils.ReadBuffer, tagNumber uint8) (*BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable, error) {
-	positionAware := readBuffer
-	_ = positionAware
-	if pullErr := readBuffer.PullContext("BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable"); pullErr != nil {
-		return nil, pullErr
+func BACnetConfirmedServiceRequestReinitializeDeviceEnableDisableParse(readBuffer utils.ReadBuffer) (BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable, error) {
+	val, err := readBuffer.ReadUint8("BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable", 8)
+	if err != nil {
+		return 0, nil
 	}
-	currentPos := positionAware.GetPos()
-	_ = currentPos
-
-	// Optional Field (rawData) (Can be skipped, if a given expression evaluates to false)
-	var rawData *BACnetContextTagEnumerated = nil
-	{
-		currentPos = positionAware.GetPos()
-		if pullErr := readBuffer.PullContext("rawData"); pullErr != nil {
-			return nil, pullErr
-		}
-		_val, _err := BACnetContextTagParse(readBuffer, tagNumber, BACnetDataType_ENUMERATED)
-		switch {
-		case errors.Is(_err, utils.ParseAssertError{}) || errors.Is(_err, io.EOF):
-			readBuffer.Reset(currentPos)
-		case _err != nil:
-			return nil, errors.Wrap(_err, "Error parsing 'rawData' field")
-		default:
-			rawData = CastBACnetContextTagEnumerated(_val)
-			if closeErr := readBuffer.CloseContext("rawData"); closeErr != nil {
-				return nil, closeErr
-			}
-		}
-	}
-
-	// Virtual field
-	_isEnable := bool(bool((rawData) != (nil))) && bool(bool(((*rawData).GetActualValue()) == (0)))
-	isEnable := bool(_isEnable)
-	_ = isEnable
-
-	// Virtual field
-	_isDisable := bool(bool((rawData) != (nil))) && bool(bool(((*rawData).GetActualValue()) == (1)))
-	isDisable := bool(_isDisable)
-	_ = isDisable
-
-	// Virtual field
-	_isDisableInitiation := bool(bool((rawData) != (nil))) && bool(bool(((*rawData).GetActualValue()) == (2)))
-	isDisableInitiation := bool(_isDisableInitiation)
-	_ = isDisableInitiation
-
-	if closeErr := readBuffer.CloseContext("BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable"); closeErr != nil {
-		return nil, closeErr
-	}
-
-	// Create the instance
-	return NewBACnetConfirmedServiceRequestReinitializeDeviceEnableDisable(rawData, tagNumber), nil
+	return BACnetConfirmedServiceRequestReinitializeDeviceEnableDisableByValue(val), nil
 }
 
-func (m *BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable) Serialize(writeBuffer utils.WriteBuffer) error {
-	positionAware := writeBuffer
-	_ = positionAware
-	if pushErr := writeBuffer.PushContext("BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable"); pushErr != nil {
-		return pushErr
-	}
-
-	// Optional Field (rawData) (Can be skipped, if the value is null)
-	var rawData *BACnetContextTagEnumerated = nil
-	if m.RawData != nil {
-		if pushErr := writeBuffer.PushContext("rawData"); pushErr != nil {
-			return pushErr
-		}
-		rawData = m.RawData
-		_rawDataErr := rawData.Serialize(writeBuffer)
-		if popErr := writeBuffer.PopContext("rawData"); popErr != nil {
-			return popErr
-		}
-		if _rawDataErr != nil {
-			return errors.Wrap(_rawDataErr, "Error serializing 'rawData' field")
-		}
-	}
-	// Virtual field
-	if _isEnableErr := writeBuffer.WriteVirtual("isEnable", m.GetIsEnable()); _isEnableErr != nil {
-		return errors.Wrap(_isEnableErr, "Error serializing 'isEnable' field")
-	}
-	// Virtual field
-	if _isDisableErr := writeBuffer.WriteVirtual("isDisable", m.GetIsDisable()); _isDisableErr != nil {
-		return errors.Wrap(_isDisableErr, "Error serializing 'isDisable' field")
-	}
-	// Virtual field
-	if _isDisableInitiationErr := writeBuffer.WriteVirtual("isDisableInitiation", m.GetIsDisableInitiation()); _isDisableInitiationErr != nil {
-		return errors.Wrap(_isDisableInitiationErr, "Error serializing 'isDisableInitiation' field")
-	}
+func (e BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable) Serialize(writeBuffer utils.WriteBuffer) error {
+	return writeBuffer.WriteUint8("BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable", 8, uint8(e), utils.WithAdditionalStringRepresentation(e.name()))
+}
 
-	if popErr := writeBuffer.PopContext("BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable"); popErr != nil {
-		return popErr
+func (e BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable) name() string {
+	switch e {
+	case BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable_ENABLE:
+		return "ENABLE"
+	case BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable_VENDOR_PROPRIETARY_VALUE:
+		return "VENDOR_PROPRIETARY_VALUE"
+	case BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable_DISABLE:
+		return "DISABLE"
+	case BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable_DISABLE_INITIATION:
+		return "DISABLE_INITIATION"
 	}
-	return nil
+	return ""
 }
 
-func (m *BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable) String() string {
-	if m == nil {
-		return "<nil>"
-	}
-	buffer := utils.NewBoxedWriteBufferWithOptions(true, true)
-	if err := m.Serialize(buffer); err != nil {
-		return err.Error()
-	}
-	return buffer.GetBox().String()
+func (e BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable) String() string {
+	return e.name()
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReinitializeDeviceEnableDisableTagged.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReinitializeDeviceEnableDisableTagged.go
new file mode 100644
index 0000000000..81ecd5639b
--- /dev/null
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReinitializeDeviceEnableDisableTagged.go
@@ -0,0 +1,202 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package model
+
+import (
+	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
+	"github.com/pkg/errors"
+)
+
+// Code generated by code-generation. DO NOT EDIT.
+
+// BACnetConfirmedServiceRequestReinitializeDeviceEnableDisableTagged is the data-structure of this message
+type BACnetConfirmedServiceRequestReinitializeDeviceEnableDisableTagged struct {
+	Header *BACnetTagHeader
+	Value  BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable
+
+	// Arguments.
+	TagNumber uint8
+	TagClass  TagClass
+}
+
+// IBACnetConfirmedServiceRequestReinitializeDeviceEnableDisableTagged is the corresponding interface of BACnetConfirmedServiceRequestReinitializeDeviceEnableDisableTagged
+type IBACnetConfirmedServiceRequestReinitializeDeviceEnableDisableTagged interface {
+	// GetHeader returns Header (property field)
+	GetHeader() *BACnetTagHeader
+	// GetValue returns Value (property field)
+	GetValue() BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable
+	// GetLengthInBytes returns the length in bytes
+	GetLengthInBytes() uint16
+	// GetLengthInBits returns the length in bits
+	GetLengthInBits() uint16
+	// Serialize serializes this type
+	Serialize(writeBuffer utils.WriteBuffer) error
+}
+
+///////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////
+/////////////////////// Accessors for property fields.
+///////////////////////
+
+func (m *BACnetConfirmedServiceRequestReinitializeDeviceEnableDisableTagged) GetHeader() *BACnetTagHeader {
+	return m.Header
+}
+
+func (m *BACnetConfirmedServiceRequestReinitializeDeviceEnableDisableTagged) GetValue() BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable {
+	return m.Value
+}
+
+///////////////////////
+///////////////////////
+///////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////
+
+// NewBACnetConfirmedServiceRequestReinitializeDeviceEnableDisableTagged factory function for BACnetConfirmedServiceRequestReinitializeDeviceEnableDisableTagged
+func NewBACnetConfirmedServiceRequestReinitializeDeviceEnableDisableTagged(header *BACnetTagHeader, value BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable, tagNumber uint8, tagClass TagClass) *BACnetConfirmedServiceRequestReinitializeDeviceEnableDisableTagged {
+	return &BACnetConfirmedServiceRequestReinitializeDeviceEnableDisableTagged{Header: header, Value: value, TagNumber: tagNumber, TagClass: tagClass}
+}
+
+func CastBACnetConfirmedServiceRequestReinitializeDeviceEnableDisableTagged(structType interface{}) *BACnetConfirmedServiceRequestReinitializeDeviceEnableDisableTagged {
+	if casted, ok := structType.(BACnetConfirmedServiceRequestReinitializeDeviceEnableDisableTagged); ok {
+		return &casted
+	}
+	if casted, ok := structType.(*BACnetConfirmedServiceRequestReinitializeDeviceEnableDisableTagged); ok {
+		return casted
+	}
+	return nil
+}
+
+func (m *BACnetConfirmedServiceRequestReinitializeDeviceEnableDisableTagged) GetTypeName() string {
+	return "BACnetConfirmedServiceRequestReinitializeDeviceEnableDisableTagged"
+}
+
+func (m *BACnetConfirmedServiceRequestReinitializeDeviceEnableDisableTagged) GetLengthInBits() uint16 {
+	return m.GetLengthInBitsConditional(false)
+}
+
+func (m *BACnetConfirmedServiceRequestReinitializeDeviceEnableDisableTagged) GetLengthInBitsConditional(lastItem bool) uint16 {
+	lengthInBits := uint16(0)
+
+	// Simple field (header)
+	lengthInBits += m.Header.GetLengthInBits()
+
+	// Manual Field (value)
+	lengthInBits += uint16(int32(m.GetHeader().GetActualLength()) * int32(int32(8)))
+
+	return lengthInBits
+}
+
+func (m *BACnetConfirmedServiceRequestReinitializeDeviceEnableDisableTagged) GetLengthInBytes() uint16 {
+	return m.GetLengthInBits() / 8
+}
+
+func BACnetConfirmedServiceRequestReinitializeDeviceEnableDisableTaggedParse(readBuffer utils.ReadBuffer, tagNumber uint8, tagClass TagClass) (*BACnetConfirmedServiceRequestReinitializeDeviceEnableDisableTagged, error) {
+	positionAware := readBuffer
+	_ = positionAware
+	if pullErr := readBuffer.PullContext("BACnetConfirmedServiceRequestReinitializeDeviceEnableDisableTagged"); pullErr != nil {
+		return nil, pullErr
+	}
+	currentPos := positionAware.GetPos()
+	_ = currentPos
+
+	// Simple Field (header)
+	if pullErr := readBuffer.PullContext("header"); pullErr != nil {
+		return nil, pullErr
+	}
+	_header, _headerErr := BACnetTagHeaderParse(readBuffer)
+	if _headerErr != nil {
+		return nil, errors.Wrap(_headerErr, "Error parsing 'header' field")
+	}
+	header := CastBACnetTagHeader(_header)
+	if closeErr := readBuffer.CloseContext("header"); closeErr != nil {
+		return nil, closeErr
+	}
+
+	// Validation
+	if !(bool((header.GetTagClass()) == (tagClass))) {
+		return nil, utils.ParseValidationError{"tag class doesn't match"}
+	}
+
+	// Validation
+	if !(bool(bool(bool((header.GetTagClass()) == (TagClass_APPLICATION_TAGS)))) || bool(bool(bool((header.GetActualTagNumber()) == (tagNumber))))) {
+		return nil, utils.ParseAssertError{"tagnumber doesn't match"}
+	}
+
+	// Manual Field (value)
+	_value, _valueErr := ReadEnumGeneric(readBuffer, header.GetActualLength(), BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable_VENDOR_PROPRIETARY_VALUE)
+	if _valueErr != nil {
+		return nil, errors.Wrap(_valueErr, "Error parsing 'value' field")
+	}
+	value := _value.(BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable)
+
+	// Validation
+	if !(bool((value) != (BACnetConfirmedServiceRequestReinitializeDeviceEnableDisable_VENDOR_PROPRIETARY_VALUE))) {
+		return nil, utils.ParseValidationError{"Validation failed"}
+	}
+
+	if closeErr := readBuffer.CloseContext("BACnetConfirmedServiceRequestReinitializeDeviceEnableDisableTagged"); closeErr != nil {
+		return nil, closeErr
+	}
+
+	// Create the instance
+	return NewBACnetConfirmedServiceRequestReinitializeDeviceEnableDisableTagged(header, value, tagNumber, tagClass), nil
+}
+
+func (m *BACnetConfirmedServiceRequestReinitializeDeviceEnableDisableTagged) Serialize(writeBuffer utils.WriteBuffer) error {
+	positionAware := writeBuffer
+	_ = positionAware
+	if pushErr := writeBuffer.PushContext("BACnetConfirmedServiceRequestReinitializeDeviceEnableDisableTagged"); pushErr != nil {
+		return pushErr
+	}
+
+	// Simple Field (header)
+	if pushErr := writeBuffer.PushContext("header"); pushErr != nil {
+		return pushErr
+	}
+	_headerErr := m.Header.Serialize(writeBuffer)
+	if popErr := writeBuffer.PopContext("header"); popErr != nil {
+		return popErr
+	}
+	if _headerErr != nil {
+		return errors.Wrap(_headerErr, "Error serializing 'header' field")
+	}
+
+	// Manual Field (value)
+	_valueErr := WriteEnumGeneric(writeBuffer, m.GetValue())
+	if _valueErr != nil {
+		return errors.Wrap(_valueErr, "Error serializing 'value' field")
+	}
+
+	if popErr := writeBuffer.PopContext("BACnetConfirmedServiceRequestReinitializeDeviceEnableDisableTagged"); popErr != nil {
+		return popErr
+	}
+	return nil
+}
+
+func (m *BACnetConfirmedServiceRequestReinitializeDeviceEnableDisableTagged) String() string {
+	if m == nil {
+		return "<nil>"
+	}
+	buffer := utils.NewBoxedWriteBufferWithOptions(true, true)
+	if err := m.Serialize(buffer); err != nil {
+		return err.Error()
+	}
+	return buffer.GetBox().String()
+}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice.go
new file mode 100644
index 0000000000..eab832b910
--- /dev/null
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice.go
@@ -0,0 +1,178 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package model
+
+import (
+	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
+	"github.com/pkg/errors"
+)
+
+// Code generated by code-generation. DO NOT EDIT.
+
+// BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice is an enum
+type BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice uint8
+
+type IBACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice interface {
+	Serialize(writeBuffer utils.WriteBuffer) error
+}
+
+const (
+	BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice_COLDSTART                BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice = 0x0
+	BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice_WARMSTART                BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice = 0x1
+	BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice_ACTIVATE_CHANGES         BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice = 0x2
+	BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice_STARTBACKUP              BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice = 0x3
+	BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice_ENDBACKUP                BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice = 0x4
+	BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice_STARTRESTORE             BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice = 0x5
+	BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice_ENDRESTORE               BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice = 0x6
+	BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice_ABORTRESTORE             BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice = 0x7
+	BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice_VENDOR_PROPRIETARY_VALUE BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice = 0xFF
+)
+
+var BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDeviceValues []BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice
+
+func init() {
+	_ = errors.New
+	BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDeviceValues = []BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice{
+		BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice_COLDSTART,
+		BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice_WARMSTART,
+		BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice_ACTIVATE_CHANGES,
+		BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice_STARTBACKUP,
+		BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice_ENDBACKUP,
+		BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice_STARTRESTORE,
+		BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice_ENDRESTORE,
+		BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice_ABORTRESTORE,
+		BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice_VENDOR_PROPRIETARY_VALUE,
+	}
+}
+
+func BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDeviceByValue(value uint8) BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice {
+	switch value {
+	case 0x0:
+		return BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice_COLDSTART
+	case 0x1:
+		return BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice_WARMSTART
+	case 0x2:
+		return BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice_ACTIVATE_CHANGES
+	case 0x3:
+		return BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice_STARTBACKUP
+	case 0x4:
+		return BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice_ENDBACKUP
+	case 0x5:
+		return BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice_STARTRESTORE
+	case 0x6:
+		return BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice_ENDRESTORE
+	case 0x7:
+		return BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice_ABORTRESTORE
+	case 0xFF:
+		return BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice_VENDOR_PROPRIETARY_VALUE
+	}
+	return 0
+}
+
+func BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDeviceByName(value string) BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice {
+	switch value {
+	case "COLDSTART":
+		return BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice_COLDSTART
+	case "WARMSTART":
+		return BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice_WARMSTART
+	case "ACTIVATE_CHANGES":
+		return BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice_ACTIVATE_CHANGES
+	case "STARTBACKUP":
+		return BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice_STARTBACKUP
+	case "ENDBACKUP":
+		return BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice_ENDBACKUP
+	case "STARTRESTORE":
+		return BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice_STARTRESTORE
+	case "ENDRESTORE":
+		return BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice_ENDRESTORE
+	case "ABORTRESTORE":
+		return BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice_ABORTRESTORE
+	case "VENDOR_PROPRIETARY_VALUE":
+		return BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice_VENDOR_PROPRIETARY_VALUE
+	}
+	return 0
+}
+
+func BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDeviceKnows(value uint8) bool {
+	for _, typeValue := range BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDeviceValues {
+		if uint8(typeValue) == value {
+			return true
+		}
+	}
+	return false
+}
+
+func CastBACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice(structType interface{}) BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice {
+	castFunc := func(typ interface{}) BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice {
+		if sBACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice, ok := typ.(BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice); ok {
+			return sBACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice
+		}
+		return 0
+	}
+	return castFunc(structType)
+}
+
+func (m BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice) GetLengthInBits() uint16 {
+	return 8
+}
+
+func (m BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice) GetLengthInBytes() uint16 {
+	return m.GetLengthInBits() / 8
+}
+
+func BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDeviceParse(readBuffer utils.ReadBuffer) (BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice, error) {
+	val, err := readBuffer.ReadUint8("BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice", 8)
+	if err != nil {
+		return 0, nil
+	}
+	return BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDeviceByValue(val), nil
+}
+
+func (e BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice) Serialize(writeBuffer utils.WriteBuffer) error {
+	return writeBuffer.WriteUint8("BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice", 8, uint8(e), utils.WithAdditionalStringRepresentation(e.name()))
+}
+
+func (e BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice) name() string {
+	switch e {
+	case BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice_COLDSTART:
+		return "COLDSTART"
+	case BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice_WARMSTART:
+		return "WARMSTART"
+	case BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice_ACTIVATE_CHANGES:
+		return "ACTIVATE_CHANGES"
+	case BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice_STARTBACKUP:
+		return "STARTBACKUP"
+	case BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice_ENDBACKUP:
+		return "ENDBACKUP"
+	case BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice_STARTRESTORE:
+		return "STARTRESTORE"
+	case BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice_ENDRESTORE:
+		return "ENDRESTORE"
+	case BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice_ABORTRESTORE:
+		return "ABORTRESTORE"
+	case BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice_VENDOR_PROPRIETARY_VALUE:
+		return "VENDOR_PROPRIETARY_VALUE"
+	}
+	return ""
+}
+
+func (e BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice) String() string {
+	return e.name()
+}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetReliabilityTagged.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDeviceTagged.go
similarity index 53%
copy from plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetReliabilityTagged.go
copy to plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDeviceTagged.go
index 5b7b38b553..5e908357b2 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetReliabilityTagged.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDeviceTagged.go
@@ -26,23 +26,23 @@ import (
 
 // Code generated by code-generation. DO NOT EDIT.
 
-// BACnetReliabilityTagged is the data-structure of this message
-type BACnetReliabilityTagged struct {
+// BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDeviceTagged is the data-structure of this message
+type BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDeviceTagged struct {
 	Header           *BACnetTagHeader
-	Value            BACnetReliability
+	Value            BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice
 	ProprietaryValue uint32
 
 	// Arguments.
-	TagClass  TagClass
 	TagNumber uint8
+	TagClass  TagClass
 }
 
-// IBACnetReliabilityTagged is the corresponding interface of BACnetReliabilityTagged
-type IBACnetReliabilityTagged interface {
+// IBACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDeviceTagged is the corresponding interface of BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDeviceTagged
+type IBACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDeviceTagged interface {
 	// GetHeader returns Header (property field)
 	GetHeader() *BACnetTagHeader
 	// GetValue returns Value (property field)
-	GetValue() BACnetReliability
+	GetValue() BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice
 	// GetProprietaryValue returns ProprietaryValue (property field)
 	GetProprietaryValue() uint32
 	// GetIsProprietary returns IsProprietary (virtual field)
@@ -60,15 +60,15 @@ type IBACnetReliabilityTagged interface {
 /////////////////////// Accessors for property fields.
 ///////////////////////
 
-func (m *BACnetReliabilityTagged) GetHeader() *BACnetTagHeader {
+func (m *BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDeviceTagged) GetHeader() *BACnetTagHeader {
 	return m.Header
 }
 
-func (m *BACnetReliabilityTagged) GetValue() BACnetReliability {
+func (m *BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDeviceTagged) GetValue() BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice {
 	return m.Value
 }
 
-func (m *BACnetReliabilityTagged) GetProprietaryValue() uint32 {
+func (m *BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDeviceTagged) GetProprietaryValue() uint32 {
 	return m.ProprietaryValue
 }
 
@@ -81,8 +81,8 @@ func (m *BACnetReliabilityTagged) GetProprietaryValue() uint32 {
 /////////////////////// Accessors for virtual fields.
 ///////////////////////
 
-func (m *BACnetReliabilityTagged) GetIsProprietary() bool {
-	return bool(bool((m.GetValue()) == (BACnetReliability_VENDOR_PROPRIETARY_VALUE)))
+func (m *BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDeviceTagged) GetIsProprietary() bool {
+	return bool(bool((m.GetValue()) == (BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice_VENDOR_PROPRIETARY_VALUE)))
 }
 
 ///////////////////////
@@ -90,30 +90,30 @@ func (m *BACnetReliabilityTagged) GetIsProprietary() bool {
 ///////////////////////////////////////////////////////////
 ///////////////////////////////////////////////////////////
 
-// NewBACnetReliabilityTagged factory function for BACnetReliabilityTagged
-func NewBACnetReliabilityTagged(header *BACnetTagHeader, value BACnetReliability, proprietaryValue uint32, tagClass TagClass, tagNumber uint8) *BACnetReliabilityTagged {
-	return &BACnetReliabilityTagged{Header: header, Value: value, ProprietaryValue: proprietaryValue, TagClass: tagClass, TagNumber: tagNumber}
+// NewBACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDeviceTagged factory function for BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDeviceTagged
+func NewBACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDeviceTagged(header *BACnetTagHeader, value BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice, proprietaryValue uint32, tagNumber uint8, tagClass TagClass) *BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDeviceTagged {
+	return &BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDeviceTagged{Header: header, Value: value, ProprietaryValue: proprietaryValue, TagNumber: tagNumber, TagClass: tagClass}
 }
 
-func CastBACnetReliabilityTagged(structType interface{}) *BACnetReliabilityTagged {
-	if casted, ok := structType.(BACnetReliabilityTagged); ok {
+func CastBACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDeviceTagged(structType interface{}) *BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDeviceTagged {
+	if casted, ok := structType.(BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDeviceTagged); ok {
 		return &casted
 	}
-	if casted, ok := structType.(*BACnetReliabilityTagged); ok {
+	if casted, ok := structType.(*BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDeviceTagged); ok {
 		return casted
 	}
 	return nil
 }
 
-func (m *BACnetReliabilityTagged) GetTypeName() string {
-	return "BACnetReliabilityTagged"
+func (m *BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDeviceTagged) GetTypeName() string {
+	return "BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDeviceTagged"
 }
 
-func (m *BACnetReliabilityTagged) GetLengthInBits() uint16 {
+func (m *BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDeviceTagged) GetLengthInBits() uint16 {
 	return m.GetLengthInBitsConditional(false)
 }
 
-func (m *BACnetReliabilityTagged) GetLengthInBitsConditional(lastItem bool) uint16 {
+func (m *BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDeviceTagged) GetLengthInBitsConditional(lastItem bool) uint16 {
 	lengthInBits := uint16(0)
 
 	// Simple field (header)
@@ -125,19 +125,19 @@ func (m *BACnetReliabilityTagged) GetLengthInBitsConditional(lastItem bool) uint
 	// A virtual field doesn't have any in- or output.
 
 	// Manual Field (proprietaryValue)
-	lengthInBits += uint16(int32(m.GetHeader().GetActualLength()) * int32(int32(8)))
+	lengthInBits += uint16(utils.InlineIf(m.GetIsProprietary(), func() interface{} { return int32(int32(m.GetHeader().GetActualLength()) * int32(int32(8))) }, func() interface{} { return int32(int32(0)) }).(int32))
 
 	return lengthInBits
 }
 
-func (m *BACnetReliabilityTagged) GetLengthInBytes() uint16 {
+func (m *BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDeviceTagged) GetLengthInBytes() uint16 {
 	return m.GetLengthInBits() / 8
 }
 
-func BACnetReliabilityTaggedParse(readBuffer utils.ReadBuffer, tagClass TagClass, tagNumber uint8) (*BACnetReliabilityTagged, error) {
+func BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDeviceTaggedParse(readBuffer utils.ReadBuffer, tagNumber uint8, tagClass TagClass) (*BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDeviceTagged, error) {
 	positionAware := readBuffer
 	_ = positionAware
-	if pullErr := readBuffer.PullContext("BACnetReliabilityTagged"); pullErr != nil {
+	if pullErr := readBuffer.PullContext("BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDeviceTagged"); pullErr != nil {
 		return nil, pullErr
 	}
 	currentPos := positionAware.GetPos()
@@ -158,7 +158,7 @@ func BACnetReliabilityTaggedParse(readBuffer utils.ReadBuffer, tagClass TagClass
 
 	// Validation
 	if !(bool((header.GetTagClass()) == (tagClass))) {
-		return nil, utils.ParseValidationError{"tag doesn't match"}
+		return nil, utils.ParseValidationError{"tag class doesn't match"}
 	}
 
 	// Validation
@@ -167,14 +167,14 @@ func BACnetReliabilityTaggedParse(readBuffer utils.ReadBuffer, tagClass TagClass
 	}
 
 	// Manual Field (value)
-	_value, _valueErr := ReadEnumGeneric(readBuffer, header.GetActualLength(), BACnetReliability_VENDOR_PROPRIETARY_VALUE)
+	_value, _valueErr := ReadEnumGeneric(readBuffer, header.GetActualLength(), BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice_VENDOR_PROPRIETARY_VALUE)
 	if _valueErr != nil {
 		return nil, errors.Wrap(_valueErr, "Error parsing 'value' field")
 	}
-	value := _value.(BACnetReliability)
+	value := _value.(BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice)
 
 	// Virtual field
-	_isProprietary := bool((value) == (BACnetReliability_VENDOR_PROPRIETARY_VALUE))
+	_isProprietary := bool((value) == (BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDevice_VENDOR_PROPRIETARY_VALUE))
 	isProprietary := bool(_isProprietary)
 	_ = isProprietary
 
@@ -185,18 +185,18 @@ func BACnetReliabilityTaggedParse(readBuffer utils.ReadBuffer, tagClass TagClass
 	}
 	proprietaryValue := _proprietaryValue.(uint32)
 
-	if closeErr := readBuffer.CloseContext("BACnetReliabilityTagged"); closeErr != nil {
+	if closeErr := readBuffer.CloseContext("BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDeviceTagged"); closeErr != nil {
 		return nil, closeErr
 	}
 
 	// Create the instance
-	return NewBACnetReliabilityTagged(header, value, proprietaryValue, tagClass, tagNumber), nil
+	return NewBACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDeviceTagged(header, value, proprietaryValue, tagNumber, tagClass), nil
 }
 
-func (m *BACnetReliabilityTagged) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDeviceTagged) Serialize(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
-	if pushErr := writeBuffer.PushContext("BACnetReliabilityTagged"); pushErr != nil {
+	if pushErr := writeBuffer.PushContext("BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDeviceTagged"); pushErr != nil {
 		return pushErr
 	}
 
@@ -228,13 +228,13 @@ func (m *BACnetReliabilityTagged) Serialize(writeBuffer utils.WriteBuffer) error
 		return errors.Wrap(_proprietaryValueErr, "Error serializing 'proprietaryValue' field")
 	}
 
-	if popErr := writeBuffer.PopContext("BACnetReliabilityTagged"); popErr != nil {
+	if popErr := writeBuffer.PopContext("BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDeviceTagged"); popErr != nil {
 		return popErr
 	}
 	return nil
 }
 
-func (m *BACnetReliabilityTagged) String() string {
+func (m *BACnetConfirmedServiceRequestReinitializeDeviceReinitializedStateOfDeviceTagged) String() string {
 	if m == nil {
 		return "<nil>"
 	}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestRemoveListElement.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestRemoveListElement.go
index eae366572a..680a127437 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestRemoveListElement.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestRemoveListElement.go
@@ -31,7 +31,7 @@ import (
 type BACnetConfirmedServiceRequestRemoveListElement struct {
 	*BACnetConfirmedServiceRequest
 	ObjectIdentifier   *BACnetContextTagObjectIdentifier
-	PropertyIdentifier *BACnetContextTagPropertyIdentifier
+	PropertyIdentifier *BACnetPropertyIdentifierTagged
 	ArrayIndex         *BACnetContextTagUnsignedInteger
 	ListOfElements     *BACnetConstructedData
 
@@ -45,7 +45,7 @@ type IBACnetConfirmedServiceRequestRemoveListElement interface {
 	// GetObjectIdentifier returns ObjectIdentifier (property field)
 	GetObjectIdentifier() *BACnetContextTagObjectIdentifier
 	// GetPropertyIdentifier returns PropertyIdentifier (property field)
-	GetPropertyIdentifier() *BACnetContextTagPropertyIdentifier
+	GetPropertyIdentifier() *BACnetPropertyIdentifierTagged
 	// GetArrayIndex returns ArrayIndex (property field)
 	GetArrayIndex() *BACnetContextTagUnsignedInteger
 	// GetListOfElements returns ListOfElements (property field)
@@ -88,7 +88,7 @@ func (m *BACnetConfirmedServiceRequestRemoveListElement) GetObjectIdentifier() *
 	return m.ObjectIdentifier
 }
 
-func (m *BACnetConfirmedServiceRequestRemoveListElement) GetPropertyIdentifier() *BACnetContextTagPropertyIdentifier {
+func (m *BACnetConfirmedServiceRequestRemoveListElement) GetPropertyIdentifier() *BACnetPropertyIdentifierTagged {
 	return m.PropertyIdentifier
 }
 
@@ -106,7 +106,7 @@ func (m *BACnetConfirmedServiceRequestRemoveListElement) GetListOfElements() *BA
 ///////////////////////////////////////////////////////////
 
 // NewBACnetConfirmedServiceRequestRemoveListElement factory function for BACnetConfirmedServiceRequestRemoveListElement
-func NewBACnetConfirmedServiceRequestRemoveListElement(objectIdentifier *BACnetContextTagObjectIdentifier, propertyIdentifier *BACnetContextTagPropertyIdentifier, arrayIndex *BACnetContextTagUnsignedInteger, listOfElements *BACnetConstructedData, serviceRequestLength uint16) *BACnetConfirmedServiceRequestRemoveListElement {
+func NewBACnetConfirmedServiceRequestRemoveListElement(objectIdentifier *BACnetContextTagObjectIdentifier, propertyIdentifier *BACnetPropertyIdentifierTagged, arrayIndex *BACnetContextTagUnsignedInteger, listOfElements *BACnetConstructedData, serviceRequestLength uint16) *BACnetConfirmedServiceRequestRemoveListElement {
 	_result := &BACnetConfirmedServiceRequestRemoveListElement{
 		ObjectIdentifier:              objectIdentifier,
 		PropertyIdentifier:            propertyIdentifier,
@@ -194,11 +194,11 @@ func BACnetConfirmedServiceRequestRemoveListElementParse(readBuffer utils.ReadBu
 	if pullErr := readBuffer.PullContext("propertyIdentifier"); pullErr != nil {
 		return nil, pullErr
 	}
-	_propertyIdentifier, _propertyIdentifierErr := BACnetContextTagParse(readBuffer, uint8(uint8(1)), BACnetDataType(BACnetDataType_BACNET_PROPERTY_IDENTIFIER))
+	_propertyIdentifier, _propertyIdentifierErr := BACnetPropertyIdentifierTaggedParse(readBuffer, uint8(uint8(1)), TagClass(TagClass_CONTEXT_SPECIFIC_TAGS))
 	if _propertyIdentifierErr != nil {
 		return nil, errors.Wrap(_propertyIdentifierErr, "Error parsing 'propertyIdentifier' field")
 	}
-	propertyIdentifier := CastBACnetContextTagPropertyIdentifier(_propertyIdentifier)
+	propertyIdentifier := CastBACnetPropertyIdentifierTagged(_propertyIdentifier)
 	if closeErr := readBuffer.CloseContext("propertyIdentifier"); closeErr != nil {
 		return nil, closeErr
 	}
@@ -231,7 +231,7 @@ func BACnetConfirmedServiceRequestRemoveListElementParse(readBuffer utils.ReadBu
 		if pullErr := readBuffer.PullContext("listOfElements"); pullErr != nil {
 			return nil, pullErr
 		}
-		_val, _err := BACnetConstructedDataParse(readBuffer, uint8(3), objectIdentifier.GetObjectType(), propertyIdentifier)
+		_val, _err := BACnetConstructedDataParse(readBuffer, uint8(3), objectIdentifier.GetObjectType(), propertyIdentifier.GetValue())
 		switch {
 		case errors.Is(_err, utils.ParseAssertError{}) || errors.Is(_err, io.EOF):
 			readBuffer.Reset(currentPos)
@@ -252,7 +252,7 @@ func BACnetConfirmedServiceRequestRemoveListElementParse(readBuffer utils.ReadBu
 	// Create a partially initialized instance
 	_child := &BACnetConfirmedServiceRequestRemoveListElement{
 		ObjectIdentifier:              CastBACnetContextTagObjectIdentifier(objectIdentifier),
-		PropertyIdentifier:            CastBACnetContextTagPropertyIdentifier(propertyIdentifier),
+		PropertyIdentifier:            CastBACnetPropertyIdentifierTagged(propertyIdentifier),
 		ArrayIndex:                    CastBACnetContextTagUnsignedInteger(arrayIndex),
 		ListOfElements:                CastBACnetConstructedData(listOfElements),
 		BACnetConfirmedServiceRequest: &BACnetConfirmedServiceRequest{},
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestWriteProperty.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestWriteProperty.go
index 8232875996..65632109be 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestWriteProperty.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequestWriteProperty.go
@@ -31,7 +31,7 @@ import (
 type BACnetConfirmedServiceRequestWriteProperty struct {
 	*BACnetConfirmedServiceRequest
 	ObjectIdentifier   *BACnetContextTagObjectIdentifier
-	PropertyIdentifier *BACnetContextTagPropertyIdentifier
+	PropertyIdentifier *BACnetPropertyIdentifierTagged
 	ArrayIndex         *BACnetContextTagUnsignedInteger
 	PropertyValue      *BACnetConstructedData
 	Priority           *BACnetContextTagUnsignedInteger
@@ -46,7 +46,7 @@ type IBACnetConfirmedServiceRequestWriteProperty interface {
 	// GetObjectIdentifier returns ObjectIdentifier (property field)
 	GetObjectIdentifier() *BACnetContextTagObjectIdentifier
 	// GetPropertyIdentifier returns PropertyIdentifier (property field)
-	GetPropertyIdentifier() *BACnetContextTagPropertyIdentifier
+	GetPropertyIdentifier() *BACnetPropertyIdentifierTagged
 	// GetArrayIndex returns ArrayIndex (property field)
 	GetArrayIndex() *BACnetContextTagUnsignedInteger
 	// GetPropertyValue returns PropertyValue (property field)
@@ -91,7 +91,7 @@ func (m *BACnetConfirmedServiceRequestWriteProperty) GetObjectIdentifier() *BACn
 	return m.ObjectIdentifier
 }
 
-func (m *BACnetConfirmedServiceRequestWriteProperty) GetPropertyIdentifier() *BACnetContextTagPropertyIdentifier {
+func (m *BACnetConfirmedServiceRequestWriteProperty) GetPropertyIdentifier() *BACnetPropertyIdentifierTagged {
 	return m.PropertyIdentifier
 }
 
@@ -113,7 +113,7 @@ func (m *BACnetConfirmedServiceRequestWriteProperty) GetPriority() *BACnetContex
 ///////////////////////////////////////////////////////////
 
 // NewBACnetConfirmedServiceRequestWriteProperty factory function for BACnetConfirmedServiceRequestWriteProperty
-func NewBACnetConfirmedServiceRequestWriteProperty(objectIdentifier *BACnetContextTagObjectIdentifier, propertyIdentifier *BACnetContextTagPropertyIdentifier, arrayIndex *BACnetContextTagUnsignedInteger, propertyValue *BACnetConstructedData, priority *BACnetContextTagUnsignedInteger, serviceRequestLength uint16) *BACnetConfirmedServiceRequestWriteProperty {
+func NewBACnetConfirmedServiceRequestWriteProperty(objectIdentifier *BACnetContextTagObjectIdentifier, propertyIdentifier *BACnetPropertyIdentifierTagged, arrayIndex *BACnetContextTagUnsignedInteger, propertyValue *BACnetConstructedData, priority *BACnetContextTagUnsignedInteger, serviceRequestLength uint16) *BACnetConfirmedServiceRequestWriteProperty {
 	_result := &BACnetConfirmedServiceRequestWriteProperty{
 		ObjectIdentifier:              objectIdentifier,
 		PropertyIdentifier:            propertyIdentifier,
@@ -205,11 +205,11 @@ func BACnetConfirmedServiceRequestWritePropertyParse(readBuffer utils.ReadBuffer
 	if pullErr := readBuffer.PullContext("propertyIdentifier"); pullErr != nil {
 		return nil, pullErr
 	}
-	_propertyIdentifier, _propertyIdentifierErr := BACnetContextTagParse(readBuffer, uint8(uint8(1)), BACnetDataType(BACnetDataType_BACNET_PROPERTY_IDENTIFIER))
+	_propertyIdentifier, _propertyIdentifierErr := BACnetPropertyIdentifierTaggedParse(readBuffer, uint8(uint8(1)), TagClass(TagClass_CONTEXT_SPECIFIC_TAGS))
 	if _propertyIdentifierErr != nil {
 		return nil, errors.Wrap(_propertyIdentifierErr, "Error parsing 'propertyIdentifier' field")
 	}
-	propertyIdentifier := CastBACnetContextTagPropertyIdentifier(_propertyIdentifier)
+	propertyIdentifier := CastBACnetPropertyIdentifierTagged(_propertyIdentifier)
 	if closeErr := readBuffer.CloseContext("propertyIdentifier"); closeErr != nil {
 		return nil, closeErr
 	}
@@ -239,7 +239,7 @@ func BACnetConfirmedServiceRequestWritePropertyParse(readBuffer utils.ReadBuffer
 	if pullErr := readBuffer.PullContext("propertyValue"); pullErr != nil {
 		return nil, pullErr
 	}
-	_propertyValue, _propertyValueErr := BACnetConstructedDataParse(readBuffer, uint8(uint8(3)), BACnetObjectType(objectIdentifier.GetObjectType()), propertyIdentifier)
+	_propertyValue, _propertyValueErr := BACnetConstructedDataParse(readBuffer, uint8(uint8(3)), BACnetObjectType(objectIdentifier.GetObjectType()), BACnetPropertyIdentifier(propertyIdentifier.GetValue()))
 	if _propertyValueErr != nil {
 		return nil, errors.Wrap(_propertyValueErr, "Error parsing 'propertyValue' field")
 	}
@@ -276,7 +276,7 @@ func BACnetConfirmedServiceRequestWritePropertyParse(readBuffer utils.ReadBuffer
 	// Create a partially initialized instance
 	_child := &BACnetConfirmedServiceRequestWriteProperty{
 		ObjectIdentifier:              CastBACnetContextTagObjectIdentifier(objectIdentifier),
-		PropertyIdentifier:            CastBACnetContextTagPropertyIdentifier(propertyIdentifier),
+		PropertyIdentifier:            CastBACnetPropertyIdentifierTagged(propertyIdentifier),
 		ArrayIndex:                    CastBACnetContextTagUnsignedInteger(arrayIndex),
 		PropertyValue:                 CastBACnetConstructedData(propertyValue),
 		Priority:                      CastBACnetContextTagUnsignedInteger(priority),
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedData.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedData.go
index dbf14f2963..8e6bfcb481 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedData.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedData.go
@@ -32,21 +32,20 @@ type BACnetConstructedData struct {
 	ClosingTag *BACnetClosingTag
 
 	// Arguments.
-	TagNumber                  uint8
-	PropertyIdentifierArgument BACnetContextTagPropertyIdentifier
-	Child                      IBACnetConstructedDataChild
+	TagNumber uint8
+	Child     IBACnetConstructedDataChild
 }
 
 // IBACnetConstructedData is the corresponding interface of BACnetConstructedData
 type IBACnetConstructedData interface {
 	// GetObjectType returns ObjectType (discriminator field)
 	GetObjectType() BACnetObjectType
+	// GetPropertyIdentifierArgument returns PropertyIdentifierArgument (discriminator field)
+	GetPropertyIdentifierArgument() BACnetPropertyIdentifier
 	// GetOpeningTag returns OpeningTag (property field)
 	GetOpeningTag() *BACnetOpeningTag
 	// GetClosingTag returns ClosingTag (property field)
 	GetClosingTag() *BACnetClosingTag
-	// GetPropertyIdentifierEnum returns PropertyIdentifierEnum (virtual field)
-	GetPropertyIdentifierEnum() BACnetPropertyIdentifier
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
@@ -82,27 +81,14 @@ func (m *BACnetConstructedData) GetClosingTag() *BACnetClosingTag {
 	return m.ClosingTag
 }
 
-///////////////////////
-///////////////////////
-///////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////
-/////////////////////// Accessors for virtual fields.
-///////////////////////
-
-func (m *BACnetConstructedData) GetPropertyIdentifierEnum() BACnetPropertyIdentifier {
-	return BACnetPropertyIdentifier(m.PropertyIdentifierArgument.GetPropertyIdentifier())
-}
-
 ///////////////////////
 ///////////////////////
 ///////////////////////////////////////////////////////////
 ///////////////////////////////////////////////////////////
 
 // NewBACnetConstructedData factory function for BACnetConstructedData
-func NewBACnetConstructedData(openingTag *BACnetOpeningTag, closingTag *BACnetClosingTag, tagNumber uint8, propertyIdentifierArgument BACnetContextTagPropertyIdentifier) *BACnetConstructedData {
-	return &BACnetConstructedData{OpeningTag: openingTag, ClosingTag: closingTag, TagNumber: tagNumber, PropertyIdentifierArgument: propertyIdentifierArgument}
+func NewBACnetConstructedData(openingTag *BACnetOpeningTag, closingTag *BACnetClosingTag, tagNumber uint8) *BACnetConstructedData {
+	return &BACnetConstructedData{OpeningTag: openingTag, ClosingTag: closingTag, TagNumber: tagNumber}
 }
 
 func CastBACnetConstructedData(structType interface{}) *BACnetConstructedData {
@@ -136,8 +122,6 @@ func (m *BACnetConstructedData) GetParentLengthInBits() uint16 {
 	// Simple field (openingTag)
 	lengthInBits += m.OpeningTag.GetLengthInBits()
 
-	// A virtual field doesn't have any in- or output.
-
 	// Simple field (closingTag)
 	lengthInBits += m.ClosingTag.GetLengthInBits()
 
@@ -148,7 +132,7 @@ func (m *BACnetConstructedData) GetLengthInBytes() uint16 {
 	return m.GetLengthInBits() / 8
 }
 
-func BACnetConstructedDataParse(readBuffer utils.ReadBuffer, tagNumber uint8, objectType BACnetObjectType, propertyIdentifierArgument *BACnetContextTagPropertyIdentifier) (*BACnetConstructedData, error) {
+func BACnetConstructedDataParse(readBuffer utils.ReadBuffer, tagNumber uint8, objectType BACnetObjectType, propertyIdentifierArgument BACnetPropertyIdentifier) (*BACnetConstructedData, error) {
 	positionAware := readBuffer
 	_ = positionAware
 	if pullErr := readBuffer.PullContext("BACnetConstructedData"); pullErr != nil {
@@ -170,11 +154,6 @@ func BACnetConstructedDataParse(readBuffer utils.ReadBuffer, tagNumber uint8, ob
 		return nil, closeErr
 	}
 
-	// Virtual field
-	_propertyIdentifierEnum := propertyIdentifierArgument.GetPropertyIdentifier()
-	propertyIdentifierEnum := BACnetPropertyIdentifier(_propertyIdentifierEnum)
-	_ = propertyIdentifierEnum
-
 	// Switch Field (Depending on the discriminator values, passes the instantiation to a sub-type)
 	type BACnetConstructedDataChild interface {
 		InitializeParent(*BACnetConstructedData, *BACnetOpeningTag, *BACnetClosingTag)
@@ -183,27 +162,27 @@ func BACnetConstructedDataParse(readBuffer utils.ReadBuffer, tagNumber uint8, ob
 	var _child BACnetConstructedDataChild
 	var typeSwitchError error
 	switch {
-	case true && propertyIdentifierEnum == BACnetPropertyIdentifier_ACCEPTED_MODES: // BACnetConstructedDataAcceptedModes
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_ACCEPTED_MODES: // BACnetConstructedDataAcceptedModes
 		_child, typeSwitchError = BACnetConstructedDataAcceptedModesParse(readBuffer, tagNumber, objectType, propertyIdentifierArgument)
-	case objectType == BACnetObjectType_LOOP && propertyIdentifierEnum == BACnetPropertyIdentifier_ACTION: // BACnetConstructedDataLoopAction
+	case objectType == BACnetObjectType_LOOP && propertyIdentifierArgument == BACnetPropertyIdentifier_ACTION: // BACnetConstructedDataLoopAction
 		_child, typeSwitchError = BACnetConstructedDataLoopActionParse(readBuffer, tagNumber, objectType, propertyIdentifierArgument)
-	case true && propertyIdentifierEnum == BACnetPropertyIdentifier_ACTION: // BACnetConstructedDataAction
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_ACTION: // BACnetConstructedDataAction
 		_child, typeSwitchError = BACnetConstructedDataActionParse(readBuffer, tagNumber, objectType, propertyIdentifierArgument)
-	case objectType == BACnetObjectType_LIFE_SAFETY_POINT && propertyIdentifierEnum == BACnetPropertyIdentifier_ALARM_VALUES: // BACnetConstructedDataLifeSafetyPointAlarmValues
+	case objectType == BACnetObjectType_LIFE_SAFETY_POINT && propertyIdentifierArgument == BACnetPropertyIdentifier_ALARM_VALUES: // BACnetConstructedDataLifeSafetyPointAlarmValues
 		_child, typeSwitchError = BACnetConstructedDataLifeSafetyPointAlarmValuesParse(readBuffer, tagNumber, objectType, propertyIdentifierArgument)
-	case true && propertyIdentifierEnum == BACnetPropertyIdentifier_EVENT_TIME_STAMPS: // BACnetConstructedDataEventTimestamps
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_EVENT_TIME_STAMPS: // BACnetConstructedDataEventTimestamps
 		_child, typeSwitchError = BACnetConstructedDataEventTimestampsParse(readBuffer, tagNumber, objectType, propertyIdentifierArgument)
-	case objectType == BACnetObjectType_LIFE_SAFETY_POINT && propertyIdentifierEnum == BACnetPropertyIdentifier_FAULT_VALUES: // BACnetConstructedDataLifeSafetyPointFaultValues
+	case objectType == BACnetObjectType_LIFE_SAFETY_POINT && propertyIdentifierArgument == BACnetPropertyIdentifier_FAULT_VALUES: // BACnetConstructedDataLifeSafetyPointFaultValues
 		_child, typeSwitchError = BACnetConstructedDataLifeSafetyPointFaultValuesParse(readBuffer, tagNumber, objectType, propertyIdentifierArgument)
-	case true && propertyIdentifierEnum == BACnetPropertyIdentifier_LIFE_SAFETY_ALARM_VALUES: // BACnetConstructedDataLifeSafetyAlarmValues
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_LIFE_SAFETY_ALARM_VALUES: // BACnetConstructedDataLifeSafetyAlarmValues
 		_child, typeSwitchError = BACnetConstructedDataLifeSafetyAlarmValuesParse(readBuffer, tagNumber, objectType, propertyIdentifierArgument)
-	case true && propertyIdentifierEnum == BACnetPropertyIdentifier_LIST_OF_OBJECT_PROPERTY_REFERENCES: // BACnetConstructedDataListOfObjectPropertyReferences
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_LIST_OF_OBJECT_PROPERTY_REFERENCES: // BACnetConstructedDataListOfObjectPropertyReferences
 		_child, typeSwitchError = BACnetConstructedDataListOfObjectPropertyReferencesParse(readBuffer, tagNumber, objectType, propertyIdentifierArgument)
-	case true && propertyIdentifierEnum == BACnetPropertyIdentifier_MEMBER_OF: // BACnetConstructedDataMemberOf
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_MEMBER_OF: // BACnetConstructedDataMemberOf
 		_child, typeSwitchError = BACnetConstructedDataMemberOfParse(readBuffer, tagNumber, objectType, propertyIdentifierArgument)
-	case true && propertyIdentifierEnum == BACnetPropertyIdentifier_RELIABILITY: // BACnetConstructedDataReliability
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_RELIABILITY: // BACnetConstructedDataReliability
 		_child, typeSwitchError = BACnetConstructedDataReliabilityParse(readBuffer, tagNumber, objectType, propertyIdentifierArgument)
-	case true && propertyIdentifierEnum == BACnetPropertyIdentifier_ZONE_MEMBERS: // BACnetConstructedDataZoneMembers
+	case true && propertyIdentifierArgument == BACnetPropertyIdentifier_ZONE_MEMBERS: // BACnetConstructedDataZoneMembers
 		_child, typeSwitchError = BACnetConstructedDataZoneMembersParse(readBuffer, tagNumber, objectType, propertyIdentifierArgument)
 	case true: // BACnetConstructedDataUnspecified
 		_child, typeSwitchError = BACnetConstructedDataUnspecifiedParse(readBuffer, tagNumber, objectType, propertyIdentifierArgument)
@@ -259,10 +238,6 @@ func (m *BACnetConstructedData) SerializeParent(writeBuffer utils.WriteBuffer, c
 	if _openingTagErr != nil {
 		return errors.Wrap(_openingTagErr, "Error serializing 'openingTag' field")
 	}
-	// Virtual field
-	if _propertyIdentifierEnumErr := writeBuffer.WriteVirtual("propertyIdentifierEnum", m.GetPropertyIdentifierEnum()); _propertyIdentifierEnumErr != nil {
-		return errors.Wrap(_propertyIdentifierEnumErr, "Error serializing 'propertyIdentifierEnum' field")
-	}
 
 	// Switch field (Depending on the discriminator values, passes the serialization to a sub-type)
 	if _typeSwitchErr := serializeChildFunction(); _typeSwitchErr != nil {
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataAcceptedModes.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataAcceptedModes.go
index d7f8bee72a..a0d93eaf2c 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataAcceptedModes.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataAcceptedModes.go
@@ -29,18 +29,17 @@ import (
 // BACnetConstructedDataAcceptedModes is the data-structure of this message
 type BACnetConstructedDataAcceptedModes struct {
 	*BACnetConstructedData
-	AcceptedModes []*BACnetConstructedDataAcceptedModesEntry
+	AcceptedModes []*BACnetLifeSafetyModeTagged
 
 	// Arguments.
-	TagNumber                  uint8
-	PropertyIdentifierArgument BACnetContextTagPropertyIdentifier
+	TagNumber uint8
 }
 
 // IBACnetConstructedDataAcceptedModes is the corresponding interface of BACnetConstructedDataAcceptedModes
 type IBACnetConstructedDataAcceptedModes interface {
 	IBACnetConstructedData
 	// GetAcceptedModes returns AcceptedModes (property field)
-	GetAcceptedModes() []*BACnetConstructedDataAcceptedModesEntry
+	GetAcceptedModes() []*BACnetLifeSafetyModeTagged
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
@@ -58,6 +57,10 @@ func (m *BACnetConstructedDataAcceptedModes) GetObjectType() BACnetObjectType {
 	return 0
 }
 
+func (m *BACnetConstructedDataAcceptedModes) GetPropertyIdentifierArgument() BACnetPropertyIdentifier {
+	return BACnetPropertyIdentifier_ACCEPTED_MODES
+}
+
 ///////////////////////
 ///////////////////////
 ///////////////////////////////////////////////////////////
@@ -77,7 +80,7 @@ func (m *BACnetConstructedDataAcceptedModes) GetParent() *BACnetConstructedData
 /////////////////////// Accessors for property fields.
 ///////////////////////
 
-func (m *BACnetConstructedDataAcceptedModes) GetAcceptedModes() []*BACnetConstructedDataAcceptedModesEntry {
+func (m *BACnetConstructedDataAcceptedModes) GetAcceptedModes() []*BACnetLifeSafetyModeTagged {
 	return m.AcceptedModes
 }
 
@@ -87,10 +90,10 @@ func (m *BACnetConstructedDataAcceptedModes) GetAcceptedModes() []*BACnetConstru
 ///////////////////////////////////////////////////////////
 
 // NewBACnetConstructedDataAcceptedModes factory function for BACnetConstructedDataAcceptedModes
-func NewBACnetConstructedDataAcceptedModes(acceptedModes []*BACnetConstructedDataAcceptedModesEntry, openingTag *BACnetOpeningTag, closingTag *BACnetClosingTag, tagNumber uint8, propertyIdentifierArgument BACnetContextTagPropertyIdentifier) *BACnetConstructedDataAcceptedModes {
+func NewBACnetConstructedDataAcceptedModes(acceptedModes []*BACnetLifeSafetyModeTagged, openingTag *BACnetOpeningTag, closingTag *BACnetClosingTag, tagNumber uint8) *BACnetConstructedDataAcceptedModes {
 	_result := &BACnetConstructedDataAcceptedModes{
 		AcceptedModes:         acceptedModes,
-		BACnetConstructedData: NewBACnetConstructedData(openingTag, closingTag, tagNumber, propertyIdentifierArgument),
+		BACnetConstructedData: NewBACnetConstructedData(openingTag, closingTag, tagNumber),
 	}
 	_result.Child = _result
 	return _result
@@ -137,7 +140,7 @@ func (m *BACnetConstructedDataAcceptedModes) GetLengthInBytes() uint16 {
 	return m.GetLengthInBits() / 8
 }
 
-func BACnetConstructedDataAcceptedModesParse(readBuffer utils.ReadBuffer, tagNumber uint8, objectType BACnetObjectType, propertyIdentifierArgument *BACnetContextTagPropertyIdentifier) (*BACnetConstructedDataAcceptedModes, error) {
+func BACnetConstructedDataAcceptedModesParse(readBuffer utils.ReadBuffer, tagNumber uint8, objectType BACnetObjectType, propertyIdentifierArgument BACnetPropertyIdentifier) (*BACnetConstructedDataAcceptedModes, error) {
 	positionAware := readBuffer
 	_ = positionAware
 	if pullErr := readBuffer.PullContext("BACnetConstructedDataAcceptedModes"); pullErr != nil {
@@ -151,14 +154,14 @@ func BACnetConstructedDataAcceptedModesParse(readBuffer utils.ReadBuffer, tagNum
 		return nil, pullErr
 	}
 	// Terminated array
-	acceptedModes := make([]*BACnetConstructedDataAcceptedModesEntry, 0)
+	acceptedModes := make([]*BACnetLifeSafetyModeTagged, 0)
 	{
 		for !bool(IsBACnetConstructedDataClosingTag(readBuffer, false, tagNumber)) {
-			_item, _err := BACnetConstructedDataAcceptedModesEntryParse(readBuffer)
+			_item, _err := BACnetLifeSafetyModeTaggedParse(readBuffer, uint8(0), TagClass_APPLICATION_TAGS)
 			if _err != nil {
 				return nil, errors.Wrap(_err, "Error parsing 'acceptedModes' field")
 			}
-			acceptedModes = append(acceptedModes, CastBACnetConstructedDataAcceptedModesEntry(_item))
+			acceptedModes = append(acceptedModes, CastBACnetLifeSafetyModeTagged(_item))
 
 		}
 	}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataAcceptedModesEntry.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataAcceptedModesEntry.go
deleted file mode 100644
index b0279ac566..0000000000
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataAcceptedModesEntry.go
+++ /dev/null
@@ -1,220 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package model
-
-import (
-	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
-	"github.com/pkg/errors"
-)
-
-// Code generated by code-generation. DO NOT EDIT.
-
-// BACnetConstructedDataAcceptedModesEntry is the data-structure of this message
-type BACnetConstructedDataAcceptedModesEntry struct {
-	RawData *BACnetApplicationTagEnumerated
-}
-
-// IBACnetConstructedDataAcceptedModesEntry is the corresponding interface of BACnetConstructedDataAcceptedModesEntry
-type IBACnetConstructedDataAcceptedModesEntry interface {
-	// GetRawData returns RawData (property field)
-	GetRawData() *BACnetApplicationTagEnumerated
-	// GetIsAcceptedModeProprietary returns IsAcceptedModeProprietary (virtual field)
-	GetIsAcceptedModeProprietary() bool
-	// GetAcceptedMode returns AcceptedMode (virtual field)
-	GetAcceptedMode() BACnetLifeSafetyMode
-	// GetAcceptedModeProprietary returns AcceptedModeProprietary (virtual field)
-	GetAcceptedModeProprietary() uint16
-	// GetLengthInBytes returns the length in bytes
-	GetLengthInBytes() uint16
-	// GetLengthInBits returns the length in bits
-	GetLengthInBits() uint16
-	// Serialize serializes this type
-	Serialize(writeBuffer utils.WriteBuffer) error
-}
-
-///////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////
-/////////////////////// Accessors for property fields.
-///////////////////////
-
-func (m *BACnetConstructedDataAcceptedModesEntry) GetRawData() *BACnetApplicationTagEnumerated {
-	return m.RawData
-}
-
-///////////////////////
-///////////////////////
-///////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////
-/////////////////////// Accessors for virtual fields.
-///////////////////////
-
-func (m *BACnetConstructedDataAcceptedModesEntry) GetIsAcceptedModeProprietary() bool {
-	return bool(bool((m.GetRawData().GetActualValue()) > (255)))
-}
-
-func (m *BACnetConstructedDataAcceptedModesEntry) GetAcceptedMode() BACnetLifeSafetyMode {
-	return BACnetLifeSafetyMode(MapBACnetLifeSafetyMode(m.GetRawData(), m.GetIsAcceptedModeProprietary()))
-}
-
-func (m *BACnetConstructedDataAcceptedModesEntry) GetAcceptedModeProprietary() uint16 {
-	return uint16(utils.InlineIf(m.GetIsAcceptedModeProprietary(), func() interface{} { return uint16(m.GetRawData().GetActualValue()) }, func() interface{} { return uint16(uint16(0)) }).(uint16))
-}
-
-///////////////////////
-///////////////////////
-///////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////
-
-// NewBACnetConstructedDataAcceptedModesEntry factory function for BACnetConstructedDataAcceptedModesEntry
-func NewBACnetConstructedDataAcceptedModesEntry(rawData *BACnetApplicationTagEnumerated) *BACnetConstructedDataAcceptedModesEntry {
-	return &BACnetConstructedDataAcceptedModesEntry{RawData: rawData}
-}
-
-func CastBACnetConstructedDataAcceptedModesEntry(structType interface{}) *BACnetConstructedDataAcceptedModesEntry {
-	if casted, ok := structType.(BACnetConstructedDataAcceptedModesEntry); ok {
-		return &casted
-	}
-	if casted, ok := structType.(*BACnetConstructedDataAcceptedModesEntry); ok {
-		return casted
-	}
-	return nil
-}
-
-func (m *BACnetConstructedDataAcceptedModesEntry) GetTypeName() string {
-	return "BACnetConstructedDataAcceptedModesEntry"
-}
-
-func (m *BACnetConstructedDataAcceptedModesEntry) GetLengthInBits() uint16 {
-	return m.GetLengthInBitsConditional(false)
-}
-
-func (m *BACnetConstructedDataAcceptedModesEntry) GetLengthInBitsConditional(lastItem bool) uint16 {
-	lengthInBits := uint16(0)
-
-	// Simple field (rawData)
-	lengthInBits += m.RawData.GetLengthInBits()
-
-	// A virtual field doesn't have any in- or output.
-
-	// A virtual field doesn't have any in- or output.
-
-	// A virtual field doesn't have any in- or output.
-
-	return lengthInBits
-}
-
-func (m *BACnetConstructedDataAcceptedModesEntry) GetLengthInBytes() uint16 {
-	return m.GetLengthInBits() / 8
-}
-
-func BACnetConstructedDataAcceptedModesEntryParse(readBuffer utils.ReadBuffer) (*BACnetConstructedDataAcceptedModesEntry, error) {
-	positionAware := readBuffer
-	_ = positionAware
-	if pullErr := readBuffer.PullContext("BACnetConstructedDataAcceptedModesEntry"); pullErr != nil {
-		return nil, pullErr
-	}
-	currentPos := positionAware.GetPos()
-	_ = currentPos
-
-	// Simple Field (rawData)
-	if pullErr := readBuffer.PullContext("rawData"); pullErr != nil {
-		return nil, pullErr
-	}
-	_rawData, _rawDataErr := BACnetApplicationTagParse(readBuffer)
-	if _rawDataErr != nil {
-		return nil, errors.Wrap(_rawDataErr, "Error parsing 'rawData' field")
-	}
-	rawData := CastBACnetApplicationTagEnumerated(_rawData)
-	if closeErr := readBuffer.CloseContext("rawData"); closeErr != nil {
-		return nil, closeErr
-	}
-
-	// Virtual field
-	_isAcceptedModeProprietary := bool((rawData.GetActualValue()) > (255))
-	isAcceptedModeProprietary := bool(_isAcceptedModeProprietary)
-	_ = isAcceptedModeProprietary
-
-	// Virtual field
-	_acceptedMode := MapBACnetLifeSafetyMode(rawData, isAcceptedModeProprietary)
-	acceptedMode := BACnetLifeSafetyMode(_acceptedMode)
-	_ = acceptedMode
-
-	// Virtual field
-	_acceptedModeProprietary := utils.InlineIf(isAcceptedModeProprietary, func() interface{} { return uint16(rawData.GetActualValue()) }, func() interface{} { return uint16(uint16(0)) }).(uint16)
-	acceptedModeProprietary := uint16(_acceptedModeProprietary)
-	_ = acceptedModeProprietary
-
-	if closeErr := readBuffer.CloseContext("BACnetConstructedDataAcceptedModesEntry"); closeErr != nil {
-		return nil, closeErr
-	}
-
-	// Create the instance
-	return NewBACnetConstructedDataAcceptedModesEntry(rawData), nil
-}
-
-func (m *BACnetConstructedDataAcceptedModesEntry) Serialize(writeBuffer utils.WriteBuffer) error {
-	positionAware := writeBuffer
-	_ = positionAware
-	if pushErr := writeBuffer.PushContext("BACnetConstructedDataAcceptedModesEntry"); pushErr != nil {
-		return pushErr
-	}
-
-	// Simple Field (rawData)
-	if pushErr := writeBuffer.PushContext("rawData"); pushErr != nil {
-		return pushErr
-	}
-	_rawDataErr := m.RawData.Serialize(writeBuffer)
-	if popErr := writeBuffer.PopContext("rawData"); popErr != nil {
-		return popErr
-	}
-	if _rawDataErr != nil {
-		return errors.Wrap(_rawDataErr, "Error serializing 'rawData' field")
-	}
-	// Virtual field
-	if _isAcceptedModeProprietaryErr := writeBuffer.WriteVirtual("isAcceptedModeProprietary", m.GetIsAcceptedModeProprietary()); _isAcceptedModeProprietaryErr != nil {
-		return errors.Wrap(_isAcceptedModeProprietaryErr, "Error serializing 'isAcceptedModeProprietary' field")
-	}
-	// Virtual field
-	if _acceptedModeErr := writeBuffer.WriteVirtual("acceptedMode", m.GetAcceptedMode()); _acceptedModeErr != nil {
-		return errors.Wrap(_acceptedModeErr, "Error serializing 'acceptedMode' field")
-	}
-	// Virtual field
-	if _acceptedModeProprietaryErr := writeBuffer.WriteVirtual("acceptedModeProprietary", m.GetAcceptedModeProprietary()); _acceptedModeProprietaryErr != nil {
-		return errors.Wrap(_acceptedModeProprietaryErr, "Error serializing 'acceptedModeProprietary' field")
-	}
-
-	if popErr := writeBuffer.PopContext("BACnetConstructedDataAcceptedModesEntry"); popErr != nil {
-		return popErr
-	}
-	return nil
-}
-
-func (m *BACnetConstructedDataAcceptedModesEntry) String() string {
-	if m == nil {
-		return "<nil>"
-	}
-	buffer := utils.NewBoxedWriteBufferWithOptions(true, true)
-	if err := m.Serialize(buffer); err != nil {
-		return err.Error()
-	}
-	return buffer.GetBox().String()
-}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataAction.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataAction.go
index 335ca12ac9..2681f213a6 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataAction.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataAction.go
@@ -32,8 +32,7 @@ type BACnetConstructedDataAction struct {
 	ActionLists []*BACnetActionList
 
 	// Arguments.
-	TagNumber                  uint8
-	PropertyIdentifierArgument BACnetContextTagPropertyIdentifier
+	TagNumber uint8
 }
 
 // IBACnetConstructedDataAction is the corresponding interface of BACnetConstructedDataAction
@@ -58,6 +57,10 @@ func (m *BACnetConstructedDataAction) GetObjectType() BACnetObjectType {
 	return 0
 }
 
+func (m *BACnetConstructedDataAction) GetPropertyIdentifierArgument() BACnetPropertyIdentifier {
+	return BACnetPropertyIdentifier_ACTION
+}
+
 ///////////////////////
 ///////////////////////
 ///////////////////////////////////////////////////////////
@@ -87,10 +90,10 @@ func (m *BACnetConstructedDataAction) GetActionLists() []*BACnetActionList {
 ///////////////////////////////////////////////////////////
 
 // NewBACnetConstructedDataAction factory function for BACnetConstructedDataAction
-func NewBACnetConstructedDataAction(actionLists []*BACnetActionList, openingTag *BACnetOpeningTag, closingTag *BACnetClosingTag, tagNumber uint8, propertyIdentifierArgument BACnetContextTagPropertyIdentifier) *BACnetConstructedDataAction {
+func NewBACnetConstructedDataAction(actionLists []*BACnetActionList, openingTag *BACnetOpeningTag, closingTag *BACnetClosingTag, tagNumber uint8) *BACnetConstructedDataAction {
 	_result := &BACnetConstructedDataAction{
 		ActionLists:           actionLists,
-		BACnetConstructedData: NewBACnetConstructedData(openingTag, closingTag, tagNumber, propertyIdentifierArgument),
+		BACnetConstructedData: NewBACnetConstructedData(openingTag, closingTag, tagNumber),
 	}
 	_result.Child = _result
 	return _result
@@ -137,7 +140,7 @@ func (m *BACnetConstructedDataAction) GetLengthInBytes() uint16 {
 	return m.GetLengthInBits() / 8
 }
 
-func BACnetConstructedDataActionParse(readBuffer utils.ReadBuffer, tagNumber uint8, objectType BACnetObjectType, propertyIdentifierArgument *BACnetContextTagPropertyIdentifier) (*BACnetConstructedDataAction, error) {
+func BACnetConstructedDataActionParse(readBuffer utils.ReadBuffer, tagNumber uint8, objectType BACnetObjectType, propertyIdentifierArgument BACnetPropertyIdentifier) (*BACnetConstructedDataAction, error) {
 	positionAware := readBuffer
 	_ = positionAware
 	if pullErr := readBuffer.PullContext("BACnetConstructedDataAction"); pullErr != nil {
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataElement.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataElement.go
index 564fc27037..a6e1a33d95 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataElement.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataElement.go
@@ -35,8 +35,8 @@ type BACnetConstructedDataElement struct {
 	ConstructedData *BACnetConstructedData
 
 	// Arguments.
-	ObjectType         BACnetObjectType
-	PropertyIdentifier BACnetContextTagPropertyIdentifier
+	ObjectType                 BACnetObjectType
+	PropertyIdentifierArgument BACnetPropertyIdentifier
 }
 
 // IBACnetConstructedDataElement is the corresponding interface of BACnetConstructedDataElement
@@ -141,8 +141,8 @@ func (m *BACnetConstructedDataElement) GetIsContextTag() bool {
 ///////////////////////////////////////////////////////////
 
 // NewBACnetConstructedDataElement factory function for BACnetConstructedDataElement
-func NewBACnetConstructedDataElement(peekedTagHeader *BACnetTagHeader, applicationTag *BACnetApplicationTag, contextTag *BACnetContextTag, constructedData *BACnetConstructedData, objectType BACnetObjectType, propertyIdentifier BACnetContextTagPropertyIdentifier) *BACnetConstructedDataElement {
-	return &BACnetConstructedDataElement{PeekedTagHeader: peekedTagHeader, ApplicationTag: applicationTag, ContextTag: contextTag, ConstructedData: constructedData, ObjectType: objectType, PropertyIdentifier: propertyIdentifier}
+func NewBACnetConstructedDataElement(peekedTagHeader *BACnetTagHeader, applicationTag *BACnetApplicationTag, contextTag *BACnetContextTag, constructedData *BACnetConstructedData, objectType BACnetObjectType, propertyIdentifierArgument BACnetPropertyIdentifier) *BACnetConstructedDataElement {
+	return &BACnetConstructedDataElement{PeekedTagHeader: peekedTagHeader, ApplicationTag: applicationTag, ContextTag: contextTag, ConstructedData: constructedData, ObjectType: objectType, PropertyIdentifierArgument: propertyIdentifierArgument}
 }
 
 func CastBACnetConstructedDataElement(structType interface{}) *BACnetConstructedDataElement {
@@ -196,7 +196,7 @@ func (m *BACnetConstructedDataElement) GetLengthInBytes() uint16 {
 	return m.GetLengthInBits() / 8
 }
 
-func BACnetConstructedDataElementParse(readBuffer utils.ReadBuffer, objectType BACnetObjectType, propertyIdentifier *BACnetContextTagPropertyIdentifier) (*BACnetConstructedDataElement, error) {
+func BACnetConstructedDataElementParse(readBuffer utils.ReadBuffer, objectType BACnetObjectType, propertyIdentifierArgument BACnetPropertyIdentifier) (*BACnetConstructedDataElement, error) {
 	positionAware := readBuffer
 	_ = positionAware
 	if pullErr := readBuffer.PullContext("BACnetConstructedDataElement"); pullErr != nil {
@@ -266,7 +266,7 @@ func BACnetConstructedDataElementParse(readBuffer utils.ReadBuffer, objectType B
 		if pullErr := readBuffer.PullContext("contextTag"); pullErr != nil {
 			return nil, pullErr
 		}
-		_val, _err := BACnetContextTagParse(readBuffer, peekedTagNumber, GuessDataType(objectType, propertyIdentifier))
+		_val, _err := BACnetContextTagParse(readBuffer, peekedTagNumber, GuessDataType(objectType, propertyIdentifierArgument))
 		switch {
 		case errors.Is(_err, utils.ParseAssertError{}) || errors.Is(_err, io.EOF):
 			readBuffer.Reset(currentPos)
@@ -287,7 +287,7 @@ func BACnetConstructedDataElementParse(readBuffer utils.ReadBuffer, objectType B
 		if pullErr := readBuffer.PullContext("constructedData"); pullErr != nil {
 			return nil, pullErr
 		}
-		_val, _err := BACnetConstructedDataParse(readBuffer, peekedTagNumber, objectType, propertyIdentifier)
+		_val, _err := BACnetConstructedDataParse(readBuffer, peekedTagNumber, objectType, propertyIdentifierArgument)
 		switch {
 		case errors.Is(_err, utils.ParseAssertError{}) || errors.Is(_err, io.EOF):
 			readBuffer.Reset(currentPos)
@@ -311,7 +311,7 @@ func BACnetConstructedDataElementParse(readBuffer utils.ReadBuffer, objectType B
 	}
 
 	// Create the instance
-	return NewBACnetConstructedDataElement(peekedTagHeader, applicationTag, contextTag, constructedData, objectType, *propertyIdentifier), nil
+	return NewBACnetConstructedDataElement(peekedTagHeader, applicationTag, contextTag, constructedData, objectType, propertyIdentifierArgument), nil
 }
 
 func (m *BACnetConstructedDataElement) Serialize(writeBuffer utils.WriteBuffer) error {
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataEventTimestamps.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataEventTimestamps.go
index 890d2aeb2d..7ac147ff93 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataEventTimestamps.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataEventTimestamps.go
@@ -34,8 +34,7 @@ type BACnetConstructedDataEventTimestamps struct {
 	ToNormal    *BACnetTimeStamp
 
 	// Arguments.
-	TagNumber                  uint8
-	PropertyIdentifierArgument BACnetContextTagPropertyIdentifier
+	TagNumber uint8
 }
 
 // IBACnetConstructedDataEventTimestamps is the corresponding interface of BACnetConstructedDataEventTimestamps
@@ -64,6 +63,10 @@ func (m *BACnetConstructedDataEventTimestamps) GetObjectType() BACnetObjectType
 	return 0
 }
 
+func (m *BACnetConstructedDataEventTimestamps) GetPropertyIdentifierArgument() BACnetPropertyIdentifier {
+	return BACnetPropertyIdentifier_EVENT_TIME_STAMPS
+}
+
 ///////////////////////
 ///////////////////////
 ///////////////////////////////////////////////////////////
@@ -101,12 +104,12 @@ func (m *BACnetConstructedDataEventTimestamps) GetToNormal() *BACnetTimeStamp {
 ///////////////////////////////////////////////////////////
 
 // NewBACnetConstructedDataEventTimestamps factory function for BACnetConstructedDataEventTimestamps
-func NewBACnetConstructedDataEventTimestamps(toOffnormal *BACnetTimeStamp, toFault *BACnetTimeStamp, toNormal *BACnetTimeStamp, openingTag *BACnetOpeningTag, closingTag *BACnetClosingTag, tagNumber uint8, propertyIdentifierArgument BACnetContextTagPropertyIdentifier) *BACnetConstructedDataEventTimestamps {
+func NewBACnetConstructedDataEventTimestamps(toOffnormal *BACnetTimeStamp, toFault *BACnetTimeStamp, toNormal *BACnetTimeStamp, openingTag *BACnetOpeningTag, closingTag *BACnetClosingTag, tagNumber uint8) *BACnetConstructedDataEventTimestamps {
 	_result := &BACnetConstructedDataEventTimestamps{
 		ToOffnormal:           toOffnormal,
 		ToFault:               toFault,
 		ToNormal:              toNormal,
-		BACnetConstructedData: NewBACnetConstructedData(openingTag, closingTag, tagNumber, propertyIdentifierArgument),
+		BACnetConstructedData: NewBACnetConstructedData(openingTag, closingTag, tagNumber),
 	}
 	_result.Child = _result
 	return _result
@@ -155,7 +158,7 @@ func (m *BACnetConstructedDataEventTimestamps) GetLengthInBytes() uint16 {
 	return m.GetLengthInBits() / 8
 }
 
-func BACnetConstructedDataEventTimestampsParse(readBuffer utils.ReadBuffer, tagNumber uint8, objectType BACnetObjectType, propertyIdentifierArgument *BACnetContextTagPropertyIdentifier) (*BACnetConstructedDataEventTimestamps, error) {
+func BACnetConstructedDataEventTimestampsParse(readBuffer utils.ReadBuffer, tagNumber uint8, objectType BACnetObjectType, propertyIdentifierArgument BACnetPropertyIdentifier) (*BACnetConstructedDataEventTimestamps, error) {
 	positionAware := readBuffer
 	_ = positionAware
 	if pullErr := readBuffer.PullContext("BACnetConstructedDataEventTimestamps"); pullErr != nil {
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataLifeSafetyAlarmValues.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataLifeSafetyAlarmValues.go
index 9f7258070d..1e7c730f7c 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataLifeSafetyAlarmValues.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataLifeSafetyAlarmValues.go
@@ -29,18 +29,17 @@ import (
 // BACnetConstructedDataLifeSafetyAlarmValues is the data-structure of this message
 type BACnetConstructedDataLifeSafetyAlarmValues struct {
 	*BACnetConstructedData
-	AlarmValues []*BACnetConstructedDataLifeSafetyStateEntry
+	AlarmValues []*BACnetLifeSafetyStateTagged
 
 	// Arguments.
-	TagNumber                  uint8
-	PropertyIdentifierArgument BACnetContextTagPropertyIdentifier
+	TagNumber uint8
 }
 
 // IBACnetConstructedDataLifeSafetyAlarmValues is the corresponding interface of BACnetConstructedDataLifeSafetyAlarmValues
 type IBACnetConstructedDataLifeSafetyAlarmValues interface {
 	IBACnetConstructedData
 	// GetAlarmValues returns AlarmValues (property field)
-	GetAlarmValues() []*BACnetConstructedDataLifeSafetyStateEntry
+	GetAlarmValues() []*BACnetLifeSafetyStateTagged
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
@@ -58,6 +57,10 @@ func (m *BACnetConstructedDataLifeSafetyAlarmValues) GetObjectType() BACnetObjec
 	return 0
 }
 
+func (m *BACnetConstructedDataLifeSafetyAlarmValues) GetPropertyIdentifierArgument() BACnetPropertyIdentifier {
+	return BACnetPropertyIdentifier_LIFE_SAFETY_ALARM_VALUES
+}
+
 ///////////////////////
 ///////////////////////
 ///////////////////////////////////////////////////////////
@@ -77,7 +80,7 @@ func (m *BACnetConstructedDataLifeSafetyAlarmValues) GetParent() *BACnetConstruc
 /////////////////////// Accessors for property fields.
 ///////////////////////
 
-func (m *BACnetConstructedDataLifeSafetyAlarmValues) GetAlarmValues() []*BACnetConstructedDataLifeSafetyStateEntry {
+func (m *BACnetConstructedDataLifeSafetyAlarmValues) GetAlarmValues() []*BACnetLifeSafetyStateTagged {
 	return m.AlarmValues
 }
 
@@ -87,10 +90,10 @@ func (m *BACnetConstructedDataLifeSafetyAlarmValues) GetAlarmValues() []*BACnetC
 ///////////////////////////////////////////////////////////
 
 // NewBACnetConstructedDataLifeSafetyAlarmValues factory function for BACnetConstructedDataLifeSafetyAlarmValues
-func NewBACnetConstructedDataLifeSafetyAlarmValues(alarmValues []*BACnetConstructedDataLifeSafetyStateEntry, openingTag *BACnetOpeningTag, closingTag *BACnetClosingTag, tagNumber uint8, propertyIdentifierArgument BACnetContextTagPropertyIdentifier) *BACnetConstructedDataLifeSafetyAlarmValues {
+func NewBACnetConstructedDataLifeSafetyAlarmValues(alarmValues []*BACnetLifeSafetyStateTagged, openingTag *BACnetOpeningTag, closingTag *BACnetClosingTag, tagNumber uint8) *BACnetConstructedDataLifeSafetyAlarmValues {
 	_result := &BACnetConstructedDataLifeSafetyAlarmValues{
 		AlarmValues:           alarmValues,
-		BACnetConstructedData: NewBACnetConstructedData(openingTag, closingTag, tagNumber, propertyIdentifierArgument),
+		BACnetConstructedData: NewBACnetConstructedData(openingTag, closingTag, tagNumber),
 	}
 	_result.Child = _result
 	return _result
@@ -137,7 +140,7 @@ func (m *BACnetConstructedDataLifeSafetyAlarmValues) GetLengthInBytes() uint16 {
 	return m.GetLengthInBits() / 8
 }
 
-func BACnetConstructedDataLifeSafetyAlarmValuesParse(readBuffer utils.ReadBuffer, tagNumber uint8, objectType BACnetObjectType, propertyIdentifierArgument *BACnetContextTagPropertyIdentifier) (*BACnetConstructedDataLifeSafetyAlarmValues, error) {
+func BACnetConstructedDataLifeSafetyAlarmValuesParse(readBuffer utils.ReadBuffer, tagNumber uint8, objectType BACnetObjectType, propertyIdentifierArgument BACnetPropertyIdentifier) (*BACnetConstructedDataLifeSafetyAlarmValues, error) {
 	positionAware := readBuffer
 	_ = positionAware
 	if pullErr := readBuffer.PullContext("BACnetConstructedDataLifeSafetyAlarmValues"); pullErr != nil {
@@ -151,14 +154,14 @@ func BACnetConstructedDataLifeSafetyAlarmValuesParse(readBuffer utils.ReadBuffer
 		return nil, pullErr
 	}
 	// Terminated array
-	alarmValues := make([]*BACnetConstructedDataLifeSafetyStateEntry, 0)
+	alarmValues := make([]*BACnetLifeSafetyStateTagged, 0)
 	{
 		for !bool(IsBACnetConstructedDataClosingTag(readBuffer, false, tagNumber)) {
-			_item, _err := BACnetConstructedDataLifeSafetyStateEntryParse(readBuffer)
+			_item, _err := BACnetLifeSafetyStateTaggedParse(readBuffer, uint8(0), TagClass_APPLICATION_TAGS)
 			if _err != nil {
 				return nil, errors.Wrap(_err, "Error parsing 'alarmValues' field")
 			}
-			alarmValues = append(alarmValues, CastBACnetConstructedDataLifeSafetyStateEntry(_item))
+			alarmValues = append(alarmValues, CastBACnetLifeSafetyStateTagged(_item))
 
 		}
 	}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataLifeSafetyPointAlarmValues.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataLifeSafetyPointAlarmValues.go
index 81f3b9578b..5610da8ce2 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataLifeSafetyPointAlarmValues.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataLifeSafetyPointAlarmValues.go
@@ -29,18 +29,17 @@ import (
 // BACnetConstructedDataLifeSafetyPointAlarmValues is the data-structure of this message
 type BACnetConstructedDataLifeSafetyPointAlarmValues struct {
 	*BACnetConstructedData
-	AlarmValues []*BACnetConstructedDataLifeSafetyStateEntry
+	AlarmValues []*BACnetLifeSafetyStateTagged
 
 	// Arguments.
-	TagNumber                  uint8
-	PropertyIdentifierArgument BACnetContextTagPropertyIdentifier
+	TagNumber uint8
 }
 
 // IBACnetConstructedDataLifeSafetyPointAlarmValues is the corresponding interface of BACnetConstructedDataLifeSafetyPointAlarmValues
 type IBACnetConstructedDataLifeSafetyPointAlarmValues interface {
 	IBACnetConstructedData
 	// GetAlarmValues returns AlarmValues (property field)
-	GetAlarmValues() []*BACnetConstructedDataLifeSafetyStateEntry
+	GetAlarmValues() []*BACnetLifeSafetyStateTagged
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
@@ -58,6 +57,10 @@ func (m *BACnetConstructedDataLifeSafetyPointAlarmValues) GetObjectType() BACnet
 	return BACnetObjectType_LIFE_SAFETY_POINT
 }
 
+func (m *BACnetConstructedDataLifeSafetyPointAlarmValues) GetPropertyIdentifierArgument() BACnetPropertyIdentifier {
+	return BACnetPropertyIdentifier_ALARM_VALUES
+}
+
 ///////////////////////
 ///////////////////////
 ///////////////////////////////////////////////////////////
@@ -77,7 +80,7 @@ func (m *BACnetConstructedDataLifeSafetyPointAlarmValues) GetParent() *BACnetCon
 /////////////////////// Accessors for property fields.
 ///////////////////////
 
-func (m *BACnetConstructedDataLifeSafetyPointAlarmValues) GetAlarmValues() []*BACnetConstructedDataLifeSafetyStateEntry {
+func (m *BACnetConstructedDataLifeSafetyPointAlarmValues) GetAlarmValues() []*BACnetLifeSafetyStateTagged {
 	return m.AlarmValues
 }
 
@@ -87,10 +90,10 @@ func (m *BACnetConstructedDataLifeSafetyPointAlarmValues) GetAlarmValues() []*BA
 ///////////////////////////////////////////////////////////
 
 // NewBACnetConstructedDataLifeSafetyPointAlarmValues factory function for BACnetConstructedDataLifeSafetyPointAlarmValues
-func NewBACnetConstructedDataLifeSafetyPointAlarmValues(alarmValues []*BACnetConstructedDataLifeSafetyStateEntry, openingTag *BACnetOpeningTag, closingTag *BACnetClosingTag, tagNumber uint8, propertyIdentifierArgument BACnetContextTagPropertyIdentifier) *BACnetConstructedDataLifeSafetyPointAlarmValues {
+func NewBACnetConstructedDataLifeSafetyPointAlarmValues(alarmValues []*BACnetLifeSafetyStateTagged, openingTag *BACnetOpeningTag, closingTag *BACnetClosingTag, tagNumber uint8) *BACnetConstructedDataLifeSafetyPointAlarmValues {
 	_result := &BACnetConstructedDataLifeSafetyPointAlarmValues{
 		AlarmValues:           alarmValues,
-		BACnetConstructedData: NewBACnetConstructedData(openingTag, closingTag, tagNumber, propertyIdentifierArgument),
+		BACnetConstructedData: NewBACnetConstructedData(openingTag, closingTag, tagNumber),
 	}
 	_result.Child = _result
 	return _result
@@ -137,7 +140,7 @@ func (m *BACnetConstructedDataLifeSafetyPointAlarmValues) GetLengthInBytes() uin
 	return m.GetLengthInBits() / 8
 }
 
-func BACnetConstructedDataLifeSafetyPointAlarmValuesParse(readBuffer utils.ReadBuffer, tagNumber uint8, objectType BACnetObjectType, propertyIdentifierArgument *BACnetContextTagPropertyIdentifier) (*BACnetConstructedDataLifeSafetyPointAlarmValues, error) {
+func BACnetConstructedDataLifeSafetyPointAlarmValuesParse(readBuffer utils.ReadBuffer, tagNumber uint8, objectType BACnetObjectType, propertyIdentifierArgument BACnetPropertyIdentifier) (*BACnetConstructedDataLifeSafetyPointAlarmValues, error) {
 	positionAware := readBuffer
 	_ = positionAware
 	if pullErr := readBuffer.PullContext("BACnetConstructedDataLifeSafetyPointAlarmValues"); pullErr != nil {
@@ -151,14 +154,14 @@ func BACnetConstructedDataLifeSafetyPointAlarmValuesParse(readBuffer utils.ReadB
 		return nil, pullErr
 	}
 	// Terminated array
-	alarmValues := make([]*BACnetConstructedDataLifeSafetyStateEntry, 0)
+	alarmValues := make([]*BACnetLifeSafetyStateTagged, 0)
 	{
 		for !bool(IsBACnetConstructedDataClosingTag(readBuffer, false, tagNumber)) {
-			_item, _err := BACnetConstructedDataLifeSafetyStateEntryParse(readBuffer)
+			_item, _err := BACnetLifeSafetyStateTaggedParse(readBuffer, uint8(0), TagClass_APPLICATION_TAGS)
 			if _err != nil {
 				return nil, errors.Wrap(_err, "Error parsing 'alarmValues' field")
 			}
-			alarmValues = append(alarmValues, CastBACnetConstructedDataLifeSafetyStateEntry(_item))
+			alarmValues = append(alarmValues, CastBACnetLifeSafetyStateTagged(_item))
 
 		}
 	}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataLifeSafetyPointFaultValues.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataLifeSafetyPointFaultValues.go
index 909cecd5e9..0eddb79067 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataLifeSafetyPointFaultValues.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataLifeSafetyPointFaultValues.go
@@ -29,18 +29,17 @@ import (
 // BACnetConstructedDataLifeSafetyPointFaultValues is the data-structure of this message
 type BACnetConstructedDataLifeSafetyPointFaultValues struct {
 	*BACnetConstructedData
-	FaultValues []*BACnetConstructedDataLifeSafetyStateEntry
+	FaultValues []*BACnetLifeSafetyStateTagged
 
 	// Arguments.
-	TagNumber                  uint8
-	PropertyIdentifierArgument BACnetContextTagPropertyIdentifier
+	TagNumber uint8
 }
 
 // IBACnetConstructedDataLifeSafetyPointFaultValues is the corresponding interface of BACnetConstructedDataLifeSafetyPointFaultValues
 type IBACnetConstructedDataLifeSafetyPointFaultValues interface {
 	IBACnetConstructedData
 	// GetFaultValues returns FaultValues (property field)
-	GetFaultValues() []*BACnetConstructedDataLifeSafetyStateEntry
+	GetFaultValues() []*BACnetLifeSafetyStateTagged
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
@@ -58,6 +57,10 @@ func (m *BACnetConstructedDataLifeSafetyPointFaultValues) GetObjectType() BACnet
 	return BACnetObjectType_LIFE_SAFETY_POINT
 }
 
+func (m *BACnetConstructedDataLifeSafetyPointFaultValues) GetPropertyIdentifierArgument() BACnetPropertyIdentifier {
+	return BACnetPropertyIdentifier_FAULT_VALUES
+}
+
 ///////////////////////
 ///////////////////////
 ///////////////////////////////////////////////////////////
@@ -77,7 +80,7 @@ func (m *BACnetConstructedDataLifeSafetyPointFaultValues) GetParent() *BACnetCon
 /////////////////////// Accessors for property fields.
 ///////////////////////
 
-func (m *BACnetConstructedDataLifeSafetyPointFaultValues) GetFaultValues() []*BACnetConstructedDataLifeSafetyStateEntry {
+func (m *BACnetConstructedDataLifeSafetyPointFaultValues) GetFaultValues() []*BACnetLifeSafetyStateTagged {
 	return m.FaultValues
 }
 
@@ -87,10 +90,10 @@ func (m *BACnetConstructedDataLifeSafetyPointFaultValues) GetFaultValues() []*BA
 ///////////////////////////////////////////////////////////
 
 // NewBACnetConstructedDataLifeSafetyPointFaultValues factory function for BACnetConstructedDataLifeSafetyPointFaultValues
-func NewBACnetConstructedDataLifeSafetyPointFaultValues(faultValues []*BACnetConstructedDataLifeSafetyStateEntry, openingTag *BACnetOpeningTag, closingTag *BACnetClosingTag, tagNumber uint8, propertyIdentifierArgument BACnetContextTagPropertyIdentifier) *BACnetConstructedDataLifeSafetyPointFaultValues {
+func NewBACnetConstructedDataLifeSafetyPointFaultValues(faultValues []*BACnetLifeSafetyStateTagged, openingTag *BACnetOpeningTag, closingTag *BACnetClosingTag, tagNumber uint8) *BACnetConstructedDataLifeSafetyPointFaultValues {
 	_result := &BACnetConstructedDataLifeSafetyPointFaultValues{
 		FaultValues:           faultValues,
-		BACnetConstructedData: NewBACnetConstructedData(openingTag, closingTag, tagNumber, propertyIdentifierArgument),
+		BACnetConstructedData: NewBACnetConstructedData(openingTag, closingTag, tagNumber),
 	}
 	_result.Child = _result
 	return _result
@@ -137,7 +140,7 @@ func (m *BACnetConstructedDataLifeSafetyPointFaultValues) GetLengthInBytes() uin
 	return m.GetLengthInBits() / 8
 }
 
-func BACnetConstructedDataLifeSafetyPointFaultValuesParse(readBuffer utils.ReadBuffer, tagNumber uint8, objectType BACnetObjectType, propertyIdentifierArgument *BACnetContextTagPropertyIdentifier) (*BACnetConstructedDataLifeSafetyPointFaultValues, error) {
+func BACnetConstructedDataLifeSafetyPointFaultValuesParse(readBuffer utils.ReadBuffer, tagNumber uint8, objectType BACnetObjectType, propertyIdentifierArgument BACnetPropertyIdentifier) (*BACnetConstructedDataLifeSafetyPointFaultValues, error) {
 	positionAware := readBuffer
 	_ = positionAware
 	if pullErr := readBuffer.PullContext("BACnetConstructedDataLifeSafetyPointFaultValues"); pullErr != nil {
@@ -151,14 +154,14 @@ func BACnetConstructedDataLifeSafetyPointFaultValuesParse(readBuffer utils.ReadB
 		return nil, pullErr
 	}
 	// Terminated array
-	faultValues := make([]*BACnetConstructedDataLifeSafetyStateEntry, 0)
+	faultValues := make([]*BACnetLifeSafetyStateTagged, 0)
 	{
 		for !bool(IsBACnetConstructedDataClosingTag(readBuffer, false, tagNumber)) {
-			_item, _err := BACnetConstructedDataLifeSafetyStateEntryParse(readBuffer)
+			_item, _err := BACnetLifeSafetyStateTaggedParse(readBuffer, uint8(0), TagClass_APPLICATION_TAGS)
 			if _err != nil {
 				return nil, errors.Wrap(_err, "Error parsing 'faultValues' field")
 			}
-			faultValues = append(faultValues, CastBACnetConstructedDataLifeSafetyStateEntry(_item))
+			faultValues = append(faultValues, CastBACnetLifeSafetyStateTagged(_item))
 
 		}
 	}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataLifeSafetyStateEntry.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataLifeSafetyStateEntry.go
deleted file mode 100644
index 420bddb732..0000000000
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataLifeSafetyStateEntry.go
+++ /dev/null
@@ -1,220 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package model
-
-import (
-	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
-	"github.com/pkg/errors"
-)
-
-// Code generated by code-generation. DO NOT EDIT.
-
-// BACnetConstructedDataLifeSafetyStateEntry is the data-structure of this message
-type BACnetConstructedDataLifeSafetyStateEntry struct {
-	RawData *BACnetApplicationTagEnumerated
-}
-
-// IBACnetConstructedDataLifeSafetyStateEntry is the corresponding interface of BACnetConstructedDataLifeSafetyStateEntry
-type IBACnetConstructedDataLifeSafetyStateEntry interface {
-	// GetRawData returns RawData (property field)
-	GetRawData() *BACnetApplicationTagEnumerated
-	// GetIsLifeSafetyStateProprietary returns IsLifeSafetyStateProprietary (virtual field)
-	GetIsLifeSafetyStateProprietary() bool
-	// GetLifeSafetyState returns LifeSafetyState (virtual field)
-	GetLifeSafetyState() BACnetLifeSafetyState
-	// GetLifeSafetyStateProprietary returns LifeSafetyStateProprietary (virtual field)
-	GetLifeSafetyStateProprietary() uint16
-	// GetLengthInBytes returns the length in bytes
-	GetLengthInBytes() uint16
-	// GetLengthInBits returns the length in bits
-	GetLengthInBits() uint16
-	// Serialize serializes this type
-	Serialize(writeBuffer utils.WriteBuffer) error
-}
-
-///////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////
-/////////////////////// Accessors for property fields.
-///////////////////////
-
-func (m *BACnetConstructedDataLifeSafetyStateEntry) GetRawData() *BACnetApplicationTagEnumerated {
-	return m.RawData
-}
-
-///////////////////////
-///////////////////////
-///////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////
-/////////////////////// Accessors for virtual fields.
-///////////////////////
-
-func (m *BACnetConstructedDataLifeSafetyStateEntry) GetIsLifeSafetyStateProprietary() bool {
-	return bool(bool((m.GetRawData().GetActualValue()) > (255)))
-}
-
-func (m *BACnetConstructedDataLifeSafetyStateEntry) GetLifeSafetyState() BACnetLifeSafetyState {
-	return BACnetLifeSafetyState(MapBACnetLifeSafetyState(m.GetRawData(), m.GetIsLifeSafetyStateProprietary()))
-}
-
-func (m *BACnetConstructedDataLifeSafetyStateEntry) GetLifeSafetyStateProprietary() uint16 {
-	return uint16(utils.InlineIf(m.GetIsLifeSafetyStateProprietary(), func() interface{} { return uint16(m.GetRawData().GetActualValue()) }, func() interface{} { return uint16(uint16(0)) }).(uint16))
-}
-
-///////////////////////
-///////////////////////
-///////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////
-
-// NewBACnetConstructedDataLifeSafetyStateEntry factory function for BACnetConstructedDataLifeSafetyStateEntry
-func NewBACnetConstructedDataLifeSafetyStateEntry(rawData *BACnetApplicationTagEnumerated) *BACnetConstructedDataLifeSafetyStateEntry {
-	return &BACnetConstructedDataLifeSafetyStateEntry{RawData: rawData}
-}
-
-func CastBACnetConstructedDataLifeSafetyStateEntry(structType interface{}) *BACnetConstructedDataLifeSafetyStateEntry {
-	if casted, ok := structType.(BACnetConstructedDataLifeSafetyStateEntry); ok {
-		return &casted
-	}
-	if casted, ok := structType.(*BACnetConstructedDataLifeSafetyStateEntry); ok {
-		return casted
-	}
-	return nil
-}
-
-func (m *BACnetConstructedDataLifeSafetyStateEntry) GetTypeName() string {
-	return "BACnetConstructedDataLifeSafetyStateEntry"
-}
-
-func (m *BACnetConstructedDataLifeSafetyStateEntry) GetLengthInBits() uint16 {
-	return m.GetLengthInBitsConditional(false)
-}
-
-func (m *BACnetConstructedDataLifeSafetyStateEntry) GetLengthInBitsConditional(lastItem bool) uint16 {
-	lengthInBits := uint16(0)
-
-	// Simple field (rawData)
-	lengthInBits += m.RawData.GetLengthInBits()
-
-	// A virtual field doesn't have any in- or output.
-
-	// A virtual field doesn't have any in- or output.
-
-	// A virtual field doesn't have any in- or output.
-
-	return lengthInBits
-}
-
-func (m *BACnetConstructedDataLifeSafetyStateEntry) GetLengthInBytes() uint16 {
-	return m.GetLengthInBits() / 8
-}
-
-func BACnetConstructedDataLifeSafetyStateEntryParse(readBuffer utils.ReadBuffer) (*BACnetConstructedDataLifeSafetyStateEntry, error) {
-	positionAware := readBuffer
-	_ = positionAware
-	if pullErr := readBuffer.PullContext("BACnetConstructedDataLifeSafetyStateEntry"); pullErr != nil {
-		return nil, pullErr
-	}
-	currentPos := positionAware.GetPos()
-	_ = currentPos
-
-	// Simple Field (rawData)
-	if pullErr := readBuffer.PullContext("rawData"); pullErr != nil {
-		return nil, pullErr
-	}
-	_rawData, _rawDataErr := BACnetApplicationTagParse(readBuffer)
-	if _rawDataErr != nil {
-		return nil, errors.Wrap(_rawDataErr, "Error parsing 'rawData' field")
-	}
-	rawData := CastBACnetApplicationTagEnumerated(_rawData)
-	if closeErr := readBuffer.CloseContext("rawData"); closeErr != nil {
-		return nil, closeErr
-	}
-
-	// Virtual field
-	_isLifeSafetyStateProprietary := bool((rawData.GetActualValue()) > (255))
-	isLifeSafetyStateProprietary := bool(_isLifeSafetyStateProprietary)
-	_ = isLifeSafetyStateProprietary
-
-	// Virtual field
-	_lifeSafetyState := MapBACnetLifeSafetyState(rawData, isLifeSafetyStateProprietary)
-	lifeSafetyState := BACnetLifeSafetyState(_lifeSafetyState)
-	_ = lifeSafetyState
-
-	// Virtual field
-	_lifeSafetyStateProprietary := utils.InlineIf(isLifeSafetyStateProprietary, func() interface{} { return uint16(rawData.GetActualValue()) }, func() interface{} { return uint16(uint16(0)) }).(uint16)
-	lifeSafetyStateProprietary := uint16(_lifeSafetyStateProprietary)
-	_ = lifeSafetyStateProprietary
-
-	if closeErr := readBuffer.CloseContext("BACnetConstructedDataLifeSafetyStateEntry"); closeErr != nil {
-		return nil, closeErr
-	}
-
-	// Create the instance
-	return NewBACnetConstructedDataLifeSafetyStateEntry(rawData), nil
-}
-
-func (m *BACnetConstructedDataLifeSafetyStateEntry) Serialize(writeBuffer utils.WriteBuffer) error {
-	positionAware := writeBuffer
-	_ = positionAware
-	if pushErr := writeBuffer.PushContext("BACnetConstructedDataLifeSafetyStateEntry"); pushErr != nil {
-		return pushErr
-	}
-
-	// Simple Field (rawData)
-	if pushErr := writeBuffer.PushContext("rawData"); pushErr != nil {
-		return pushErr
-	}
-	_rawDataErr := m.RawData.Serialize(writeBuffer)
-	if popErr := writeBuffer.PopContext("rawData"); popErr != nil {
-		return popErr
-	}
-	if _rawDataErr != nil {
-		return errors.Wrap(_rawDataErr, "Error serializing 'rawData' field")
-	}
-	// Virtual field
-	if _isLifeSafetyStateProprietaryErr := writeBuffer.WriteVirtual("isLifeSafetyStateProprietary", m.GetIsLifeSafetyStateProprietary()); _isLifeSafetyStateProprietaryErr != nil {
-		return errors.Wrap(_isLifeSafetyStateProprietaryErr, "Error serializing 'isLifeSafetyStateProprietary' field")
-	}
-	// Virtual field
-	if _lifeSafetyStateErr := writeBuffer.WriteVirtual("lifeSafetyState", m.GetLifeSafetyState()); _lifeSafetyStateErr != nil {
-		return errors.Wrap(_lifeSafetyStateErr, "Error serializing 'lifeSafetyState' field")
-	}
-	// Virtual field
-	if _lifeSafetyStateProprietaryErr := writeBuffer.WriteVirtual("lifeSafetyStateProprietary", m.GetLifeSafetyStateProprietary()); _lifeSafetyStateProprietaryErr != nil {
-		return errors.Wrap(_lifeSafetyStateProprietaryErr, "Error serializing 'lifeSafetyStateProprietary' field")
-	}
-
-	if popErr := writeBuffer.PopContext("BACnetConstructedDataLifeSafetyStateEntry"); popErr != nil {
-		return popErr
-	}
-	return nil
-}
-
-func (m *BACnetConstructedDataLifeSafetyStateEntry) String() string {
-	if m == nil {
-		return "<nil>"
-	}
-	buffer := utils.NewBoxedWriteBufferWithOptions(true, true)
-	if err := m.Serialize(buffer); err != nil {
-		return err.Error()
-	}
-	return buffer.GetBox().String()
-}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataLifeSafetyZoneMemberOf.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataLifeSafetyZoneMemberOf.go
deleted file mode 100644
index 547abcb11c..0000000000
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataLifeSafetyZoneMemberOf.go
+++ /dev/null
@@ -1,223 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package model
-
-import (
-	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
-	"github.com/pkg/errors"
-)
-
-// Code generated by code-generation. DO NOT EDIT.
-
-// BACnetConstructedDataLifeSafetyZoneMemberOf is the data-structure of this message
-type BACnetConstructedDataLifeSafetyZoneMemberOf struct {
-	*BACnetConstructedData
-	Zones []*BACnetDeviceObjectReference
-
-	// Arguments.
-	TagNumber                  uint8
-	PropertyIdentifierArgument BACnetContextTagPropertyIdentifier
-}
-
-// IBACnetConstructedDataLifeSafetyZoneMemberOf is the corresponding interface of BACnetConstructedDataLifeSafetyZoneMemberOf
-type IBACnetConstructedDataLifeSafetyZoneMemberOf interface {
-	IBACnetConstructedData
-	// GetZones returns Zones (property field)
-	GetZones() []*BACnetDeviceObjectReference
-	// GetLengthInBytes returns the length in bytes
-	GetLengthInBytes() uint16
-	// GetLengthInBits returns the length in bits
-	GetLengthInBits() uint16
-	// Serialize serializes this type
-	Serialize(writeBuffer utils.WriteBuffer) error
-}
-
-///////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////
-/////////////////////// Accessors for discriminator values.
-///////////////////////
-
-func (m *BACnetConstructedDataLifeSafetyZoneMemberOf) GetObjectType() BACnetObjectType {
-	return BACnetObjectType_LIFE_SAFETY_ZONE
-}
-
-///////////////////////
-///////////////////////
-///////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////
-
-func (m *BACnetConstructedDataLifeSafetyZoneMemberOf) InitializeParent(parent *BACnetConstructedData, openingTag *BACnetOpeningTag, closingTag *BACnetClosingTag) {
-	m.BACnetConstructedData.OpeningTag = openingTag
-	m.BACnetConstructedData.ClosingTag = closingTag
-}
-
-func (m *BACnetConstructedDataLifeSafetyZoneMemberOf) GetParent() *BACnetConstructedData {
-	return m.BACnetConstructedData
-}
-
-///////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////
-/////////////////////// Accessors for property fields.
-///////////////////////
-
-func (m *BACnetConstructedDataLifeSafetyZoneMemberOf) GetZones() []*BACnetDeviceObjectReference {
-	return m.Zones
-}
-
-///////////////////////
-///////////////////////
-///////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////
-
-// NewBACnetConstructedDataLifeSafetyZoneMemberOf factory function for BACnetConstructedDataLifeSafetyZoneMemberOf
-func NewBACnetConstructedDataLifeSafetyZoneMemberOf(zones []*BACnetDeviceObjectReference, openingTag *BACnetOpeningTag, closingTag *BACnetClosingTag, tagNumber uint8, propertyIdentifierArgument BACnetContextTagPropertyIdentifier) *BACnetConstructedDataLifeSafetyZoneMemberOf {
-	_result := &BACnetConstructedDataLifeSafetyZoneMemberOf{
-		Zones:                 zones,
-		BACnetConstructedData: NewBACnetConstructedData(openingTag, closingTag, tagNumber, propertyIdentifierArgument),
-	}
-	_result.Child = _result
-	return _result
-}
-
-func CastBACnetConstructedDataLifeSafetyZoneMemberOf(structType interface{}) *BACnetConstructedDataLifeSafetyZoneMemberOf {
-	if casted, ok := structType.(BACnetConstructedDataLifeSafetyZoneMemberOf); ok {
-		return &casted
-	}
-	if casted, ok := structType.(*BACnetConstructedDataLifeSafetyZoneMemberOf); ok {
-		return casted
-	}
-	if casted, ok := structType.(BACnetConstructedData); ok {
-		return CastBACnetConstructedDataLifeSafetyZoneMemberOf(casted.Child)
-	}
-	if casted, ok := structType.(*BACnetConstructedData); ok {
-		return CastBACnetConstructedDataLifeSafetyZoneMemberOf(casted.Child)
-	}
-	return nil
-}
-
-func (m *BACnetConstructedDataLifeSafetyZoneMemberOf) GetTypeName() string {
-	return "BACnetConstructedDataLifeSafetyZoneMemberOf"
-}
-
-func (m *BACnetConstructedDataLifeSafetyZoneMemberOf) GetLengthInBits() uint16 {
-	return m.GetLengthInBitsConditional(false)
-}
-
-func (m *BACnetConstructedDataLifeSafetyZoneMemberOf) GetLengthInBitsConditional(lastItem bool) uint16 {
-	lengthInBits := uint16(m.GetParentLengthInBits())
-
-	// Array field
-	if len(m.Zones) > 0 {
-		for _, element := range m.Zones {
-			lengthInBits += element.GetLengthInBits()
-		}
-	}
-
-	return lengthInBits
-}
-
-func (m *BACnetConstructedDataLifeSafetyZoneMemberOf) GetLengthInBytes() uint16 {
-	return m.GetLengthInBits() / 8
-}
-
-func BACnetConstructedDataLifeSafetyZoneMemberOfParse(readBuffer utils.ReadBuffer, tagNumber uint8, objectType BACnetObjectType, propertyIdentifierArgument *BACnetContextTagPropertyIdentifier) (*BACnetConstructedDataLifeSafetyZoneMemberOf, error) {
-	positionAware := readBuffer
-	_ = positionAware
-	if pullErr := readBuffer.PullContext("BACnetConstructedDataLifeSafetyZoneMemberOf"); pullErr != nil {
-		return nil, pullErr
-	}
-	currentPos := positionAware.GetPos()
-	_ = currentPos
-
-	// Array field (zones)
-	if pullErr := readBuffer.PullContext("zones", utils.WithRenderAsList(true)); pullErr != nil {
-		return nil, pullErr
-	}
-	// Terminated array
-	zones := make([]*BACnetDeviceObjectReference, 0)
-	{
-		for !bool(IsBACnetConstructedDataClosingTag(readBuffer, false, tagNumber)) {
-			_item, _err := BACnetDeviceObjectReferenceParse(readBuffer)
-			if _err != nil {
-				return nil, errors.Wrap(_err, "Error parsing 'zones' field")
-			}
-			zones = append(zones, CastBACnetDeviceObjectReference(_item))
-
-		}
-	}
-	if closeErr := readBuffer.CloseContext("zones", utils.WithRenderAsList(true)); closeErr != nil {
-		return nil, closeErr
-	}
-
-	if closeErr := readBuffer.CloseContext("BACnetConstructedDataLifeSafetyZoneMemberOf"); closeErr != nil {
-		return nil, closeErr
-	}
-
-	// Create a partially initialized instance
-	_child := &BACnetConstructedDataLifeSafetyZoneMemberOf{
-		Zones:                 zones,
-		BACnetConstructedData: &BACnetConstructedData{},
-	}
-	_child.BACnetConstructedData.Child = _child
-	return _child, nil
-}
-
-func (m *BACnetConstructedDataLifeSafetyZoneMemberOf) Serialize(writeBuffer utils.WriteBuffer) error {
-	positionAware := writeBuffer
-	_ = positionAware
-	ser := func() error {
-		if pushErr := writeBuffer.PushContext("BACnetConstructedDataLifeSafetyZoneMemberOf"); pushErr != nil {
-			return pushErr
-		}
-
-		// Array Field (zones)
-		if m.Zones != nil {
-			if pushErr := writeBuffer.PushContext("zones", utils.WithRenderAsList(true)); pushErr != nil {
-				return pushErr
-			}
-			for _, _element := range m.Zones {
-				_elementErr := _element.Serialize(writeBuffer)
-				if _elementErr != nil {
-					return errors.Wrap(_elementErr, "Error serializing 'zones' field")
-				}
-			}
-			if popErr := writeBuffer.PopContext("zones", utils.WithRenderAsList(true)); popErr != nil {
-				return popErr
-			}
-		}
-
-		if popErr := writeBuffer.PopContext("BACnetConstructedDataLifeSafetyZoneMemberOf"); popErr != nil {
-			return popErr
-		}
-		return nil
-	}
-	return m.SerializeParent(writeBuffer, m, ser)
-}
-
-func (m *BACnetConstructedDataLifeSafetyZoneMemberOf) String() string {
-	if m == nil {
-		return "<nil>"
-	}
-	buffer := utils.NewBoxedWriteBufferWithOptions(true, true)
-	if err := m.Serialize(buffer); err != nil {
-		return err.Error()
-	}
-	return buffer.GetBox().String()
-}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataLifeSafetyZoneMembers.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataLifeSafetyZoneMembers.go
deleted file mode 100644
index 05a7045d56..0000000000
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataLifeSafetyZoneMembers.go
+++ /dev/null
@@ -1,223 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package model
-
-import (
-	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
-	"github.com/pkg/errors"
-)
-
-// Code generated by code-generation. DO NOT EDIT.
-
-// BACnetConstructedDataLifeSafetyZoneMembers is the data-structure of this message
-type BACnetConstructedDataLifeSafetyZoneMembers struct {
-	*BACnetConstructedData
-	Members []*BACnetDeviceObjectReference
-
-	// Arguments.
-	TagNumber                  uint8
-	PropertyIdentifierArgument BACnetContextTagPropertyIdentifier
-}
-
-// IBACnetConstructedDataLifeSafetyZoneMembers is the corresponding interface of BACnetConstructedDataLifeSafetyZoneMembers
-type IBACnetConstructedDataLifeSafetyZoneMembers interface {
-	IBACnetConstructedData
-	// GetMembers returns Members (property field)
-	GetMembers() []*BACnetDeviceObjectReference
-	// GetLengthInBytes returns the length in bytes
-	GetLengthInBytes() uint16
-	// GetLengthInBits returns the length in bits
-	GetLengthInBits() uint16
-	// Serialize serializes this type
-	Serialize(writeBuffer utils.WriteBuffer) error
-}
-
-///////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////
-/////////////////////// Accessors for discriminator values.
-///////////////////////
-
-func (m *BACnetConstructedDataLifeSafetyZoneMembers) GetObjectType() BACnetObjectType {
-	return BACnetObjectType_LIFE_SAFETY_ZONE
-}
-
-///////////////////////
-///////////////////////
-///////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////
-
-func (m *BACnetConstructedDataLifeSafetyZoneMembers) InitializeParent(parent *BACnetConstructedData, openingTag *BACnetOpeningTag, closingTag *BACnetClosingTag) {
-	m.BACnetConstructedData.OpeningTag = openingTag
-	m.BACnetConstructedData.ClosingTag = closingTag
-}
-
-func (m *BACnetConstructedDataLifeSafetyZoneMembers) GetParent() *BACnetConstructedData {
-	return m.BACnetConstructedData
-}
-
-///////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////
-/////////////////////// Accessors for property fields.
-///////////////////////
-
-func (m *BACnetConstructedDataLifeSafetyZoneMembers) GetMembers() []*BACnetDeviceObjectReference {
-	return m.Members
-}
-
-///////////////////////
-///////////////////////
-///////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////
-
-// NewBACnetConstructedDataLifeSafetyZoneMembers factory function for BACnetConstructedDataLifeSafetyZoneMembers
-func NewBACnetConstructedDataLifeSafetyZoneMembers(members []*BACnetDeviceObjectReference, openingTag *BACnetOpeningTag, closingTag *BACnetClosingTag, tagNumber uint8, propertyIdentifierArgument BACnetContextTagPropertyIdentifier) *BACnetConstructedDataLifeSafetyZoneMembers {
-	_result := &BACnetConstructedDataLifeSafetyZoneMembers{
-		Members:               members,
-		BACnetConstructedData: NewBACnetConstructedData(openingTag, closingTag, tagNumber, propertyIdentifierArgument),
-	}
-	_result.Child = _result
-	return _result
-}
-
-func CastBACnetConstructedDataLifeSafetyZoneMembers(structType interface{}) *BACnetConstructedDataLifeSafetyZoneMembers {
-	if casted, ok := structType.(BACnetConstructedDataLifeSafetyZoneMembers); ok {
-		return &casted
-	}
-	if casted, ok := structType.(*BACnetConstructedDataLifeSafetyZoneMembers); ok {
-		return casted
-	}
-	if casted, ok := structType.(BACnetConstructedData); ok {
-		return CastBACnetConstructedDataLifeSafetyZoneMembers(casted.Child)
-	}
-	if casted, ok := structType.(*BACnetConstructedData); ok {
-		return CastBACnetConstructedDataLifeSafetyZoneMembers(casted.Child)
-	}
-	return nil
-}
-
-func (m *BACnetConstructedDataLifeSafetyZoneMembers) GetTypeName() string {
-	return "BACnetConstructedDataLifeSafetyZoneMembers"
-}
-
-func (m *BACnetConstructedDataLifeSafetyZoneMembers) GetLengthInBits() uint16 {
-	return m.GetLengthInBitsConditional(false)
-}
-
-func (m *BACnetConstructedDataLifeSafetyZoneMembers) GetLengthInBitsConditional(lastItem bool) uint16 {
-	lengthInBits := uint16(m.GetParentLengthInBits())
-
-	// Array field
-	if len(m.Members) > 0 {
-		for _, element := range m.Members {
-			lengthInBits += element.GetLengthInBits()
-		}
-	}
-
-	return lengthInBits
-}
-
-func (m *BACnetConstructedDataLifeSafetyZoneMembers) GetLengthInBytes() uint16 {
-	return m.GetLengthInBits() / 8
-}
-
-func BACnetConstructedDataLifeSafetyZoneMembersParse(readBuffer utils.ReadBuffer, tagNumber uint8, objectType BACnetObjectType, propertyIdentifierArgument *BACnetContextTagPropertyIdentifier) (*BACnetConstructedDataLifeSafetyZoneMembers, error) {
-	positionAware := readBuffer
-	_ = positionAware
-	if pullErr := readBuffer.PullContext("BACnetConstructedDataLifeSafetyZoneMembers"); pullErr != nil {
-		return nil, pullErr
-	}
-	currentPos := positionAware.GetPos()
-	_ = currentPos
-
-	// Array field (members)
-	if pullErr := readBuffer.PullContext("members", utils.WithRenderAsList(true)); pullErr != nil {
-		return nil, pullErr
-	}
-	// Terminated array
-	members := make([]*BACnetDeviceObjectReference, 0)
-	{
-		for !bool(IsBACnetConstructedDataClosingTag(readBuffer, false, tagNumber)) {
-			_item, _err := BACnetDeviceObjectReferenceParse(readBuffer)
-			if _err != nil {
-				return nil, errors.Wrap(_err, "Error parsing 'members' field")
-			}
-			members = append(members, CastBACnetDeviceObjectReference(_item))
-
-		}
-	}
-	if closeErr := readBuffer.CloseContext("members", utils.WithRenderAsList(true)); closeErr != nil {
-		return nil, closeErr
-	}
-
-	if closeErr := readBuffer.CloseContext("BACnetConstructedDataLifeSafetyZoneMembers"); closeErr != nil {
-		return nil, closeErr
-	}
-
-	// Create a partially initialized instance
-	_child := &BACnetConstructedDataLifeSafetyZoneMembers{
-		Members:               members,
-		BACnetConstructedData: &BACnetConstructedData{},
-	}
-	_child.BACnetConstructedData.Child = _child
-	return _child, nil
-}
-
-func (m *BACnetConstructedDataLifeSafetyZoneMembers) Serialize(writeBuffer utils.WriteBuffer) error {
-	positionAware := writeBuffer
-	_ = positionAware
-	ser := func() error {
-		if pushErr := writeBuffer.PushContext("BACnetConstructedDataLifeSafetyZoneMembers"); pushErr != nil {
-			return pushErr
-		}
-
-		// Array Field (members)
-		if m.Members != nil {
-			if pushErr := writeBuffer.PushContext("members", utils.WithRenderAsList(true)); pushErr != nil {
-				return pushErr
-			}
-			for _, _element := range m.Members {
-				_elementErr := _element.Serialize(writeBuffer)
-				if _elementErr != nil {
-					return errors.Wrap(_elementErr, "Error serializing 'members' field")
-				}
-			}
-			if popErr := writeBuffer.PopContext("members", utils.WithRenderAsList(true)); popErr != nil {
-				return popErr
-			}
-		}
-
-		if popErr := writeBuffer.PopContext("BACnetConstructedDataLifeSafetyZoneMembers"); popErr != nil {
-			return popErr
-		}
-		return nil
-	}
-	return m.SerializeParent(writeBuffer, m, ser)
-}
-
-func (m *BACnetConstructedDataLifeSafetyZoneMembers) String() string {
-	if m == nil {
-		return "<nil>"
-	}
-	buffer := utils.NewBoxedWriteBufferWithOptions(true, true)
-	if err := m.Serialize(buffer); err != nil {
-		return err.Error()
-	}
-	return buffer.GetBox().String()
-}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataListOfObjectPropertyReferences.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataListOfObjectPropertyReferences.go
index 2a11a88f6f..54af038368 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataListOfObjectPropertyReferences.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataListOfObjectPropertyReferences.go
@@ -32,8 +32,7 @@ type BACnetConstructedDataListOfObjectPropertyReferences struct {
 	References []*BACnetDeviceObjectPropertyReference
 
 	// Arguments.
-	TagNumber                  uint8
-	PropertyIdentifierArgument BACnetContextTagPropertyIdentifier
+	TagNumber uint8
 }
 
 // IBACnetConstructedDataListOfObjectPropertyReferences is the corresponding interface of BACnetConstructedDataListOfObjectPropertyReferences
@@ -58,6 +57,10 @@ func (m *BACnetConstructedDataListOfObjectPropertyReferences) GetObjectType() BA
 	return 0
 }
 
+func (m *BACnetConstructedDataListOfObjectPropertyReferences) GetPropertyIdentifierArgument() BACnetPropertyIdentifier {
+	return BACnetPropertyIdentifier_LIST_OF_OBJECT_PROPERTY_REFERENCES
+}
+
 ///////////////////////
 ///////////////////////
 ///////////////////////////////////////////////////////////
@@ -87,10 +90,10 @@ func (m *BACnetConstructedDataListOfObjectPropertyReferences) GetReferences() []
 ///////////////////////////////////////////////////////////
 
 // NewBACnetConstructedDataListOfObjectPropertyReferences factory function for BACnetConstructedDataListOfObjectPropertyReferences
-func NewBACnetConstructedDataListOfObjectPropertyReferences(references []*BACnetDeviceObjectPropertyReference, openingTag *BACnetOpeningTag, closingTag *BACnetClosingTag, tagNumber uint8, propertyIdentifierArgument BACnetContextTagPropertyIdentifier) *BACnetConstructedDataListOfObjectPropertyReferences {
+func NewBACnetConstructedDataListOfObjectPropertyReferences(references []*BACnetDeviceObjectPropertyReference, openingTag *BACnetOpeningTag, closingTag *BACnetClosingTag, tagNumber uint8) *BACnetConstructedDataListOfObjectPropertyReferences {
 	_result := &BACnetConstructedDataListOfObjectPropertyReferences{
 		References:            references,
-		BACnetConstructedData: NewBACnetConstructedData(openingTag, closingTag, tagNumber, propertyIdentifierArgument),
+		BACnetConstructedData: NewBACnetConstructedData(openingTag, closingTag, tagNumber),
 	}
 	_result.Child = _result
 	return _result
@@ -137,7 +140,7 @@ func (m *BACnetConstructedDataListOfObjectPropertyReferences) GetLengthInBytes()
 	return m.GetLengthInBits() / 8
 }
 
-func BACnetConstructedDataListOfObjectPropertyReferencesParse(readBuffer utils.ReadBuffer, tagNumber uint8, objectType BACnetObjectType, propertyIdentifierArgument *BACnetContextTagPropertyIdentifier) (*BACnetConstructedDataListOfObjectPropertyReferences, error) {
+func BACnetConstructedDataListOfObjectPropertyReferencesParse(readBuffer utils.ReadBuffer, tagNumber uint8, objectType BACnetObjectType, propertyIdentifierArgument BACnetPropertyIdentifier) (*BACnetConstructedDataListOfObjectPropertyReferences, error) {
 	positionAware := readBuffer
 	_ = positionAware
 	if pullErr := readBuffer.PullContext("BACnetConstructedDataListOfObjectPropertyReferences"); pullErr != nil {
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataLoopAction.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataLoopAction.go
index 5d775432ce..eb0d3c8b6c 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataLoopAction.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataLoopAction.go
@@ -33,8 +33,7 @@ type BACnetConstructedDataLoopAction struct {
 	RawData *BACnetApplicationTagEnumerated
 
 	// Arguments.
-	TagNumber                  uint8
-	PropertyIdentifierArgument BACnetContextTagPropertyIdentifier
+	TagNumber uint8
 }
 
 // IBACnetConstructedDataLoopAction is the corresponding interface of BACnetConstructedDataLoopAction
@@ -63,6 +62,10 @@ func (m *BACnetConstructedDataLoopAction) GetObjectType() BACnetObjectType {
 	return BACnetObjectType_LOOP
 }
 
+func (m *BACnetConstructedDataLoopAction) GetPropertyIdentifierArgument() BACnetPropertyIdentifier {
+	return BACnetPropertyIdentifier_ACTION
+}
+
 ///////////////////////
 ///////////////////////
 ///////////////////////////////////////////////////////////
@@ -113,10 +116,10 @@ func (m *BACnetConstructedDataLoopAction) GetIsReverse() bool {
 ///////////////////////////////////////////////////////////
 
 // NewBACnetConstructedDataLoopAction factory function for BACnetConstructedDataLoopAction
-func NewBACnetConstructedDataLoopAction(rawData *BACnetApplicationTagEnumerated, openingTag *BACnetOpeningTag, closingTag *BACnetClosingTag, tagNumber uint8, propertyIdentifierArgument BACnetContextTagPropertyIdentifier) *BACnetConstructedDataLoopAction {
+func NewBACnetConstructedDataLoopAction(rawData *BACnetApplicationTagEnumerated, openingTag *BACnetOpeningTag, closingTag *BACnetClosingTag, tagNumber uint8) *BACnetConstructedDataLoopAction {
 	_result := &BACnetConstructedDataLoopAction{
 		RawData:               rawData,
-		BACnetConstructedData: NewBACnetConstructedData(openingTag, closingTag, tagNumber, propertyIdentifierArgument),
+		BACnetConstructedData: NewBACnetConstructedData(openingTag, closingTag, tagNumber),
 	}
 	_result.Child = _result
 	return _result
@@ -165,7 +168,7 @@ func (m *BACnetConstructedDataLoopAction) GetLengthInBytes() uint16 {
 	return m.GetLengthInBits() / 8
 }
 
-func BACnetConstructedDataLoopActionParse(readBuffer utils.ReadBuffer, tagNumber uint8, objectType BACnetObjectType, propertyIdentifierArgument *BACnetContextTagPropertyIdentifier) (*BACnetConstructedDataLoopAction, error) {
+func BACnetConstructedDataLoopActionParse(readBuffer utils.ReadBuffer, tagNumber uint8, objectType BACnetObjectType, propertyIdentifierArgument BACnetPropertyIdentifier) (*BACnetConstructedDataLoopAction, error) {
 	positionAware := readBuffer
 	_ = positionAware
 	if pullErr := readBuffer.PullContext("BACnetConstructedDataLoopAction"); pullErr != nil {
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataMemberOf.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataMemberOf.go
index 29f3667ef3..bae335ce93 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataMemberOf.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataMemberOf.go
@@ -32,8 +32,7 @@ type BACnetConstructedDataMemberOf struct {
 	Zones []*BACnetDeviceObjectReference
 
 	// Arguments.
-	TagNumber                  uint8
-	PropertyIdentifierArgument BACnetContextTagPropertyIdentifier
+	TagNumber uint8
 }
 
 // IBACnetConstructedDataMemberOf is the corresponding interface of BACnetConstructedDataMemberOf
@@ -58,6 +57,10 @@ func (m *BACnetConstructedDataMemberOf) GetObjectType() BACnetObjectType {
 	return 0
 }
 
+func (m *BACnetConstructedDataMemberOf) GetPropertyIdentifierArgument() BACnetPropertyIdentifier {
+	return BACnetPropertyIdentifier_MEMBER_OF
+}
+
 ///////////////////////
 ///////////////////////
 ///////////////////////////////////////////////////////////
@@ -87,10 +90,10 @@ func (m *BACnetConstructedDataMemberOf) GetZones() []*BACnetDeviceObjectReferenc
 ///////////////////////////////////////////////////////////
 
 // NewBACnetConstructedDataMemberOf factory function for BACnetConstructedDataMemberOf
-func NewBACnetConstructedDataMemberOf(zones []*BACnetDeviceObjectReference, openingTag *BACnetOpeningTag, closingTag *BACnetClosingTag, tagNumber uint8, propertyIdentifierArgument BACnetContextTagPropertyIdentifier) *BACnetConstructedDataMemberOf {
+func NewBACnetConstructedDataMemberOf(zones []*BACnetDeviceObjectReference, openingTag *BACnetOpeningTag, closingTag *BACnetClosingTag, tagNumber uint8) *BACnetConstructedDataMemberOf {
 	_result := &BACnetConstructedDataMemberOf{
 		Zones:                 zones,
-		BACnetConstructedData: NewBACnetConstructedData(openingTag, closingTag, tagNumber, propertyIdentifierArgument),
+		BACnetConstructedData: NewBACnetConstructedData(openingTag, closingTag, tagNumber),
 	}
 	_result.Child = _result
 	return _result
@@ -137,7 +140,7 @@ func (m *BACnetConstructedDataMemberOf) GetLengthInBytes() uint16 {
 	return m.GetLengthInBits() / 8
 }
 
-func BACnetConstructedDataMemberOfParse(readBuffer utils.ReadBuffer, tagNumber uint8, objectType BACnetObjectType, propertyIdentifierArgument *BACnetContextTagPropertyIdentifier) (*BACnetConstructedDataMemberOf, error) {
+func BACnetConstructedDataMemberOfParse(readBuffer utils.ReadBuffer, tagNumber uint8, objectType BACnetObjectType, propertyIdentifierArgument BACnetPropertyIdentifier) (*BACnetConstructedDataMemberOf, error) {
 	positionAware := readBuffer
 	_ = positionAware
 	if pullErr := readBuffer.PullContext("BACnetConstructedDataMemberOf"); pullErr != nil {
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataReliability.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataReliability.go
index b65c3e4c2a..491ea449e3 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataReliability.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataReliability.go
@@ -32,8 +32,7 @@ type BACnetConstructedDataReliability struct {
 	Reliability *BACnetReliabilityTagged
 
 	// Arguments.
-	TagNumber                  uint8
-	PropertyIdentifierArgument BACnetContextTagPropertyIdentifier
+	TagNumber uint8
 }
 
 // IBACnetConstructedDataReliability is the corresponding interface of BACnetConstructedDataReliability
@@ -58,6 +57,10 @@ func (m *BACnetConstructedDataReliability) GetObjectType() BACnetObjectType {
 	return 0
 }
 
+func (m *BACnetConstructedDataReliability) GetPropertyIdentifierArgument() BACnetPropertyIdentifier {
+	return BACnetPropertyIdentifier_RELIABILITY
+}
+
 ///////////////////////
 ///////////////////////
 ///////////////////////////////////////////////////////////
@@ -87,10 +90,10 @@ func (m *BACnetConstructedDataReliability) GetReliability() *BACnetReliabilityTa
 ///////////////////////////////////////////////////////////
 
 // NewBACnetConstructedDataReliability factory function for BACnetConstructedDataReliability
-func NewBACnetConstructedDataReliability(reliability *BACnetReliabilityTagged, openingTag *BACnetOpeningTag, closingTag *BACnetClosingTag, tagNumber uint8, propertyIdentifierArgument BACnetContextTagPropertyIdentifier) *BACnetConstructedDataReliability {
+func NewBACnetConstructedDataReliability(reliability *BACnetReliabilityTagged, openingTag *BACnetOpeningTag, closingTag *BACnetClosingTag, tagNumber uint8) *BACnetConstructedDataReliability {
 	_result := &BACnetConstructedDataReliability{
 		Reliability:           reliability,
-		BACnetConstructedData: NewBACnetConstructedData(openingTag, closingTag, tagNumber, propertyIdentifierArgument),
+		BACnetConstructedData: NewBACnetConstructedData(openingTag, closingTag, tagNumber),
 	}
 	_result.Child = _result
 	return _result
@@ -133,7 +136,7 @@ func (m *BACnetConstructedDataReliability) GetLengthInBytes() uint16 {
 	return m.GetLengthInBits() / 8
 }
 
-func BACnetConstructedDataReliabilityParse(readBuffer utils.ReadBuffer, tagNumber uint8, objectType BACnetObjectType, propertyIdentifierArgument *BACnetContextTagPropertyIdentifier) (*BACnetConstructedDataReliability, error) {
+func BACnetConstructedDataReliabilityParse(readBuffer utils.ReadBuffer, tagNumber uint8, objectType BACnetObjectType, propertyIdentifierArgument BACnetPropertyIdentifier) (*BACnetConstructedDataReliability, error) {
 	positionAware := readBuffer
 	_ = positionAware
 	if pullErr := readBuffer.PullContext("BACnetConstructedDataReliability"); pullErr != nil {
@@ -146,7 +149,7 @@ func BACnetConstructedDataReliabilityParse(readBuffer utils.ReadBuffer, tagNumbe
 	if pullErr := readBuffer.PullContext("reliability"); pullErr != nil {
 		return nil, pullErr
 	}
-	_reliability, _reliabilityErr := BACnetReliabilityTaggedParse(readBuffer, TagClass(TagClass_APPLICATION_TAGS), uint8(uint8(0)))
+	_reliability, _reliabilityErr := BACnetReliabilityTaggedParse(readBuffer, uint8(uint8(0)), TagClass(TagClass_APPLICATION_TAGS))
 	if _reliabilityErr != nil {
 		return nil, errors.Wrap(_reliabilityErr, "Error parsing 'reliability' field")
 	}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataUnspecified.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataUnspecified.go
index c2e6633fde..051b79f517 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataUnspecified.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataUnspecified.go
@@ -32,8 +32,7 @@ type BACnetConstructedDataUnspecified struct {
 	Data []*BACnetConstructedDataElement
 
 	// Arguments.
-	TagNumber                  uint8
-	PropertyIdentifierArgument BACnetContextTagPropertyIdentifier
+	TagNumber uint8
 }
 
 // IBACnetConstructedDataUnspecified is the corresponding interface of BACnetConstructedDataUnspecified
@@ -58,6 +57,10 @@ func (m *BACnetConstructedDataUnspecified) GetObjectType() BACnetObjectType {
 	return 0
 }
 
+func (m *BACnetConstructedDataUnspecified) GetPropertyIdentifierArgument() BACnetPropertyIdentifier {
+	return 0
+}
+
 ///////////////////////
 ///////////////////////
 ///////////////////////////////////////////////////////////
@@ -87,10 +90,10 @@ func (m *BACnetConstructedDataUnspecified) GetData() []*BACnetConstructedDataEle
 ///////////////////////////////////////////////////////////
 
 // NewBACnetConstructedDataUnspecified factory function for BACnetConstructedDataUnspecified
-func NewBACnetConstructedDataUnspecified(data []*BACnetConstructedDataElement, openingTag *BACnetOpeningTag, closingTag *BACnetClosingTag, tagNumber uint8, propertyIdentifierArgument BACnetContextTagPropertyIdentifier) *BACnetConstructedDataUnspecified {
+func NewBACnetConstructedDataUnspecified(data []*BACnetConstructedDataElement, openingTag *BACnetOpeningTag, closingTag *BACnetClosingTag, tagNumber uint8) *BACnetConstructedDataUnspecified {
 	_result := &BACnetConstructedDataUnspecified{
 		Data:                  data,
-		BACnetConstructedData: NewBACnetConstructedData(openingTag, closingTag, tagNumber, propertyIdentifierArgument),
+		BACnetConstructedData: NewBACnetConstructedData(openingTag, closingTag, tagNumber),
 	}
 	_result.Child = _result
 	return _result
@@ -137,7 +140,7 @@ func (m *BACnetConstructedDataUnspecified) GetLengthInBytes() uint16 {
 	return m.GetLengthInBits() / 8
 }
 
-func BACnetConstructedDataUnspecifiedParse(readBuffer utils.ReadBuffer, tagNumber uint8, objectType BACnetObjectType, propertyIdentifierArgument *BACnetContextTagPropertyIdentifier) (*BACnetConstructedDataUnspecified, error) {
+func BACnetConstructedDataUnspecifiedParse(readBuffer utils.ReadBuffer, tagNumber uint8, objectType BACnetObjectType, propertyIdentifierArgument BACnetPropertyIdentifier) (*BACnetConstructedDataUnspecified, error) {
 	positionAware := readBuffer
 	_ = positionAware
 	if pullErr := readBuffer.PullContext("BACnetConstructedDataUnspecified"); pullErr != nil {
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataZoneMembers.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataZoneMembers.go
index 22d5565b20..4b7b6353a4 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataZoneMembers.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConstructedDataZoneMembers.go
@@ -32,8 +32,7 @@ type BACnetConstructedDataZoneMembers struct {
 	Members []*BACnetDeviceObjectReference
 
 	// Arguments.
-	TagNumber                  uint8
-	PropertyIdentifierArgument BACnetContextTagPropertyIdentifier
+	TagNumber uint8
 }
 
 // IBACnetConstructedDataZoneMembers is the corresponding interface of BACnetConstructedDataZoneMembers
@@ -58,6 +57,10 @@ func (m *BACnetConstructedDataZoneMembers) GetObjectType() BACnetObjectType {
 	return 0
 }
 
+func (m *BACnetConstructedDataZoneMembers) GetPropertyIdentifierArgument() BACnetPropertyIdentifier {
+	return BACnetPropertyIdentifier_ZONE_MEMBERS
+}
+
 ///////////////////////
 ///////////////////////
 ///////////////////////////////////////////////////////////
@@ -87,10 +90,10 @@ func (m *BACnetConstructedDataZoneMembers) GetMembers() []*BACnetDeviceObjectRef
 ///////////////////////////////////////////////////////////
 
 // NewBACnetConstructedDataZoneMembers factory function for BACnetConstructedDataZoneMembers
-func NewBACnetConstructedDataZoneMembers(members []*BACnetDeviceObjectReference, openingTag *BACnetOpeningTag, closingTag *BACnetClosingTag, tagNumber uint8, propertyIdentifierArgument BACnetContextTagPropertyIdentifier) *BACnetConstructedDataZoneMembers {
+func NewBACnetConstructedDataZoneMembers(members []*BACnetDeviceObjectReference, openingTag *BACnetOpeningTag, closingTag *BACnetClosingTag, tagNumber uint8) *BACnetConstructedDataZoneMembers {
 	_result := &BACnetConstructedDataZoneMembers{
 		Members:               members,
-		BACnetConstructedData: NewBACnetConstructedData(openingTag, closingTag, tagNumber, propertyIdentifierArgument),
+		BACnetConstructedData: NewBACnetConstructedData(openingTag, closingTag, tagNumber),
 	}
 	_result.Child = _result
 	return _result
@@ -137,7 +140,7 @@ func (m *BACnetConstructedDataZoneMembers) GetLengthInBytes() uint16 {
 	return m.GetLengthInBits() / 8
 }
 
-func BACnetConstructedDataZoneMembersParse(readBuffer utils.ReadBuffer, tagNumber uint8, objectType BACnetObjectType, propertyIdentifierArgument *BACnetContextTagPropertyIdentifier) (*BACnetConstructedDataZoneMembers, error) {
+func BACnetConstructedDataZoneMembersParse(readBuffer utils.ReadBuffer, tagNumber uint8, objectType BACnetObjectType, propertyIdentifierArgument BACnetPropertyIdentifier) (*BACnetConstructedDataZoneMembers, error) {
 	positionAware := readBuffer
 	_ = positionAware
 	if pullErr := readBuffer.PullContext("BACnetConstructedDataZoneMembers"); pullErr != nil {
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTag.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTag.go
index 803bbabbe7..aa5f9e4a5d 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTag.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTag.go
@@ -234,16 +234,6 @@ func BACnetContextTagParse(readBuffer utils.ReadBuffer, tagNumberArgument uint8,
 		_child, typeSwitchError = BACnetContextTagTimeParse(readBuffer, tagNumberArgument, dataType, isNotOpeningOrClosingTag)
 	case dataType == BACnetDataType_BACNET_OBJECT_IDENTIFIER: // BACnetContextTagObjectIdentifier
 		_child, typeSwitchError = BACnetContextTagObjectIdentifierParse(readBuffer, tagNumberArgument, dataType, isNotOpeningOrClosingTag)
-	case dataType == BACnetDataType_BACNET_PROPERTY_IDENTIFIER: // BACnetContextTagPropertyIdentifier
-		_child, typeSwitchError = BACnetContextTagPropertyIdentifierParse(readBuffer, tagNumberArgument, dataType, isNotOpeningOrClosingTag, actualLength)
-	case dataType == BACnetDataType_EVENT_TYPE: // BACnetContextTagEventType
-		_child, typeSwitchError = BACnetContextTagEventTypeParse(readBuffer, tagNumberArgument, dataType, isNotOpeningOrClosingTag, actualLength)
-	case dataType == BACnetDataType_EVENT_STATE: // BACnetContextTagEventState
-		_child, typeSwitchError = BACnetContextTagEventStateParse(readBuffer, tagNumberArgument, dataType, isNotOpeningOrClosingTag, actualLength)
-	case dataType == BACnetDataType_NOTIFY_TYPE: // BACnetContextTagNotifyType
-		_child, typeSwitchError = BACnetContextTagNotifyTypeParse(readBuffer, tagNumberArgument, dataType, isNotOpeningOrClosingTag, actualLength)
-	case dataType == BACnetDataType_BACNET_DEVICE_STATE: // BACnetContextTagDeviceState
-		_child, typeSwitchError = BACnetContextTagDeviceStateParse(readBuffer, tagNumberArgument, dataType, isNotOpeningOrClosingTag)
 	case dataType == BACnetDataType_OPENING_TAG: // BACnetOpeningTag
 		_child, typeSwitchError = BACnetOpeningTagParse(readBuffer, tagNumberArgument, dataType, actualLength)
 	case dataType == BACnetDataType_CLOSING_TAG: // BACnetClosingTag
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagDeviceState.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagDeviceState.go
deleted file mode 100644
index 041f19cde1..0000000000
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagDeviceState.go
+++ /dev/null
@@ -1,212 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package model
-
-import (
-	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
-	"github.com/pkg/errors"
-)
-
-// Code generated by code-generation. DO NOT EDIT.
-
-// BACnetContextTagDeviceState is the data-structure of this message
-type BACnetContextTagDeviceState struct {
-	*BACnetContextTag
-	State BACnetDeviceState
-
-	// Arguments.
-	TagNumberArgument        uint8
-	IsNotOpeningOrClosingTag bool
-}
-
-// IBACnetContextTagDeviceState is the corresponding interface of BACnetContextTagDeviceState
-type IBACnetContextTagDeviceState interface {
-	IBACnetContextTag
-	// GetState returns State (property field)
-	GetState() BACnetDeviceState
-	// GetLengthInBytes returns the length in bytes
-	GetLengthInBytes() uint16
-	// GetLengthInBits returns the length in bits
-	GetLengthInBits() uint16
-	// Serialize serializes this type
-	Serialize(writeBuffer utils.WriteBuffer) error
-}
-
-///////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////
-/////////////////////// Accessors for discriminator values.
-///////////////////////
-
-func (m *BACnetContextTagDeviceState) GetDataType() BACnetDataType {
-	return BACnetDataType_BACNET_DEVICE_STATE
-}
-
-///////////////////////
-///////////////////////
-///////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////
-
-func (m *BACnetContextTagDeviceState) InitializeParent(parent *BACnetContextTag, header *BACnetTagHeader) {
-	m.BACnetContextTag.Header = header
-}
-
-func (m *BACnetContextTagDeviceState) GetParent() *BACnetContextTag {
-	return m.BACnetContextTag
-}
-
-///////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////
-/////////////////////// Accessors for property fields.
-///////////////////////
-
-func (m *BACnetContextTagDeviceState) GetState() BACnetDeviceState {
-	return m.State
-}
-
-///////////////////////
-///////////////////////
-///////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////
-
-// NewBACnetContextTagDeviceState factory function for BACnetContextTagDeviceState
-func NewBACnetContextTagDeviceState(state BACnetDeviceState, header *BACnetTagHeader, tagNumberArgument uint8, isNotOpeningOrClosingTag bool) *BACnetContextTagDeviceState {
-	_result := &BACnetContextTagDeviceState{
-		State:            state,
-		BACnetContextTag: NewBACnetContextTag(header, tagNumberArgument),
-	}
-	_result.Child = _result
-	return _result
-}
-
-func CastBACnetContextTagDeviceState(structType interface{}) *BACnetContextTagDeviceState {
-	if casted, ok := structType.(BACnetContextTagDeviceState); ok {
-		return &casted
-	}
-	if casted, ok := structType.(*BACnetContextTagDeviceState); ok {
-		return casted
-	}
-	if casted, ok := structType.(BACnetContextTag); ok {
-		return CastBACnetContextTagDeviceState(casted.Child)
-	}
-	if casted, ok := structType.(*BACnetContextTag); ok {
-		return CastBACnetContextTagDeviceState(casted.Child)
-	}
-	return nil
-}
-
-func (m *BACnetContextTagDeviceState) GetTypeName() string {
-	return "BACnetContextTagDeviceState"
-}
-
-func (m *BACnetContextTagDeviceState) GetLengthInBits() uint16 {
-	return m.GetLengthInBitsConditional(false)
-}
-
-func (m *BACnetContextTagDeviceState) GetLengthInBitsConditional(lastItem bool) uint16 {
-	lengthInBits := uint16(m.GetParentLengthInBits())
-
-	// Simple field (state)
-	lengthInBits += 8
-
-	return lengthInBits
-}
-
-func (m *BACnetContextTagDeviceState) GetLengthInBytes() uint16 {
-	return m.GetLengthInBits() / 8
-}
-
-func BACnetContextTagDeviceStateParse(readBuffer utils.ReadBuffer, tagNumberArgument uint8, dataType BACnetDataType, isNotOpeningOrClosingTag bool) (*BACnetContextTagDeviceState, error) {
-	positionAware := readBuffer
-	_ = positionAware
-	if pullErr := readBuffer.PullContext("BACnetContextTagDeviceState"); pullErr != nil {
-		return nil, pullErr
-	}
-	currentPos := positionAware.GetPos()
-	_ = currentPos
-
-	// Validation
-	if !(isNotOpeningOrClosingTag) {
-		return nil, utils.ParseValidationError{"length 6 and 7 reserved for opening and closing tag"}
-	}
-
-	// Simple Field (state)
-	if pullErr := readBuffer.PullContext("state"); pullErr != nil {
-		return nil, pullErr
-	}
-	_state, _stateErr := BACnetDeviceStateParse(readBuffer)
-	if _stateErr != nil {
-		return nil, errors.Wrap(_stateErr, "Error parsing 'state' field")
-	}
-	state := _state
-	if closeErr := readBuffer.CloseContext("state"); closeErr != nil {
-		return nil, closeErr
-	}
-
-	if closeErr := readBuffer.CloseContext("BACnetContextTagDeviceState"); closeErr != nil {
-		return nil, closeErr
-	}
-
-	// Create a partially initialized instance
-	_child := &BACnetContextTagDeviceState{
-		State:            state,
-		BACnetContextTag: &BACnetContextTag{},
-	}
-	_child.BACnetContextTag.Child = _child
-	return _child, nil
-}
-
-func (m *BACnetContextTagDeviceState) Serialize(writeBuffer utils.WriteBuffer) error {
-	positionAware := writeBuffer
-	_ = positionAware
-	ser := func() error {
-		if pushErr := writeBuffer.PushContext("BACnetContextTagDeviceState"); pushErr != nil {
-			return pushErr
-		}
-
-		// Simple Field (state)
-		if pushErr := writeBuffer.PushContext("state"); pushErr != nil {
-			return pushErr
-		}
-		_stateErr := m.State.Serialize(writeBuffer)
-		if popErr := writeBuffer.PopContext("state"); popErr != nil {
-			return popErr
-		}
-		if _stateErr != nil {
-			return errors.Wrap(_stateErr, "Error serializing 'state' field")
-		}
-
-		if popErr := writeBuffer.PopContext("BACnetContextTagDeviceState"); popErr != nil {
-			return popErr
-		}
-		return nil
-	}
-	return m.SerializeParent(writeBuffer, m, ser)
-}
-
-func (m *BACnetContextTagDeviceState) String() string {
-	if m == nil {
-		return "<nil>"
-	}
-	buffer := utils.NewBoxedWriteBufferWithOptions(true, true)
-	if err := m.Serialize(buffer); err != nil {
-		return err.Error()
-	}
-	return buffer.GetBox().String()
-}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagEventState.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagEventState.go
deleted file mode 100644
index 8ac444e8a7..0000000000
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagEventState.go
+++ /dev/null
@@ -1,252 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package model
-
-import (
-	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
-	"github.com/pkg/errors"
-)
-
-// Code generated by code-generation. DO NOT EDIT.
-
-// BACnetContextTagEventState is the data-structure of this message
-type BACnetContextTagEventState struct {
-	*BACnetContextTag
-	EventState       BACnetEventState
-	ProprietaryValue uint32
-
-	// Arguments.
-	TagNumberArgument        uint8
-	IsNotOpeningOrClosingTag bool
-	ActualLength             uint32
-}
-
-// IBACnetContextTagEventState is the corresponding interface of BACnetContextTagEventState
-type IBACnetContextTagEventState interface {
-	IBACnetContextTag
-	// GetEventState returns EventState (property field)
-	GetEventState() BACnetEventState
-	// GetProprietaryValue returns ProprietaryValue (property field)
-	GetProprietaryValue() uint32
-	// GetIsProprietary returns IsProprietary (virtual field)
-	GetIsProprietary() bool
-	// GetLengthInBytes returns the length in bytes
-	GetLengthInBytes() uint16
-	// GetLengthInBits returns the length in bits
-	GetLengthInBits() uint16
-	// Serialize serializes this type
-	Serialize(writeBuffer utils.WriteBuffer) error
-}
-
-///////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////
-/////////////////////// Accessors for discriminator values.
-///////////////////////
-
-func (m *BACnetContextTagEventState) GetDataType() BACnetDataType {
-	return BACnetDataType_EVENT_STATE
-}
-
-///////////////////////
-///////////////////////
-///////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////
-
-func (m *BACnetContextTagEventState) InitializeParent(parent *BACnetContextTag, header *BACnetTagHeader) {
-	m.BACnetContextTag.Header = header
-}
-
-func (m *BACnetContextTagEventState) GetParent() *BACnetContextTag {
-	return m.BACnetContextTag
-}
-
-///////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////
-/////////////////////// Accessors for property fields.
-///////////////////////
-
-func (m *BACnetContextTagEventState) GetEventState() BACnetEventState {
-	return m.EventState
-}
-
-func (m *BACnetContextTagEventState) GetProprietaryValue() uint32 {
-	return m.ProprietaryValue
-}
-
-///////////////////////
-///////////////////////
-///////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////
-/////////////////////// Accessors for virtual fields.
-///////////////////////
-
-func (m *BACnetContextTagEventState) GetIsProprietary() bool {
-	return bool(bool((m.GetEventState()) == (BACnetEventState_VENDOR_PROPRIETARY_VALUE)))
-}
-
-///////////////////////
-///////////////////////
-///////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////
-
-// NewBACnetContextTagEventState factory function for BACnetContextTagEventState
-func NewBACnetContextTagEventState(eventState BACnetEventState, proprietaryValue uint32, header *BACnetTagHeader, tagNumberArgument uint8, isNotOpeningOrClosingTag bool, actualLength uint32) *BACnetContextTagEventState {
-	_result := &BACnetContextTagEventState{
-		EventState:       eventState,
-		ProprietaryValue: proprietaryValue,
-		BACnetContextTag: NewBACnetContextTag(header, tagNumberArgument),
-	}
-	_result.Child = _result
-	return _result
-}
-
-func CastBACnetContextTagEventState(structType interface{}) *BACnetContextTagEventState {
-	if casted, ok := structType.(BACnetContextTagEventState); ok {
-		return &casted
-	}
-	if casted, ok := structType.(*BACnetContextTagEventState); ok {
-		return casted
-	}
-	if casted, ok := structType.(BACnetContextTag); ok {
-		return CastBACnetContextTagEventState(casted.Child)
-	}
-	if casted, ok := structType.(*BACnetContextTag); ok {
-		return CastBACnetContextTagEventState(casted.Child)
-	}
-	return nil
-}
-
-func (m *BACnetContextTagEventState) GetTypeName() string {
-	return "BACnetContextTagEventState"
-}
-
-func (m *BACnetContextTagEventState) GetLengthInBits() uint16 {
-	return m.GetLengthInBitsConditional(false)
-}
-
-func (m *BACnetContextTagEventState) GetLengthInBitsConditional(lastItem bool) uint16 {
-	lengthInBits := uint16(m.GetParentLengthInBits())
-
-	// Manual Field (eventState)
-	lengthInBits += uint16(int32(m.GetActualLength()) * int32(int32(8)))
-
-	// Manual Field (proprietaryValue)
-	lengthInBits += uint16(int32(0))
-
-	// A virtual field doesn't have any in- or output.
-
-	return lengthInBits
-}
-
-func (m *BACnetContextTagEventState) GetLengthInBytes() uint16 {
-	return m.GetLengthInBits() / 8
-}
-
-func BACnetContextTagEventStateParse(readBuffer utils.ReadBuffer, tagNumberArgument uint8, dataType BACnetDataType, isNotOpeningOrClosingTag bool, actualLength uint32) (*BACnetContextTagEventState, error) {
-	positionAware := readBuffer
-	_ = positionAware
-	if pullErr := readBuffer.PullContext("BACnetContextTagEventState"); pullErr != nil {
-		return nil, pullErr
-	}
-	currentPos := positionAware.GetPos()
-	_ = currentPos
-
-	// Validation
-	if !(isNotOpeningOrClosingTag) {
-		return nil, utils.ParseValidationError{"length 6 and 7 reserved for opening and closing tag"}
-	}
-
-	// Manual Field (eventState)
-	_eventState, _eventStateErr := ReadEventState(readBuffer, actualLength)
-	if _eventStateErr != nil {
-		return nil, errors.Wrap(_eventStateErr, "Error parsing 'eventState' field")
-	}
-	eventState := _eventState.(BACnetEventState)
-
-	// Manual Field (proprietaryValue)
-	_proprietaryValue, _proprietaryValueErr := ReadProprietaryEventState(readBuffer, eventState, actualLength)
-	if _proprietaryValueErr != nil {
-		return nil, errors.Wrap(_proprietaryValueErr, "Error parsing 'proprietaryValue' field")
-	}
-	proprietaryValue := _proprietaryValue.(uint32)
-
-	// Virtual field
-	_isProprietary := bool((eventState) == (BACnetEventState_VENDOR_PROPRIETARY_VALUE))
-	isProprietary := bool(_isProprietary)
-	_ = isProprietary
-
-	if closeErr := readBuffer.CloseContext("BACnetContextTagEventState"); closeErr != nil {
-		return nil, closeErr
-	}
-
-	// Create a partially initialized instance
-	_child := &BACnetContextTagEventState{
-		EventState:       eventState,
-		ProprietaryValue: proprietaryValue,
-		BACnetContextTag: &BACnetContextTag{},
-	}
-	_child.BACnetContextTag.Child = _child
-	return _child, nil
-}
-
-func (m *BACnetContextTagEventState) Serialize(writeBuffer utils.WriteBuffer) error {
-	positionAware := writeBuffer
-	_ = positionAware
-	ser := func() error {
-		if pushErr := writeBuffer.PushContext("BACnetContextTagEventState"); pushErr != nil {
-			return pushErr
-		}
-
-		// Manual Field (eventState)
-		_eventStateErr := WriteEventState(writeBuffer, m.GetEventState())
-		if _eventStateErr != nil {
-			return errors.Wrap(_eventStateErr, "Error serializing 'eventState' field")
-		}
-
-		// Manual Field (proprietaryValue)
-		_proprietaryValueErr := WriteProprietaryEventState(writeBuffer, m.GetEventState(), m.GetProprietaryValue())
-		if _proprietaryValueErr != nil {
-			return errors.Wrap(_proprietaryValueErr, "Error serializing 'proprietaryValue' field")
-		}
-		// Virtual field
-		if _isProprietaryErr := writeBuffer.WriteVirtual("isProprietary", m.GetIsProprietary()); _isProprietaryErr != nil {
-			return errors.Wrap(_isProprietaryErr, "Error serializing 'isProprietary' field")
-		}
-
-		if popErr := writeBuffer.PopContext("BACnetContextTagEventState"); popErr != nil {
-			return popErr
-		}
-		return nil
-	}
-	return m.SerializeParent(writeBuffer, m, ser)
-}
-
-func (m *BACnetContextTagEventState) String() string {
-	if m == nil {
-		return "<nil>"
-	}
-	buffer := utils.NewBoxedWriteBufferWithOptions(true, true)
-	if err := m.Serialize(buffer); err != nil {
-		return err.Error()
-	}
-	return buffer.GetBox().String()
-}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagEventType.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagEventType.go
deleted file mode 100644
index 4b1f4af961..0000000000
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagEventType.go
+++ /dev/null
@@ -1,252 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package model
-
-import (
-	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
-	"github.com/pkg/errors"
-)
-
-// Code generated by code-generation. DO NOT EDIT.
-
-// BACnetContextTagEventType is the data-structure of this message
-type BACnetContextTagEventType struct {
-	*BACnetContextTag
-	EventType        BACnetEventType
-	ProprietaryValue uint32
-
-	// Arguments.
-	TagNumberArgument        uint8
-	IsNotOpeningOrClosingTag bool
-	ActualLength             uint32
-}
-
-// IBACnetContextTagEventType is the corresponding interface of BACnetContextTagEventType
-type IBACnetContextTagEventType interface {
-	IBACnetContextTag
-	// GetEventType returns EventType (property field)
-	GetEventType() BACnetEventType
-	// GetProprietaryValue returns ProprietaryValue (property field)
-	GetProprietaryValue() uint32
-	// GetIsProprietary returns IsProprietary (virtual field)
-	GetIsProprietary() bool
-	// GetLengthInBytes returns the length in bytes
-	GetLengthInBytes() uint16
-	// GetLengthInBits returns the length in bits
-	GetLengthInBits() uint16
-	// Serialize serializes this type
-	Serialize(writeBuffer utils.WriteBuffer) error
-}
-
-///////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////
-/////////////////////// Accessors for discriminator values.
-///////////////////////
-
-func (m *BACnetContextTagEventType) GetDataType() BACnetDataType {
-	return BACnetDataType_EVENT_TYPE
-}
-
-///////////////////////
-///////////////////////
-///////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////
-
-func (m *BACnetContextTagEventType) InitializeParent(parent *BACnetContextTag, header *BACnetTagHeader) {
-	m.BACnetContextTag.Header = header
-}
-
-func (m *BACnetContextTagEventType) GetParent() *BACnetContextTag {
-	return m.BACnetContextTag
-}
-
-///////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////
-/////////////////////// Accessors for property fields.
-///////////////////////
-
-func (m *BACnetContextTagEventType) GetEventType() BACnetEventType {
-	return m.EventType
-}
-
-func (m *BACnetContextTagEventType) GetProprietaryValue() uint32 {
-	return m.ProprietaryValue
-}
-
-///////////////////////
-///////////////////////
-///////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////
-/////////////////////// Accessors for virtual fields.
-///////////////////////
-
-func (m *BACnetContextTagEventType) GetIsProprietary() bool {
-	return bool(bool((m.GetEventType()) == (BACnetEventType_VENDOR_PROPRIETARY_VALUE)))
-}
-
-///////////////////////
-///////////////////////
-///////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////
-
-// NewBACnetContextTagEventType factory function for BACnetContextTagEventType
-func NewBACnetContextTagEventType(eventType BACnetEventType, proprietaryValue uint32, header *BACnetTagHeader, tagNumberArgument uint8, isNotOpeningOrClosingTag bool, actualLength uint32) *BACnetContextTagEventType {
-	_result := &BACnetContextTagEventType{
-		EventType:        eventType,
-		ProprietaryValue: proprietaryValue,
-		BACnetContextTag: NewBACnetContextTag(header, tagNumberArgument),
-	}
-	_result.Child = _result
-	return _result
-}
-
-func CastBACnetContextTagEventType(structType interface{}) *BACnetContextTagEventType {
-	if casted, ok := structType.(BACnetContextTagEventType); ok {
-		return &casted
-	}
-	if casted, ok := structType.(*BACnetContextTagEventType); ok {
-		return casted
-	}
-	if casted, ok := structType.(BACnetContextTag); ok {
-		return CastBACnetContextTagEventType(casted.Child)
-	}
-	if casted, ok := structType.(*BACnetContextTag); ok {
-		return CastBACnetContextTagEventType(casted.Child)
-	}
-	return nil
-}
-
-func (m *BACnetContextTagEventType) GetTypeName() string {
-	return "BACnetContextTagEventType"
-}
-
-func (m *BACnetContextTagEventType) GetLengthInBits() uint16 {
-	return m.GetLengthInBitsConditional(false)
-}
-
-func (m *BACnetContextTagEventType) GetLengthInBitsConditional(lastItem bool) uint16 {
-	lengthInBits := uint16(m.GetParentLengthInBits())
-
-	// Manual Field (eventType)
-	lengthInBits += uint16(int32(m.GetActualLength()) * int32(int32(8)))
-
-	// Manual Field (proprietaryValue)
-	lengthInBits += uint16(int32(0))
-
-	// A virtual field doesn't have any in- or output.
-
-	return lengthInBits
-}
-
-func (m *BACnetContextTagEventType) GetLengthInBytes() uint16 {
-	return m.GetLengthInBits() / 8
-}
-
-func BACnetContextTagEventTypeParse(readBuffer utils.ReadBuffer, tagNumberArgument uint8, dataType BACnetDataType, isNotOpeningOrClosingTag bool, actualLength uint32) (*BACnetContextTagEventType, error) {
-	positionAware := readBuffer
-	_ = positionAware
-	if pullErr := readBuffer.PullContext("BACnetContextTagEventType"); pullErr != nil {
-		return nil, pullErr
-	}
-	currentPos := positionAware.GetPos()
-	_ = currentPos
-
-	// Validation
-	if !(isNotOpeningOrClosingTag) {
-		return nil, utils.ParseValidationError{"length 6 and 7 reserved for opening and closing tag"}
-	}
-
-	// Manual Field (eventType)
-	_eventType, _eventTypeErr := ReadEventType(readBuffer, actualLength)
-	if _eventTypeErr != nil {
-		return nil, errors.Wrap(_eventTypeErr, "Error parsing 'eventType' field")
-	}
-	eventType := _eventType.(BACnetEventType)
-
-	// Manual Field (proprietaryValue)
-	_proprietaryValue, _proprietaryValueErr := ReadProprietaryEventType(readBuffer, eventType, actualLength)
-	if _proprietaryValueErr != nil {
-		return nil, errors.Wrap(_proprietaryValueErr, "Error parsing 'proprietaryValue' field")
-	}
-	proprietaryValue := _proprietaryValue.(uint32)
-
-	// Virtual field
-	_isProprietary := bool((eventType) == (BACnetEventType_VENDOR_PROPRIETARY_VALUE))
-	isProprietary := bool(_isProprietary)
-	_ = isProprietary
-
-	if closeErr := readBuffer.CloseContext("BACnetContextTagEventType"); closeErr != nil {
-		return nil, closeErr
-	}
-
-	// Create a partially initialized instance
-	_child := &BACnetContextTagEventType{
-		EventType:        eventType,
-		ProprietaryValue: proprietaryValue,
-		BACnetContextTag: &BACnetContextTag{},
-	}
-	_child.BACnetContextTag.Child = _child
-	return _child, nil
-}
-
-func (m *BACnetContextTagEventType) Serialize(writeBuffer utils.WriteBuffer) error {
-	positionAware := writeBuffer
-	_ = positionAware
-	ser := func() error {
-		if pushErr := writeBuffer.PushContext("BACnetContextTagEventType"); pushErr != nil {
-			return pushErr
-		}
-
-		// Manual Field (eventType)
-		_eventTypeErr := WriteEventType(writeBuffer, m.GetEventType())
-		if _eventTypeErr != nil {
-			return errors.Wrap(_eventTypeErr, "Error serializing 'eventType' field")
-		}
-
-		// Manual Field (proprietaryValue)
-		_proprietaryValueErr := WriteProprietaryEventType(writeBuffer, m.GetEventType(), m.GetProprietaryValue())
-		if _proprietaryValueErr != nil {
-			return errors.Wrap(_proprietaryValueErr, "Error serializing 'proprietaryValue' field")
-		}
-		// Virtual field
-		if _isProprietaryErr := writeBuffer.WriteVirtual("isProprietary", m.GetIsProprietary()); _isProprietaryErr != nil {
-			return errors.Wrap(_isProprietaryErr, "Error serializing 'isProprietary' field")
-		}
-
-		if popErr := writeBuffer.PopContext("BACnetContextTagEventType"); popErr != nil {
-			return popErr
-		}
-		return nil
-	}
-	return m.SerializeParent(writeBuffer, m, ser)
-}
-
-func (m *BACnetContextTagEventType) String() string {
-	if m == nil {
-		return "<nil>"
-	}
-	buffer := utils.NewBoxedWriteBufferWithOptions(true, true)
-	if err := m.Serialize(buffer); err != nil {
-		return err.Error()
-	}
-	return buffer.GetBox().String()
-}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagNotifyType.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagNotifyType.go
deleted file mode 100644
index e70ce69827..0000000000
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagNotifyType.go
+++ /dev/null
@@ -1,213 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package model
-
-import (
-	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
-	"github.com/pkg/errors"
-)
-
-// Code generated by code-generation. DO NOT EDIT.
-
-// BACnetContextTagNotifyType is the data-structure of this message
-type BACnetContextTagNotifyType struct {
-	*BACnetContextTag
-	Value BACnetNotifyType
-
-	// Arguments.
-	TagNumberArgument        uint8
-	IsNotOpeningOrClosingTag bool
-	ActualLength             uint32
-}
-
-// IBACnetContextTagNotifyType is the corresponding interface of BACnetContextTagNotifyType
-type IBACnetContextTagNotifyType interface {
-	IBACnetContextTag
-	// GetValue returns Value (property field)
-	GetValue() BACnetNotifyType
-	// GetLengthInBytes returns the length in bytes
-	GetLengthInBytes() uint16
-	// GetLengthInBits returns the length in bits
-	GetLengthInBits() uint16
-	// Serialize serializes this type
-	Serialize(writeBuffer utils.WriteBuffer) error
-}
-
-///////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////
-/////////////////////// Accessors for discriminator values.
-///////////////////////
-
-func (m *BACnetContextTagNotifyType) GetDataType() BACnetDataType {
-	return BACnetDataType_NOTIFY_TYPE
-}
-
-///////////////////////
-///////////////////////
-///////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////
-
-func (m *BACnetContextTagNotifyType) InitializeParent(parent *BACnetContextTag, header *BACnetTagHeader) {
-	m.BACnetContextTag.Header = header
-}
-
-func (m *BACnetContextTagNotifyType) GetParent() *BACnetContextTag {
-	return m.BACnetContextTag
-}
-
-///////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////
-/////////////////////// Accessors for property fields.
-///////////////////////
-
-func (m *BACnetContextTagNotifyType) GetValue() BACnetNotifyType {
-	return m.Value
-}
-
-///////////////////////
-///////////////////////
-///////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////
-
-// NewBACnetContextTagNotifyType factory function for BACnetContextTagNotifyType
-func NewBACnetContextTagNotifyType(value BACnetNotifyType, header *BACnetTagHeader, tagNumberArgument uint8, isNotOpeningOrClosingTag bool, actualLength uint32) *BACnetContextTagNotifyType {
-	_result := &BACnetContextTagNotifyType{
-		Value:            value,
-		BACnetContextTag: NewBACnetContextTag(header, tagNumberArgument),
-	}
-	_result.Child = _result
-	return _result
-}
-
-func CastBACnetContextTagNotifyType(structType interface{}) *BACnetContextTagNotifyType {
-	if casted, ok := structType.(BACnetContextTagNotifyType); ok {
-		return &casted
-	}
-	if casted, ok := structType.(*BACnetContextTagNotifyType); ok {
-		return casted
-	}
-	if casted, ok := structType.(BACnetContextTag); ok {
-		return CastBACnetContextTagNotifyType(casted.Child)
-	}
-	if casted, ok := structType.(*BACnetContextTag); ok {
-		return CastBACnetContextTagNotifyType(casted.Child)
-	}
-	return nil
-}
-
-func (m *BACnetContextTagNotifyType) GetTypeName() string {
-	return "BACnetContextTagNotifyType"
-}
-
-func (m *BACnetContextTagNotifyType) GetLengthInBits() uint16 {
-	return m.GetLengthInBitsConditional(false)
-}
-
-func (m *BACnetContextTagNotifyType) GetLengthInBitsConditional(lastItem bool) uint16 {
-	lengthInBits := uint16(m.GetParentLengthInBits())
-
-	// Simple field (value)
-	lengthInBits += 8
-
-	return lengthInBits
-}
-
-func (m *BACnetContextTagNotifyType) GetLengthInBytes() uint16 {
-	return m.GetLengthInBits() / 8
-}
-
-func BACnetContextTagNotifyTypeParse(readBuffer utils.ReadBuffer, tagNumberArgument uint8, dataType BACnetDataType, isNotOpeningOrClosingTag bool, actualLength uint32) (*BACnetContextTagNotifyType, error) {
-	positionAware := readBuffer
-	_ = positionAware
-	if pullErr := readBuffer.PullContext("BACnetContextTagNotifyType"); pullErr != nil {
-		return nil, pullErr
-	}
-	currentPos := positionAware.GetPos()
-	_ = currentPos
-
-	// Validation
-	if !(isNotOpeningOrClosingTag) {
-		return nil, utils.ParseValidationError{"length 6 and 7 reserved for opening and closing tag"}
-	}
-
-	// Simple Field (value)
-	if pullErr := readBuffer.PullContext("value"); pullErr != nil {
-		return nil, pullErr
-	}
-	_value, _valueErr := BACnetNotifyTypeParse(readBuffer)
-	if _valueErr != nil {
-		return nil, errors.Wrap(_valueErr, "Error parsing 'value' field")
-	}
-	value := _value
-	if closeErr := readBuffer.CloseContext("value"); closeErr != nil {
-		return nil, closeErr
-	}
-
-	if closeErr := readBuffer.CloseContext("BACnetContextTagNotifyType"); closeErr != nil {
-		return nil, closeErr
-	}
-
-	// Create a partially initialized instance
-	_child := &BACnetContextTagNotifyType{
-		Value:            value,
-		BACnetContextTag: &BACnetContextTag{},
-	}
-	_child.BACnetContextTag.Child = _child
-	return _child, nil
-}
-
-func (m *BACnetContextTagNotifyType) Serialize(writeBuffer utils.WriteBuffer) error {
-	positionAware := writeBuffer
-	_ = positionAware
-	ser := func() error {
-		if pushErr := writeBuffer.PushContext("BACnetContextTagNotifyType"); pushErr != nil {
-			return pushErr
-		}
-
-		// Simple Field (value)
-		if pushErr := writeBuffer.PushContext("value"); pushErr != nil {
-			return pushErr
-		}
-		_valueErr := m.Value.Serialize(writeBuffer)
-		if popErr := writeBuffer.PopContext("value"); popErr != nil {
-			return popErr
-		}
-		if _valueErr != nil {
-			return errors.Wrap(_valueErr, "Error serializing 'value' field")
-		}
-
-		if popErr := writeBuffer.PopContext("BACnetContextTagNotifyType"); popErr != nil {
-			return popErr
-		}
-		return nil
-	}
-	return m.SerializeParent(writeBuffer, m, ser)
-}
-
-func (m *BACnetContextTagNotifyType) String() string {
-	if m == nil {
-		return "<nil>"
-	}
-	buffer := utils.NewBoxedWriteBufferWithOptions(true, true)
-	if err := m.Serialize(buffer); err != nil {
-		return err.Error()
-	}
-	return buffer.GetBox().String()
-}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagPropertyIdentifier.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagPropertyIdentifier.go
deleted file mode 100644
index 9a04c80ad9..0000000000
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetContextTagPropertyIdentifier.go
+++ /dev/null
@@ -1,252 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package model
-
-import (
-	"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
-	"github.com/pkg/errors"
-)
-
-// Code generated by code-generation. DO NOT EDIT.
-
-// BACnetContextTagPropertyIdentifier is the data-structure of this message
-type BACnetContextTagPropertyIdentifier struct {
-	*BACnetContextTag
-	PropertyIdentifier BACnetPropertyIdentifier
-	ProprietaryValue   uint32
-
-	// Arguments.
-	TagNumberArgument        uint8
-	IsNotOpeningOrClosingTag bool
-	ActualLength             uint32
-}
-
-// IBACnetContextTagPropertyIdentifier is the corresponding interface of BACnetContextTagPropertyIdentifier
-type IBACnetContextTagPropertyIdentifier interface {
-	IBACnetContextTag
-	// GetPropertyIdentifier returns PropertyIdentifier (property field)
-	GetPropertyIdentifier() BACnetPropertyIdentifier
-	// GetProprietaryValue returns ProprietaryValue (property field)
-	GetProprietaryValue() uint32
-	// GetIsProprietary returns IsProprietary (virtual field)
-	GetIsProprietary() bool
-	// GetLengthInBytes returns the length in bytes
-	GetLengthInBytes() uint16
-	// GetLengthInBits returns the length in bits
-	GetLengthInBits() uint16
-	// Serialize serializes this type
-	Serialize(writeBuffer utils.WriteBuffer) error
-}
-
-///////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////
-/////////////////////// Accessors for discriminator values.
-///////////////////////
-
-func (m *BACnetContextTagPropertyIdentifier) GetDataType() BACnetDataType {
-	return BACnetDataType_BACNET_PROPERTY_IDENTIFIER
-}
-
-///////////////////////
-///////////////////////
-///////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////
-
-func (m *BACnetContextTagPropertyIdentifier) InitializeParent(parent *BACnetContextTag, header *BACnetTagHeader) {
-	m.BACnetContextTag.Header = header
-}
-
-func (m *BACnetContextTagPropertyIdentifier) GetParent() *BACnetContextTag {
-	return m.BACnetContextTag
-}
-
-///////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////
-/////////////////////// Accessors for property fields.
-///////////////////////
-
-func (m *BACnetContextTagPropertyIdentifier) GetPropertyIdentifier() BACnetPropertyIdentifier {
-	return m.PropertyIdentifier
-}
-
-func (m *BACnetContextTagPropertyIdentifier) GetProprietaryValue() uint32 {
-	return m.ProprietaryValue
-}
-
-///////////////////////
-///////////////////////
-///////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////
-/////////////////////// Accessors for virtual fields.
-///////////////////////
-
-func (m *BACnetContextTagPropertyIdentifier) GetIsProprietary() bool {
-	return bool(bool((m.GetPropertyIdentifier()) == (BACnetPropertyIdentifier_VENDOR_PROPRIETARY_VALUE)))
-}
-
-///////////////////////
-///////////////////////
-///////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////
-
-// NewBACnetContextTagPropertyIdentifier factory function for BACnetContextTagPropertyIdentifier
-func NewBACnetContextTagPropertyIdentifier(propertyIdentifier BACnetPropertyIdentifier, proprietaryValue uint32, header *BACnetTagHeader, tagNumberArgument uint8, isNotOpeningOrClosingTag bool, actualLength uint32) *BACnetContextTagPropertyIdentifier {
-	_result := &BACnetContextTagPropertyIdentifier{
-		PropertyIdentifier: propertyIdentifier,
-		ProprietaryValue:   proprietaryValue,
-		BACnetContextTag:   NewBACnetContextTag(header, tagNumberArgument),
-	}
-	_result.Child = _result
-	return _result
-}
-
-func CastBACnetContextTagPropertyIdentifier(structType interface{}) *BACnetContextTagPropertyIdentifier {
-	if casted, ok := structType.(BACnetContextTagPropertyIdentifier); ok {
-		return &casted
-	}
-	if casted, ok := structType.(*BACnetContextTagPropertyIdentifier); ok {
-		return casted
-	}
-	if casted, ok := structType.(BACnetContextTag); ok {
-		return CastBACnetContextTagPropertyIdentifier(casted.Child)
-	}
-	if casted, ok := structType.(*BACnetContextTag); ok {
-		return CastBACnetContextTagPropertyIdentifier(casted.Child)
-	}
-	return nil
-}
-
-func (m *BACnetContextTagPropertyIdentifier) GetTypeName() string {
-	return "BACnetContextTagPropertyIdentifier"
-}
-
-func (m *BACnetContextTagPropertyIdentifier) GetLengthInBits() uint16 {
-	return m.GetLengthInBitsConditional(false)
-}
-
-func (m *BACnetContextTagPropertyIdentifier) GetLengthInBitsConditional(lastItem bool) uint16 {
-	lengthInBits := uint16(m.GetParentLengthInBits())
-
-	// Manual Field (propertyIdentifier)
-	lengthInBits += uint16(int32(m.GetActualLength()) * int32(int32(8)))
-
-	// Manual Field (proprietaryValue)
-	lengthInBits += uint16(int32(0))
-
-	// A virtual field doesn't have any in- or output.
-
-	return lengthInBits
-}
-
-func (m *BACnetContextTagPropertyIdentifier) GetLengthInBytes() uint16 {
-	return m.GetLengthInBits() / 8
-}
-
-func BACnetContextTagPropertyIdentifierParse(readBuffer utils.ReadBuffer, tagNumberArgument uint8, dataType BACnetDataType, isNotOpeningOrClosingTag bool, actualLength uint32) (*BACnetContextTagPropertyIdentifier, error) {
-	positionAware := readBuffer
-	_ = positionAware
-	if pullErr := readBuffer.PullContext("BACnetContextTagPropertyIdentifier"); pullErr != nil {
-		return nil, pullErr
-	}
-	currentPos := positionAware.GetPos()
-	_ = currentPos
-
-	// Validation
-	if !(isNotOpeningOrClosingTag) {
-		return nil, utils.ParseAssertError{"length 6 and 7 reserved for opening and closing tag"}
-	}
-
-	// Manual Field (propertyIdentifier)
-	_propertyIdentifier, _propertyIdentifierErr := ReadPropertyIdentifier(readBuffer, actualLength)
-	if _propertyIdentifierErr != nil {
-		return nil, errors.Wrap(_propertyIdentifierErr, "Error parsing 'propertyIdentifier' field")
-	}
-	propertyIdentifier := _propertyIdentifier.(BACnetPropertyIdentifier)
-
-	// Manual Field (proprietaryValue)
-	_proprietaryValue, _proprietaryValueErr := ReadProprietaryPropertyIdentifier(readBuffer, propertyIdentifier, actualLength)
-	if _proprietaryValueErr != nil {
-		return nil, errors.Wrap(_proprietaryValueErr, "Error parsing 'proprietaryValue' field")
-	}
-	proprietaryValue := _proprietaryValue.(uint32)
-
-	// Virtual field
-	_isProprietary := bool((propertyIdentifier) == (BACnetPropertyIdentifier_VENDOR_PROPRIETARY_VALUE))
-	isProprietary := bool(_isProprietary)
-	_ = isProprietary
-
-	if closeErr := readBuffer.CloseContext("BACnetContextTagPropertyIdentifier"); closeErr != nil {
-		return nil, closeErr
-	}
-
-	// Create a partially initialized instance
-	_child := &BACnetContextTagPropertyIdentifier{
-		PropertyIdentifier: propertyIdentifier,
-		ProprietaryValue:   proprietaryValue,
-		BACnetContextTag:   &BACnetContextTag{},
-	}
-	_child.BACnetContextTag.Child = _child
-	return _child, nil
-}
-
-func (m *BACnetContextTagPropertyIdentifier) Serialize(writeBuffer utils.WriteBuffer) error {
-	positionAware := writeBuffer
-	_ = positionAware
-	ser := func() error {
-		if pushErr := writeBuffer.PushContext("BACnetContextTagPropertyIdentifier"); pushErr != nil {
-			return pushErr
-		}
-
-		// Manual Field (propertyIdentifier)
-		_propertyIdentifierErr := WritePropertyIdentifier(writeBuffer, m.GetPropertyIdentifier())
-		if _propertyIdentifierErr != nil {
-			return errors.Wrap(_propertyIdentifierErr, "Error serializing 'propertyIdentifier' field")
-		}
-
-		// Manual Field (proprietaryValue)
-		_proprietaryValueErr := WriteProprietaryPropertyIdentifier(writeBuffer, m.GetPropertyIdentifier(), m.GetProprietaryValue())
-		if _proprietaryValueErr != nil {
-			return errors.Wrap(_proprietaryValueErr, "Error serializing 'proprietaryValue' field")
-		}
-		// Virtual field
-		if _isProprietaryErr := writeBuffer.WriteVirtual("isProprietary", m.GetIsProprietary()); _isProprietaryErr != nil {
-			return errors.Wrap(_isProprietaryErr, "Error serializing 'isProprietary' field")
-		}
-
-		if popErr := writeBuffer.PopContext("BACnetContextTagPropertyIdentifier"); popErr != nil {
-			return popErr
-		}
-		return nil
-	}
-	return m.SerializeParent(writeBuffer, m, ser)
-}
-
-func (m *BACnetContextTagPropertyIdentifier) String() string {
-	if m == nil {
-		return "<nil>"
-	}
-	buffer := utils.NewBoxedWriteBufferWithOptions(true, true)
-	if err := m.Serialize(buffer); err != nil {
-		return err.Error()
-	}
-	return buffer.GetBox().String()
-}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetDataType.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetDataType.go
index 0beac8bb52..af0ffb9bea 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetDataType.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetDataType.go
@@ -26,6 +26,7 @@ import (
 
 // Code generated by code-generation. DO NOT EDIT.
 
+// BACnetDataType is an enum
 type BACnetDataType uint8
 
 type IBACnetDataType interface {
@@ -33,27 +34,22 @@ type IBACnetDataType interface {
 }
 
 const (
-	BACnetDataType_NULL                       BACnetDataType = 0
-	BACnetDataType_BOOLEAN                    BACnetDataType = 1
-	BACnetDataType_UNSIGNED_INTEGER           BACnetDataType = 2
-	BACnetDataType_SIGNED_INTEGER             BACnetDataType = 3
-	BACnetDataType_REAL                       BACnetDataType = 4
-	BACnetDataType_DOUBLE                     BACnetDataType = 5
-	BACnetDataType_OCTET_STRING               BACnetDataType = 6
-	BACnetDataType_CHARACTER_STRING           BACnetDataType = 7
-	BACnetDataType_BIT_STRING                 BACnetDataType = 8
-	BACnetDataType_ENUMERATED                 BACnetDataType = 9
-	BACnetDataType_DATE                       BACnetDataType = 10
-	BACnetDataType_TIME                       BACnetDataType = 11
-	BACnetDataType_BACNET_OBJECT_IDENTIFIER   BACnetDataType = 12
-	BACnetDataType_BACNET_PROPERTY_IDENTIFIER BACnetDataType = 16
-	BACnetDataType_BACNET_DEVICE_STATE        BACnetDataType = 17
-	BACnetDataType_OPENING_TAG                BACnetDataType = 20
-	BACnetDataType_CLOSING_TAG                BACnetDataType = 21
-	BACnetDataType_EVENT_TYPE                 BACnetDataType = 30
-	BACnetDataType_EVENT_STATE                BACnetDataType = 31
-	BACnetDataType_NOTIFY_TYPE                BACnetDataType = 32
-	BACnetDataType_UNKNOWN                    BACnetDataType = 33
+	BACnetDataType_NULL                     BACnetDataType = 0
+	BACnetDataType_BOOLEAN                  BACnetDataType = 1
+	BACnetDataType_UNSIGNED_INTEGER         BACnetDataType = 2
+	BACnetDataType_SIGNED_INTEGER           BACnetDataType = 3
+	BACnetDataType_REAL                     BACnetDataType = 4
+	BACnetDataType_DOUBLE                   BACnetDataType = 5
+	BACnetDataType_OCTET_STRING             BACnetDataType = 6
+	BACnetDataType_CHARACTER_STRING         BACnetDataType = 7
+	BACnetDataType_BIT_STRING               BACnetDataType = 8
+	BACnetDataType_ENUMERATED               BACnetDataType = 9
+	BACnetDataType_DATE                     BACnetDataType = 10
+	BACnetDataType_TIME                     BACnetDataType = 11
+	BACnetDataType_BACNET_OBJECT_IDENTIFIER BACnetDataType = 12
+	BACnetDataType_OPENING_TAG              BACnetDataType = 20
+	BACnetDataType_CLOSING_TAG              BACnetDataType = 21
+	BACnetDataType_UNKNOWN                  BACnetDataType = 33
 )
 
 var BACnetDataTypeValues []BACnetDataType
@@ -74,13 +70,8 @@ func init() {
 		BACnetDataType_DATE,
 		BACnetDataType_TIME,
 		BACnetDataType_BACNET_OBJECT_IDENTIFIER,
-		BACnetDataType_BACNET_PROPERTY_IDENTIFIER,
-		BACnetDataType_BACNET_DEVICE_STATE,
 		BACnetDataType_OPENING_TAG,
 		BACnetDataType_CLOSING_TAG,
-		BACnetDataType_EVENT_TYPE,
-		BACnetDataType_EVENT_STATE,
-		BACnetDataType_NOTIFY_TYPE,
 		BACnetDataType_UNKNOWN,
 	}
 }
@@ -97,10 +88,6 @@ func BACnetDataTypeByValue(value uint8) BACnetDataType {
 		return BACnetDataType_TIME
 	case 12:
 		return BACnetDataType_BACNET_OBJECT_IDENTIFIER
-	case 16:
-		return BACnetDataType_BACNET_PROPERTY_IDENTIFIER
-	case 17:
-		return BACnetDataType_BACNET_DEVICE_STATE
 	case 2:
 		return BACnetDataType_UNSIGNED_INTEGER
 	case 20:
@@ -109,12 +96,6 @@ func BACnetDataTypeByValue(value uint8) BACnetDataType {
 		return BACnetDataType_CLOSING_TAG
 	case 3:
 		return BACnetDataType_SIGNED_INTEGER
-	case 30:
-		return BACnetDataType_EVENT_TYPE
-	case 31:
-		return BACnetDataType_EVENT_STATE
-	case 32:
-		return BACnetDataType_NOTIFY_TYPE
 	case 33:
 		return BACnetDataType_UNKNOWN
 	case 4:
@@ -145,10 +126,6 @@ func BACnetDataTypeByName(value string) BACnetDataType {
 		return BACnetDataType_TIME
 	case "BACNET_OBJECT_IDENTIFIER":
 		return BACnetDataType_BACNET_OBJECT_IDENTIFIER
-	case "BACNET_PROPERTY_IDENTIFIER":
-		return BACnetDataType_BACNET_PROPERTY_IDENTIFIER
-	case "BACNET_DEVICE_STATE":
-		return BACnetDataType_BACNET_DEVICE_STATE
 	case "UNSIGNED_INTEGER":
 		return BACnetDataType_UNSIGNED_INTEGER
 	case "OPENING_TAG":
@@ -157,12 +134,6 @@ func BACnetDataTypeByName(value string) BACnetDataType {
 		return BACnetDataType_CLOSING_TAG
 	case "SIGNED_INTEGER":
 		return BACnetDataType_SIGNED_INTEGER
-	case "EVENT_TYPE":
-		return BACnetDataType_EVENT_TYPE
-	case "EVENT_STATE":
-		return BACnetDataType_EVENT_STATE
-	case "NOTIFY_TYPE":
-		return BACnetDataType_NOTIFY_TYPE
 	case "UNKNOWN":
 		return BACnetDataType_UNKNOWN
 	case "REAL":
@@ -232,10 +203,6 @@ func (e BACnetDataType) name() string {
 		return "TIME"
 	case BACnetDataType_BACNET_OBJECT_IDENTIFIER:
 		return "BACNET_OBJECT_IDENTIFIER"
-	case BACnetDataType_BACNET_PROPERTY_IDENTIFIER:
-		return "BACNET_PROPERTY_IDENTIFIER"
-	case BACnetDataType_BACNET_DEVICE_STATE:
-		return "BACNET_DEVICE_STATE"
 	case BACnetDataType_UNSIGNED_INTEGER:
 		return "UNSIGNED_INTEGER"
 	case BACnetDataType_OPENING_TAG:
@@ -244,12 +211,6 @@ func (e BACnetDataType) name() string {
 		return "CLOSING_TAG"
 	case BACnetDataType_SIGNED_INTEGER:
 		return "SIGNED_INTEGER"
-	case BACnetDataType_EVENT_TYPE:
-		return "EVENT_TYPE"
-	case BACnetDataType_EVENT_STATE:
-		return "EVENT_STATE"
-	case BACnetDataType_NOTIFY_TYPE:
-		return "NOTIFY_TYPE"
 	case BACnetDataType_UNKNOWN:
 		return "UNKNOWN"
 	case BACnetDataType_REAL:
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetDeviceObjectPropertyReference.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetDeviceObjectPropertyReference.go
index c28d0acd4b..62a6bf4b8c 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetDeviceObjectPropertyReference.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetDeviceObjectPropertyReference.go
@@ -30,7 +30,7 @@ import (
 // BACnetDeviceObjectPropertyReference is the data-structure of this message
 type BACnetDeviceObjectPropertyReference struct {
 	ObjectIdentifier   *BACnetContextTagObjectIdentifier
-	PropertyIdentifier *BACnetContextTagPropertyIdentifier
+	PropertyIdentifier *BACnetPropertyIdentifierTagged
 	ArrayIndex         *BACnetContextTagUnsignedInteger
 	DeviceIdentifier   *BACnetContextTagObjectIdentifier
 }
@@ -40,7 +40,7 @@ type IBACnetDeviceObjectPropertyReference interface {
 	// GetObjectIdentifier returns ObjectIdentifier (property field)
 	GetObjectIdentifier() *BACnetContextTagObjectIdentifier
 	// GetPropertyIdentifier returns PropertyIdentifier (property field)
-	GetPropertyIdentifier() *BACnetContextTagPropertyIdentifier
+	GetPropertyIdentifier() *BACnetPropertyIdentifierTagged
 	// GetArrayIndex returns ArrayIndex (property field)
 	GetArrayIndex() *BACnetContextTagUnsignedInteger
 	// GetDeviceIdentifier returns DeviceIdentifier (property field)
@@ -62,7 +62,7 @@ func (m *BACnetDeviceObjectPropertyReference) GetObjectIdentifier() *BACnetConte
 	return m.ObjectIdentifier
 }
 
-func (m *BACnetDeviceObjectPropertyReference) GetPropertyIdentifier() *BACnetContextTagPropertyIdentifier {
+func (m *BACnetDeviceObjectPropertyReference) GetPropertyIdentifier() *BACnetPropertyIdentifierTagged {
 	return m.PropertyIdentifier
 }
 
@@ -80,7 +80,7 @@ func (m *BACnetDeviceObjectPropertyReference) GetDeviceIdentifier() *BACnetConte
 ///////////////////////////////////////////////////////////
 
 // NewBACnetDeviceObjectPropertyReference factory function for BACnetDeviceObjectPropertyReference
-func NewBACnetDeviceObjectPropertyReference(objectIdentifier *BACnetContextTagObjectIdentifier, propertyIdentifier *BACnetContextTagPropertyIdentifier, arrayIndex *BACnetContextTagUnsignedInteger, deviceIdentifier *BACnetContextTagObjectIdentifier) *BACnetDeviceObjectPropertyReference {
+func NewBACnetDeviceObjectPropertyReference(objectIdentifier *BACnetContextTagObjectIdentifier, propertyIdentifier *BACnetPropertyIdentifierTagged, arrayIndex *BACnetContextTagUnsignedInteger, deviceIdentifier *BACnetContextTagObjectIdentifier) *BACnetDeviceObjectPropertyReference {
 	return &BACnetDeviceObjectPropertyReference{ObjectIdentifier: objectIdentifier, PropertyIdentifier: propertyIdentifier, ArrayIndex: arrayIndex, DeviceIdentifier: deviceIdentifier}
 }
 
@@ -154,11 +154,11 @@ func BACnetDeviceObjectPropertyReferenceParse(readBuffer utils.ReadBuffer) (*BAC
 	if pullErr := readBuffer.PullContext("propertyIdentifier"); pullErr != nil {
 		return nil, pullErr
 	}
-	_propertyIdentifier, _propertyIdentifierErr := BACnetContextTagParse(readBuffer, uint8(uint8(1)), BACnetDataType(BACnetDataType_BACNET_PROPERTY_IDENTIFIER))
+	_propertyIdentifier, _propertyIdentifierErr := BACnetPropertyIdentifierTaggedParse(readBuffer, uint8(uint8(1)), TagClass(TagClass_CONTEXT_SPECIFIC_TAGS))
 	if _propertyIdentifierErr != nil {
 		return nil, errors.Wrap(_propertyIdentifierErr, "Error parsing 'propertyIdentifier' field")
 	}
-	propertyIdentifier := CastBACnetContextTagPropertyIdentifier(_propertyIdentifier)
+	propertyIdentifier := CastBACnetPropertyIdentifierTagged(_propertyIdentifier)
 	if closeErr := readBuffer.CloseContext("propertyIdentifier"); closeErr != nil {
 		return nil, closeErr
 	}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetEventState.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetEventState.go
index 9a5e71908c..bd36a188b2 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetEventState.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetEventState.go
@@ -26,6 +26,7 @@ import (
 
 // Code generated by code-generation. DO NOT EDIT.
 
+// BACnetEventState is an enum
 type BACnetEventState uint16
 
 type IBACnetEventState interface {
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetReliabilityTagged.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetEventStateTagged.go
similarity index 68%
copy from plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetReliabilityTagged.go
copy to plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetEventStateTagged.go
index 5b7b38b553..7619293e02 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetReliabilityTagged.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetEventStateTagged.go
@@ -26,23 +26,23 @@ import (
 
 // Code generated by code-generation. DO NOT EDIT.
 
-// BACnetReliabilityTagged is the data-structure of this message
-type BACnetReliabilityTagged struct {
+// BACnetEventStateTagged is the data-structure of this message
+type BACnetEventStateTagged struct {
 	Header           *BACnetTagHeader
-	Value            BACnetReliability
+	Value            BACnetEventState
 	ProprietaryValue uint32
 
 	// Arguments.
-	TagClass  TagClass
 	TagNumber uint8
+	TagClass  TagClass
 }
 
-// IBACnetReliabilityTagged is the corresponding interface of BACnetReliabilityTagged
-type IBACnetReliabilityTagged interface {
+// IBACnetEventStateTagged is the corresponding interface of BACnetEventStateTagged
+type IBACnetEventStateTagged interface {
 	// GetHeader returns Header (property field)
 	GetHeader() *BACnetTagHeader
 	// GetValue returns Value (property field)
-	GetValue() BACnetReliability
+	GetValue() BACnetEventState
 	// GetProprietaryValue returns ProprietaryValue (property field)
 	GetProprietaryValue() uint32
 	// GetIsProprietary returns IsProprietary (virtual field)
@@ -60,15 +60,15 @@ type IBACnetReliabilityTagged interface {
 /////////////////////// Accessors for property fields.
 ///////////////////////
 
-func (m *BACnetReliabilityTagged) GetHeader() *BACnetTagHeader {
+func (m *BACnetEventStateTagged) GetHeader() *BACnetTagHeader {
 	return m.Header
 }
 
-func (m *BACnetReliabilityTagged) GetValue() BACnetReliability {
+func (m *BACnetEventStateTagged) GetValue() BACnetEventState {
 	return m.Value
 }
 
-func (m *BACnetReliabilityTagged) GetProprietaryValue() uint32 {
+func (m *BACnetEventStateTagged) GetProprietaryValue() uint32 {
 	return m.ProprietaryValue
 }
 
@@ -81,8 +81,8 @@ func (m *BACnetReliabilityTagged) GetProprietaryValue() uint32 {
 /////////////////////// Accessors for virtual fields.
 ///////////////////////
 
-func (m *BACnetReliabilityTagged) GetIsProprietary() bool {
-	return bool(bool((m.GetValue()) == (BACnetReliability_VENDOR_PROPRIETARY_VALUE)))
+func (m *BACnetEventStateTagged) GetIsProprietary() bool {
+	return bool(bool((m.GetValue()) == (BACnetEventState_VENDOR_PROPRIETARY_VALUE)))
 }
 
 ///////////////////////
@@ -90,30 +90,30 @@ func (m *BACnetReliabilityTagged) GetIsProprietary() bool {
 ///////////////////////////////////////////////////////////
 ///////////////////////////////////////////////////////////
 
-// NewBACnetReliabilityTagged factory function for BACnetReliabilityTagged
-func NewBACnetReliabilityTagged(header *BACnetTagHeader, value BACnetReliability, proprietaryValue uint32, tagClass TagClass, tagNumber uint8) *BACnetReliabilityTagged {
-	return &BACnetReliabilityTagged{Header: header, Value: value, ProprietaryValue: proprietaryValue, TagClass: tagClass, TagNumber: tagNumber}
+// NewBACnetEventStateTagged factory function for BACnetEventStateTagged
+func NewBACnetEventStateTagged(header *BACnetTagHeader, value BACnetEventState, proprietaryValue uint32, tagNumber uint8, tagClass TagClass) *BACnetEventStateTagged {
+	return &BACnetEventStateTagged{Header: header, Value: value, ProprietaryValue: proprietaryValue, TagNumber: tagNumber, TagClass: tagClass}
 }
 
-func CastBACnetReliabilityTagged(structType interface{}) *BACnetReliabilityTagged {
-	if casted, ok := structType.(BACnetReliabilityTagged); ok {
+func CastBACnetEventStateTagged(structType interface{}) *BACnetEventStateTagged {
+	if casted, ok := structType.(BACnetEventStateTagged); ok {
 		return &casted
 	}
-	if casted, ok := structType.(*BACnetReliabilityTagged); ok {
+	if casted, ok := structType.(*BACnetEventStateTagged); ok {
 		return casted
 	}
 	return nil
 }
 
-func (m *BACnetReliabilityTagged) GetTypeName() string {
-	return "BACnetReliabilityTagged"
+func (m *BACnetEventStateTagged) GetTypeName() string {
+	return "BACnetEventStateTagged"
 }
 
-func (m *BACnetReliabilityTagged) GetLengthInBits() uint16 {
+func (m *BACnetEventStateTagged) GetLengthInBits() uint16 {
 	return m.GetLengthInBitsConditional(false)
 }
 
-func (m *BACnetReliabilityTagged) GetLengthInBitsConditional(lastItem bool) uint16 {
+func (m *BACnetEventStateTagged) GetLengthInBitsConditional(lastItem bool) uint16 {
 	lengthInBits := uint16(0)
 
 	// Simple field (header)
@@ -125,19 +125,19 @@ func (m *BACnetReliabilityTagged) GetLengthInBitsConditional(lastItem bool) uint
 	// A virtual field doesn't have any in- or output.
 
 	// Manual Field (proprietaryValue)
-	lengthInBits += uint16(int32(m.GetHeader().GetActualLength()) * int32(int32(8)))
+	lengthInBits += uint16(utils.InlineIf(m.GetIsProprietary(), func() interface{} { return int32(int32(m.GetHeader().GetActualLength()) * int32(int32(8))) }, func() interface{} { return int32(int32(0)) }).(int32))
 
 	return lengthInBits
 }
 
-func (m *BACnetReliabilityTagged) GetLengthInBytes() uint16 {
+func (m *BACnetEventStateTagged) GetLengthInBytes() uint16 {
 	return m.GetLengthInBits() / 8
 }
 
-func BACnetReliabilityTaggedParse(readBuffer utils.ReadBuffer, tagClass TagClass, tagNumber uint8) (*BACnetReliabilityTagged, error) {
+func BACnetEventStateTaggedParse(readBuffer utils.ReadBuffer, tagNumber uint8, tagClass TagClass) (*BACnetEventStateTagged, error) {
 	positionAware := readBuffer
 	_ = positionAware
-	if pullErr := readBuffer.PullContext("BACnetReliabilityTagged"); pullErr != nil {
+	if pullErr := readBuffer.PullContext("BACnetEventStateTagged"); pullErr != nil {
 		return nil, pullErr
 	}
 	currentPos := positionAware.GetPos()
@@ -158,7 +158,7 @@ func BACnetReliabilityTaggedParse(readBuffer utils.ReadBuffer, tagClass TagClass
 
 	// Validation
 	if !(bool((header.GetTagClass()) == (tagClass))) {
-		return nil, utils.ParseValidationError{"tag doesn't match"}
+		return nil, utils.ParseValidationError{"tag class doesn't match"}
 	}
 
 	// Validation
@@ -167,14 +167,14 @@ func BACnetReliabilityTaggedParse(readBuffer utils.ReadBuffer, tagClass TagClass
 	}
 
 	// Manual Field (value)
-	_value, _valueErr := ReadEnumGeneric(readBuffer, header.GetActualLength(), BACnetReliability_VENDOR_PROPRIETARY_VALUE)
+	_value, _valueErr := ReadEnumGeneric(readBuffer, header.GetActualLength(), BACnetEventState_VENDOR_PROPRIETARY_VALUE)
 	if _valueErr != nil {
 		return nil, errors.Wrap(_valueErr, "Error parsing 'value' field")
 	}
-	value := _value.(BACnetReliability)
+	value := _value.(BACnetEventState)
 
 	// Virtual field
-	_isProprietary := bool((value) == (BACnetReliability_VENDOR_PROPRIETARY_VALUE))
+	_isProprietary := bool((value) == (BACnetEventState_VENDOR_PROPRIETARY_VALUE))
 	isProprietary := bool(_isProprietary)
 	_ = isProprietary
 
@@ -185,18 +185,18 @@ func BACnetReliabilityTaggedParse(readBuffer utils.ReadBuffer, tagClass TagClass
 	}
 	proprietaryValue := _proprietaryValue.(uint32)
 
-	if closeErr := readBuffer.CloseContext("BACnetReliabilityTagged"); closeErr != nil {
+	if closeErr := readBuffer.CloseContext("BACnetEventStateTagged"); closeErr != nil {
 		return nil, closeErr
 	}
 
 	// Create the instance
-	return NewBACnetReliabilityTagged(header, value, proprietaryValue, tagClass, tagNumber), nil
+	return NewBACnetEventStateTagged(header, value, proprietaryValue, tagNumber, tagClass), nil
 }
 
-func (m *BACnetReliabilityTagged) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *BACnetEventStateTagged) Serialize(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
-	if pushErr := writeBuffer.PushContext("BACnetReliabilityTagged"); pushErr != nil {
+	if pushErr := writeBuffer.PushContext("BACnetEventStateTagged"); pushErr != nil {
 		return pushErr
 	}
 
@@ -228,13 +228,13 @@ func (m *BACnetReliabilityTagged) Serialize(writeBuffer utils.WriteBuffer) error
 		return errors.Wrap(_proprietaryValueErr, "Error serializing 'proprietaryValue' field")
 	}
 
-	if popErr := writeBuffer.PopContext("BACnetReliabilityTagged"); popErr != nil {
+	if popErr := writeBuffer.PopContext("BACnetEventStateTagged"); popErr != nil {
 		return popErr
 	}
 	return nil
 }
 
-func (m *BACnetReliabilityTagged) String() string {
+func (m *BACnetEventStateTagged) String() string {
 	if m == nil {
 		return "<nil>"
 	}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetEventSummary.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetEventSummary.go
index e2b1933832..d5150fc7c4 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetEventSummary.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetEventSummary.go
@@ -29,10 +29,10 @@ import (
 // BACnetEventSummary is the data-structure of this message
 type BACnetEventSummary struct {
 	ObjectIdentifier        *BACnetContextTagObjectIdentifier
-	EventState              *BACnetContextTagEventState
+	EventState              *BACnetEventStateTagged
 	AcknowledgedTransitions *BACnetEventTransitionBits
 	EventTimestamps         *BACnetEventTimestamps
-	NotifyType              *BACnetContextTagNotifyType
+	NotifyType              *BACnetNotifyTypeTagged
 	EventEnable             *BACnetEventTransitionBits
 	EventPriorities         *BACnetEventProrities
 }
@@ -42,13 +42,13 @@ type IBACnetEventSummary interface {
 	// GetObjectIdentifier returns ObjectIdentifier (property field)
 	GetObjectIdentifier() *BACnetContextTagObjectIdentifier
 	// GetEventState returns EventState (property field)
-	GetEventState() *BACnetContextTagEventState
+	GetEventState() *BACnetEventStateTagged
 	// GetAcknowledgedTransitions returns AcknowledgedTransitions (property field)
 	GetAcknowledgedTransitions() *BACnetEventTransitionBits
 	// GetEventTimestamps returns EventTimestamps (property field)
 	GetEventTimestamps() *BACnetEventTimestamps
 	// GetNotifyType returns NotifyType (property field)
-	GetNotifyType() *BACnetContextTagNotifyType
+	GetNotifyType() *BACnetNotifyTypeTagged
 	// GetEventEnable returns EventEnable (property field)
 	GetEventEnable() *BACnetEventTransitionBits
 	// GetEventPriorities returns EventPriorities (property field)
@@ -70,7 +70,7 @@ func (m *BACnetEventSummary) GetObjectIdentifier() *BACnetContextTagObjectIdenti
 	return m.ObjectIdentifier
 }
 
-func (m *BACnetEventSummary) GetEventState() *BACnetContextTagEventState {
+func (m *BACnetEventSummary) GetEventState() *BACnetEventStateTagged {
 	return m.EventState
 }
 
@@ -82,7 +82,7 @@ func (m *BACnetEventSummary) GetEventTimestamps() *BACnetEventTimestamps {
 	return m.EventTimestamps
 }
 
-func (m *BACnetEventSummary) GetNotifyType() *BACnetContextTagNotifyType {
+func (m *BACnetEventSummary) GetNotifyType() *BACnetNotifyTypeTagged {
 	return m.NotifyType
 }
 
@@ -100,7 +100,7 @@ func (m *BACnetEventSummary) GetEventPriorities() *BACnetEventProrities {
 ///////////////////////////////////////////////////////////
 
 // NewBACnetEventSummary factory function for BACnetEventSummary
-func NewBACnetEventSummary(objectIdentifier *BACnetContextTagObjectIdentifier, eventState *BACnetContextTagEventState, acknowledgedTransitions *BACnetEventTransitionBits, eventTimestamps *BACnetEventTimestamps, notifyType *BACnetContextTagNotifyType, eventEnable *BACnetEventTransitionBits, eventPriorities *BACnetEventProrities) *BACnetEventSummary {
+func NewBACnetEventSummary(objectIdentifier *BACnetContextTagObjectIdentifier, eventState *BACnetEventStateTagged, acknowledgedTransitions *BACnetEventTransitionBits, eventTimestamps *BACnetEventTimestamps, notifyType *BACnetNotifyTypeTagged, eventEnable *BACnetEventTransitionBits, eventPriorities *BACnetEventProrities) *BACnetEventSummary {
 	return &BACnetEventSummary{ObjectIdentifier: objectIdentifier, EventState: eventState, AcknowledgedTransitions: acknowledgedTransitions, EventTimestamps: eventTimestamps, NotifyType: notifyType, EventEnable: eventEnable, EventPriorities: eventPriorities}
 }
 
@@ -179,11 +179,11 @@ func BACnetEventSummaryParse(readBuffer utils.ReadBuffer) (*BACnetEventSummary,
 	if pullErr := readBuffer.PullContext("eventState"); pullErr != nil {
 		return nil, pullErr
 	}
-	_eventState, _eventStateErr := BACnetContextTagParse(readBuffer, uint8(uint8(1)), BACnetDataType(BACnetDataType_EVENT_STATE))
+	_eventState, _eventStateErr := BACnetEventStateTaggedParse(readBuffer, uint8(uint8(1)), TagClass(TagClass_CONTEXT_SPECIFIC_TAGS))
 	if _eventStateErr != nil {
 		return nil, errors.Wrap(_eventStateErr, "Error parsing 'eventState' field")
 	}
-	eventState := CastBACnetContextTagEventState(_eventState)
+	eventState := CastBACnetEventStateTagged(_eventState)
 	if closeErr := readBuffer.CloseContext("eventState"); closeErr != nil {
 		return nil, closeErr
 	}
@@ -218,11 +218,11 @@ func BACnetEventSummaryParse(readBuffer utils.ReadBuffer) (*BACnetEventSummary,
 	if pullErr := readBuffer.PullContext("notifyType"); pullErr != nil {
 		return nil, pullErr
 	}
-	_notifyType, _notifyTypeErr := BACnetContextTagParse(readBuffer, uint8(uint8(4)), BACnetDataType(BACnetDataType_NOTIFY_TYPE))
+	_notifyType, _notifyTypeErr := BACnetNotifyTypeTaggedParse(readBuffer, uint8(uint8(4)), TagClass(TagClass_CONTEXT_SPECIFIC_TAGS))
 	if _notifyTypeErr != nil {
 		return nil, errors.Wrap(_notifyTypeErr, "Error parsing 'notifyType' field")
 	}
-	notifyType := CastBACnetContextTagNotifyType(_notifyType)
+	notifyType := CastBACnetNotifyTypeTagged(_notifyType)
 	if closeErr := readBuffer.CloseContext("notifyType"); closeErr != nil {
 		return nil, closeErr
 	}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetEventType.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetEventType.go
index f475490499..76b3b7278a 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetEventType.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetEventType.go
@@ -26,6 +26,7 @@ import (
 
 // Code generated by code-generation. DO NOT EDIT.
 
+// BACnetEventType is an enum
 type BACnetEventType uint16
 
 type IBACnetEventType interface {
@@ -201,7 +202,7 @@ func CastBACnetEventType(structType interface{}) BACnetEventType {
 }
 
 func (m BACnetEventType) GetLengthInBits() uint16 {
-	return 9
+	return 16
 }
 
 func (m BACnetEventType) GetLengthInBytes() uint16 {
@@ -209,7 +210,7 @@ func (m BACnetEventType) GetLengthInBytes() uint16 {
 }
 
 func BACnetEventTypeParse(readBuffer utils.ReadBuffer) (BACnetEventType, error) {
-	val, err := readBuffer.ReadUint16("BACnetEventType", 9)
+	val, err := readBuffer.ReadUint16("BACnetEventType", 16)
 	if err != nil {
 		return 0, nil
 	}
@@ -217,7 +218,7 @@ func BACnetEventTypeParse(readBuffer utils.ReadBuffer) (BACnetEventType, error)
 }
 
 func (e BACnetEventType) Serialize(writeBuffer utils.WriteBuffer) error {
-	return writeBuffer.WriteUint16("BACnetEventType", 9, uint16(e), utils.WithAdditionalStringRepresentation(e.name()))
+	return writeBuffer.WriteUint16("BACnetEventType", 16, uint16(e), utils.WithAdditionalStringRepresentation(e.name()))
 }
 
 func (e BACnetEventType) name() string {
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetReliabilityTagged.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetEventTypeTagged.go
similarity index 68%
copy from plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetReliabilityTagged.go
copy to plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetEventTypeTagged.go
index 5b7b38b553..3189ab6d26 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetReliabilityTagged.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetEventTypeTagged.go
@@ -26,23 +26,23 @@ import (
 
 // Code generated by code-generation. DO NOT EDIT.
 
-// BACnetReliabilityTagged is the data-structure of this message
-type BACnetReliabilityTagged struct {
+// BACnetEventTypeTagged is the data-structure of this message
+type BACnetEventTypeTagged struct {
 	Header           *BACnetTagHeader
-	Value            BACnetReliability
+	Value            BACnetEventType
 	ProprietaryValue uint32
 
 	// Arguments.
-	TagClass  TagClass
 	TagNumber uint8
+	TagClass  TagClass
 }
 
-// IBACnetReliabilityTagged is the corresponding interface of BACnetReliabilityTagged
-type IBACnetReliabilityTagged interface {
+// IBACnetEventTypeTagged is the corresponding interface of BACnetEventTypeTagged
+type IBACnetEventTypeTagged interface {
 	// GetHeader returns Header (property field)
 	GetHeader() *BACnetTagHeader
 	// GetValue returns Value (property field)
-	GetValue() BACnetReliability
+	GetValue() BACnetEventType
 	// GetProprietaryValue returns ProprietaryValue (property field)
 	GetProprietaryValue() uint32
 	// GetIsProprietary returns IsProprietary (virtual field)
@@ -60,15 +60,15 @@ type IBACnetReliabilityTagged interface {
 /////////////////////// Accessors for property fields.
 ///////////////////////
 
-func (m *BACnetReliabilityTagged) GetHeader() *BACnetTagHeader {
+func (m *BACnetEventTypeTagged) GetHeader() *BACnetTagHeader {
 	return m.Header
 }
 
-func (m *BACnetReliabilityTagged) GetValue() BACnetReliability {
+func (m *BACnetEventTypeTagged) GetValue() BACnetEventType {
 	return m.Value
 }
 
-func (m *BACnetReliabilityTagged) GetProprietaryValue() uint32 {
+func (m *BACnetEventTypeTagged) GetProprietaryValue() uint32 {
 	return m.ProprietaryValue
 }
 
@@ -81,8 +81,8 @@ func (m *BACnetReliabilityTagged) GetProprietaryValue() uint32 {
 /////////////////////// Accessors for virtual fields.
 ///////////////////////
 
-func (m *BACnetReliabilityTagged) GetIsProprietary() bool {
-	return bool(bool((m.GetValue()) == (BACnetReliability_VENDOR_PROPRIETARY_VALUE)))
+func (m *BACnetEventTypeTagged) GetIsProprietary() bool {
+	return bool(bool((m.GetValue()) == (BACnetEventType_VENDOR_PROPRIETARY_VALUE)))
 }
 
 ///////////////////////
@@ -90,30 +90,30 @@ func (m *BACnetReliabilityTagged) GetIsProprietary() bool {
 ///////////////////////////////////////////////////////////
 ///////////////////////////////////////////////////////////
 
-// NewBACnetReliabilityTagged factory function for BACnetReliabilityTagged
-func NewBACnetReliabilityTagged(header *BACnetTagHeader, value BACnetReliability, proprietaryValue uint32, tagClass TagClass, tagNumber uint8) *BACnetReliabilityTagged {
-	return &BACnetReliabilityTagged{Header: header, Value: value, ProprietaryValue: proprietaryValue, TagClass: tagClass, TagNumber: tagNumber}
+// NewBACnetEventTypeTagged factory function for BACnetEventTypeTagged
+func NewBACnetEventTypeTagged(header *BACnetTagHeader, value BACnetEventType, proprietaryValue uint32, tagNumber uint8, tagClass TagClass) *BACnetEventTypeTagged {
+	return &BACnetEventTypeTagged{Header: header, Value: value, ProprietaryValue: proprietaryValue, TagNumber: tagNumber, TagClass: tagClass}
 }
 
-func CastBACnetReliabilityTagged(structType interface{}) *BACnetReliabilityTagged {
-	if casted, ok := structType.(BACnetReliabilityTagged); ok {
+func CastBACnetEventTypeTagged(structType interface{}) *BACnetEventTypeTagged {
+	if casted, ok := structType.(BACnetEventTypeTagged); ok {
 		return &casted
 	}
-	if casted, ok := structType.(*BACnetReliabilityTagged); ok {
+	if casted, ok := structType.(*BACnetEventTypeTagged); ok {
 		return casted
 	}
 	return nil
 }
 
-func (m *BACnetReliabilityTagged) GetTypeName() string {
-	return "BACnetReliabilityTagged"
+func (m *BACnetEventTypeTagged) GetTypeName() string {
+	return "BACnetEventTypeTagged"
 }
 
-func (m *BACnetReliabilityTagged) GetLengthInBits() uint16 {
+func (m *BACnetEventTypeTagged) GetLengthInBits() uint16 {
 	return m.GetLengthInBitsConditional(false)
 }
 
-func (m *BACnetReliabilityTagged) GetLengthInBitsConditional(lastItem bool) uint16 {
+func (m *BACnetEventTypeTagged) GetLengthInBitsConditional(lastItem bool) uint16 {
 	lengthInBits := uint16(0)
 
 	// Simple field (header)
@@ -125,19 +125,19 @@ func (m *BACnetReliabilityTagged) GetLengthInBitsConditional(lastItem bool) uint
 	// A virtual field doesn't have any in- or output.
 
 	// Manual Field (proprietaryValue)
-	lengthInBits += uint16(int32(m.GetHeader().GetActualLength()) * int32(int32(8)))
+	lengthInBits += uint16(utils.InlineIf(m.GetIsProprietary(), func() interface{} { return int32(int32(m.GetHeader().GetActualLength()) * int32(int32(8))) }, func() interface{} { return int32(int32(0)) }).(int32))
 
 	return lengthInBits
 }
 
-func (m *BACnetReliabilityTagged) GetLengthInBytes() uint16 {
+func (m *BACnetEventTypeTagged) GetLengthInBytes() uint16 {
 	return m.GetLengthInBits() / 8
 }
 
-func BACnetReliabilityTaggedParse(readBuffer utils.ReadBuffer, tagClass TagClass, tagNumber uint8) (*BACnetReliabilityTagged, error) {
+func BACnetEventTypeTaggedParse(readBuffer utils.ReadBuffer, tagNumber uint8, tagClass TagClass) (*BACnetEventTypeTagged, error) {
 	positionAware := readBuffer
 	_ = positionAware
-	if pullErr := readBuffer.PullContext("BACnetReliabilityTagged"); pullErr != nil {
+	if pullErr := readBuffer.PullContext("BACnetEventTypeTagged"); pullErr != nil {
 		return nil, pullErr
 	}
 	currentPos := positionAware.GetPos()
@@ -158,7 +158,7 @@ func BACnetReliabilityTaggedParse(readBuffer utils.ReadBuffer, tagClass TagClass
 
 	// Validation
 	if !(bool((header.GetTagClass()) == (tagClass))) {
-		return nil, utils.ParseValidationError{"tag doesn't match"}
+		return nil, utils.ParseValidationError{"tag class doesn't match"}
 	}
 
 	// Validation
@@ -167,14 +167,14 @@ func BACnetReliabilityTaggedParse(readBuffer utils.ReadBuffer, tagClass TagClass
 	}
 
 	// Manual Field (value)
-	_value, _valueErr := ReadEnumGeneric(readBuffer, header.GetActualLength(), BACnetReliability_VENDOR_PROPRIETARY_VALUE)
+	_value, _valueErr := ReadEnumGeneric(readBuffer, header.GetActualLength(), BACnetEventType_VENDOR_PROPRIETARY_VALUE)
 	if _valueErr != nil {
 		return nil, errors.Wrap(_valueErr, "Error parsing 'value' field")
 	}
-	value := _value.(BACnetReliability)
+	value := _value.(BACnetEventType)
 
 	// Virtual field
-	_isProprietary := bool((value) == (BACnetReliability_VENDOR_PROPRIETARY_VALUE))
+	_isProprietary := bool((value) == (BACnetEventType_VENDOR_PROPRIETARY_VALUE))
 	isProprietary := bool(_isProprietary)
 	_ = isProprietary
 
@@ -185,18 +185,18 @@ func BACnetReliabilityTaggedParse(readBuffer utils.ReadBuffer, tagClass TagClass
 	}
 	proprietaryValue := _proprietaryValue.(uint32)
 
-	if closeErr := readBuffer.CloseContext("BACnetReliabilityTagged"); closeErr != nil {
+	if closeErr := readBuffer.CloseContext("BACnetEventTypeTagged"); closeErr != nil {
 		return nil, closeErr
 	}
 
 	// Create the instance
-	return NewBACnetReliabilityTagged(header, value, proprietaryValue, tagClass, tagNumber), nil
+	return NewBACnetEventTypeTagged(header, value, proprietaryValue, tagNumber, tagClass), nil
 }
 
-func (m *BACnetReliabilityTagged) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *BACnetEventTypeTagged) Serialize(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
-	if pushErr := writeBuffer.PushContext("BACnetReliabilityTagged"); pushErr != nil {
+	if pushErr := writeBuffer.PushContext("BACnetEventTypeTagged"); pushErr != nil {
 		return pushErr
 	}
 
@@ -228,13 +228,13 @@ func (m *BACnetReliabilityTagged) Serialize(writeBuffer utils.WriteBuffer) error
 		return errors.Wrap(_proprietaryValueErr, "Error serializing 'proprietaryValue' field")
 	}
 
-	if popErr := writeBuffer.PopContext("BACnetReliabilityTagged"); popErr != nil {
+	if popErr := writeBuffer.PopContext("BACnetEventTypeTagged"); popErr != nil {
 		return popErr
 	}
 	return nil
 }
 
-func (m *BACnetReliabilityTagged) String() string {
+func (m *BACnetEventTypeTagged) String() string {
 	if m == nil {
 		return "<nil>"
 	}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetLifeSafetyMode.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetLifeSafetyMode.go
index a309887023..486cbd5776 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetLifeSafetyMode.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetLifeSafetyMode.go
@@ -26,6 +26,7 @@ import (
 
 // Code generated by code-generation. DO NOT EDIT.
 
+// BACnetLifeSafetyMode is an enum
 type BACnetLifeSafetyMode uint16
 
 type IBACnetLifeSafetyMode interface {
@@ -48,6 +49,7 @@ const (
 	BACnetLifeSafetyMode_DISABLED                   BACnetLifeSafetyMode = 12
 	BACnetLifeSafetyMode_AUTOMATIC_RELEASE_DISABLED BACnetLifeSafetyMode = 13
 	BACnetLifeSafetyMode_DEFAULT                    BACnetLifeSafetyMode = 14
+	BACnetLifeSafetyMode_VENDOR_PROPRIETARY_VALUE   BACnetLifeSafetyMode = 0xFFFF
 )
 
 var BACnetLifeSafetyModeValues []BACnetLifeSafetyMode
@@ -70,6 +72,7 @@ func init() {
 		BACnetLifeSafetyMode_DISABLED,
 		BACnetLifeSafetyMode_AUTOMATIC_RELEASE_DISABLED,
 		BACnetLifeSafetyMode_DEFAULT,
+		BACnetLifeSafetyMode_VENDOR_PROPRIETARY_VALUE,
 	}
 }
 
@@ -77,6 +80,8 @@ func BACnetLifeSafetyModeByValue(value uint16) BACnetLifeSafetyMode {
 	switch value {
 	case 0:
 		return BACnetLifeSafetyMode_OFF
+	case 0xFFFF:
+		return BACnetLifeSafetyMode_VENDOR_PROPRIETARY_VALUE
 	case 1:
 		return BACnetLifeSafetyMode_ON
 	case 10:
@@ -113,6 +118,8 @@ func BACnetLifeSafetyModeByName(value string) BACnetLifeSafetyMode {
 	switch value {
 	case "OFF":
 		return BACnetLifeSafetyMode_OFF
+	case "VENDOR_PROPRIETARY_VALUE":
+		return BACnetLifeSafetyMode_VENDOR_PROPRIETARY_VALUE
 	case "ON":
 		return BACnetLifeSafetyMode_ON
 	case "DISCONNECTED":
@@ -188,6 +195,8 @@ func (e BACnetLifeSafetyMode) name() string {
 	switch e {
 	case BACnetLifeSafetyMode_OFF:
 		return "OFF"
+	case BACnetLifeSafetyMode_VENDOR_PROPRIETARY_VALUE:
+		return "VENDOR_PROPRIETARY_VALUE"
 	case BACnetLifeSafetyMode_ON:
 		return "ON"
 	case BACnetLifeSafetyMode_DISCONNECTED:
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetReliabilityTagged.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetLifeSafetyModeTagged.go
similarity index 67%
copy from plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetReliabilityTagged.go
copy to plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetLifeSafetyModeTagged.go
index 5b7b38b553..c72a69f060 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetReliabilityTagged.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetLifeSafetyModeTagged.go
@@ -26,23 +26,23 @@ import (
 
 // Code generated by code-generation. DO NOT EDIT.
 
-// BACnetReliabilityTagged is the data-structure of this message
-type BACnetReliabilityTagged struct {
+// BACnetLifeSafetyModeTagged is the data-structure of this message
+type BACnetLifeSafetyModeTagged struct {
 	Header           *BACnetTagHeader
-	Value            BACnetReliability
+	Value            BACnetLifeSafetyMode
 	ProprietaryValue uint32
 
 	// Arguments.
-	TagClass  TagClass
 	TagNumber uint8
+	TagClass  TagClass
 }
 
-// IBACnetReliabilityTagged is the corresponding interface of BACnetReliabilityTagged
-type IBACnetReliabilityTagged interface {
+// IBACnetLifeSafetyModeTagged is the corresponding interface of BACnetLifeSafetyModeTagged
+type IBACnetLifeSafetyModeTagged interface {
 	// GetHeader returns Header (property field)
 	GetHeader() *BACnetTagHeader
 	// GetValue returns Value (property field)
-	GetValue() BACnetReliability
+	GetValue() BACnetLifeSafetyMode
 	// GetProprietaryValue returns ProprietaryValue (property field)
 	GetProprietaryValue() uint32
 	// GetIsProprietary returns IsProprietary (virtual field)
@@ -60,15 +60,15 @@ type IBACnetReliabilityTagged interface {
 /////////////////////// Accessors for property fields.
 ///////////////////////
 
-func (m *BACnetReliabilityTagged) GetHeader() *BACnetTagHeader {
+func (m *BACnetLifeSafetyModeTagged) GetHeader() *BACnetTagHeader {
 	return m.Header
 }
 
-func (m *BACnetReliabilityTagged) GetValue() BACnetReliability {
+func (m *BACnetLifeSafetyModeTagged) GetValue() BACnetLifeSafetyMode {
 	return m.Value
 }
 
-func (m *BACnetReliabilityTagged) GetProprietaryValue() uint32 {
+func (m *BACnetLifeSafetyModeTagged) GetProprietaryValue() uint32 {
 	return m.ProprietaryValue
 }
 
@@ -81,8 +81,8 @@ func (m *BACnetReliabilityTagged) GetProprietaryValue() uint32 {
 /////////////////////// Accessors for virtual fields.
 ///////////////////////
 
-func (m *BACnetReliabilityTagged) GetIsProprietary() bool {
-	return bool(bool((m.GetValue()) == (BACnetReliability_VENDOR_PROPRIETARY_VALUE)))
+func (m *BACnetLifeSafetyModeTagged) GetIsProprietary() bool {
+	return bool(bool((m.GetValue()) == (BACnetLifeSafetyMode_VENDOR_PROPRIETARY_VALUE)))
 }
 
 ///////////////////////
@@ -90,30 +90,30 @@ func (m *BACnetReliabilityTagged) GetIsProprietary() bool {
 ///////////////////////////////////////////////////////////
 ///////////////////////////////////////////////////////////
 
-// NewBACnetReliabilityTagged factory function for BACnetReliabilityTagged
-func NewBACnetReliabilityTagged(header *BACnetTagHeader, value BACnetReliability, proprietaryValue uint32, tagClass TagClass, tagNumber uint8) *BACnetReliabilityTagged {
-	return &BACnetReliabilityTagged{Header: header, Value: value, ProprietaryValue: proprietaryValue, TagClass: tagClass, TagNumber: tagNumber}
+// NewBACnetLifeSafetyModeTagged factory function for BACnetLifeSafetyModeTagged
+func NewBACnetLifeSafetyModeTagged(header *BACnetTagHeader, value BACnetLifeSafetyMode, proprietaryValue uint32, tagNumber uint8, tagClass TagClass) *BACnetLifeSafetyModeTagged {
+	return &BACnetLifeSafetyModeTagged{Header: header, Value: value, ProprietaryValue: proprietaryValue, TagNumber: tagNumber, TagClass: tagClass}
 }
 
-func CastBACnetReliabilityTagged(structType interface{}) *BACnetReliabilityTagged {
-	if casted, ok := structType.(BACnetReliabilityTagged); ok {
+func CastBACnetLifeSafetyModeTagged(structType interface{}) *BACnetLifeSafetyModeTagged {
+	if casted, ok := structType.(BACnetLifeSafetyModeTagged); ok {
 		return &casted
 	}
-	if casted, ok := structType.(*BACnetReliabilityTagged); ok {
+	if casted, ok := structType.(*BACnetLifeSafetyModeTagged); ok {
 		return casted
 	}
 	return nil
 }
 
-func (m *BACnetReliabilityTagged) GetTypeName() string {
-	return "BACnetReliabilityTagged"
+func (m *BACnetLifeSafetyModeTagged) GetTypeName() string {
+	return "BACnetLifeSafetyModeTagged"
 }
 
-func (m *BACnetReliabilityTagged) GetLengthInBits() uint16 {
+func (m *BACnetLifeSafetyModeTagged) GetLengthInBits() uint16 {
 	return m.GetLengthInBitsConditional(false)
 }
 
-func (m *BACnetReliabilityTagged) GetLengthInBitsConditional(lastItem bool) uint16 {
+func (m *BACnetLifeSafetyModeTagged) GetLengthInBitsConditional(lastItem bool) uint16 {
 	lengthInBits := uint16(0)
 
 	// Simple field (header)
@@ -125,19 +125,19 @@ func (m *BACnetReliabilityTagged) GetLengthInBitsConditional(lastItem bool) uint
 	// A virtual field doesn't have any in- or output.
 
 	// Manual Field (proprietaryValue)
-	lengthInBits += uint16(int32(m.GetHeader().GetActualLength()) * int32(int32(8)))
+	lengthInBits += uint16(utils.InlineIf(m.GetIsProprietary(), func() interface{} { return int32(int32(m.GetHeader().GetActualLength()) * int32(int32(8))) }, func() interface{} { return int32(int32(0)) }).(int32))
 
 	return lengthInBits
 }
 
-func (m *BACnetReliabilityTagged) GetLengthInBytes() uint16 {
+func (m *BACnetLifeSafetyModeTagged) GetLengthInBytes() uint16 {
 	return m.GetLengthInBits() / 8
 }
 
-func BACnetReliabilityTaggedParse(readBuffer utils.ReadBuffer, tagClass TagClass, tagNumber uint8) (*BACnetReliabilityTagged, error) {
+func BACnetLifeSafetyModeTaggedParse(readBuffer utils.ReadBuffer, tagNumber uint8, tagClass TagClass) (*BACnetLifeSafetyModeTagged, error) {
 	positionAware := readBuffer
 	_ = positionAware
-	if pullErr := readBuffer.PullContext("BACnetReliabilityTagged"); pullErr != nil {
+	if pullErr := readBuffer.PullContext("BACnetLifeSafetyModeTagged"); pullErr != nil {
 		return nil, pullErr
 	}
 	currentPos := positionAware.GetPos()
@@ -158,7 +158,7 @@ func BACnetReliabilityTaggedParse(readBuffer utils.ReadBuffer, tagClass TagClass
 
 	// Validation
 	if !(bool((header.GetTagClass()) == (tagClass))) {
-		return nil, utils.ParseValidationError{"tag doesn't match"}
+		return nil, utils.ParseValidationError{"tag class doesn't match"}
 	}
 
 	// Validation
@@ -167,14 +167,14 @@ func BACnetReliabilityTaggedParse(readBuffer utils.ReadBuffer, tagClass TagClass
 	}
 
 	// Manual Field (value)
-	_value, _valueErr := ReadEnumGeneric(readBuffer, header.GetActualLength(), BACnetReliability_VENDOR_PROPRIETARY_VALUE)
+	_value, _valueErr := ReadEnumGeneric(readBuffer, header.GetActualLength(), BACnetLifeSafetyMode_VENDOR_PROPRIETARY_VALUE)
 	if _valueErr != nil {
 		return nil, errors.Wrap(_valueErr, "Error parsing 'value' field")
 	}
-	value := _value.(BACnetReliability)
+	value := _value.(BACnetLifeSafetyMode)
 
 	// Virtual field
-	_isProprietary := bool((value) == (BACnetReliability_VENDOR_PROPRIETARY_VALUE))
+	_isProprietary := bool((value) == (BACnetLifeSafetyMode_VENDOR_PROPRIETARY_VALUE))
 	isProprietary := bool(_isProprietary)
 	_ = isProprietary
 
@@ -185,18 +185,18 @@ func BACnetReliabilityTaggedParse(readBuffer utils.ReadBuffer, tagClass TagClass
 	}
 	proprietaryValue := _proprietaryValue.(uint32)
 
-	if closeErr := readBuffer.CloseContext("BACnetReliabilityTagged"); closeErr != nil {
+	if closeErr := readBuffer.CloseContext("BACnetLifeSafetyModeTagged"); closeErr != nil {
 		return nil, closeErr
 	}
 
 	// Create the instance
-	return NewBACnetReliabilityTagged(header, value, proprietaryValue, tagClass, tagNumber), nil
+	return NewBACnetLifeSafetyModeTagged(header, value, proprietaryValue, tagNumber, tagClass), nil
 }
 
-func (m *BACnetReliabilityTagged) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *BACnetLifeSafetyModeTagged) Serialize(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
-	if pushErr := writeBuffer.PushContext("BACnetReliabilityTagged"); pushErr != nil {
+	if pushErr := writeBuffer.PushContext("BACnetLifeSafetyModeTagged"); pushErr != nil {
 		return pushErr
 	}
 
@@ -228,13 +228,13 @@ func (m *BACnetReliabilityTagged) Serialize(writeBuffer utils.WriteBuffer) error
 		return errors.Wrap(_proprietaryValueErr, "Error serializing 'proprietaryValue' field")
 	}
 
-	if popErr := writeBuffer.PopContext("BACnetReliabilityTagged"); popErr != nil {
+	if popErr := writeBuffer.PopContext("BACnetLifeSafetyModeTagged"); popErr != nil {
 		return popErr
 	}
 	return nil
 }
 
-func (m *BACnetReliabilityTagged) String() string {
+func (m *BACnetLifeSafetyModeTagged) String() string {
 	if m == nil {
 		return "<nil>"
 	}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetLifeSafetyState.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetLifeSafetyState.go
index a19f890aed..4403ac0eaa 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetLifeSafetyState.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetLifeSafetyState.go
@@ -26,6 +26,7 @@ import (
 
 // Code generated by code-generation. DO NOT EDIT.
 
+// BACnetLifeSafetyState is an enum
 type BACnetLifeSafetyState uint16
 
 type IBACnetLifeSafetyState interface {
@@ -33,30 +34,31 @@ type IBACnetLifeSafetyState interface {
 }
 
 const (
-	BACnetLifeSafetyState_QUIET            BACnetLifeSafetyState = 0
-	BACnetLifeSafetyState_PRE_ALARM        BACnetLifeSafetyState = 1
-	BACnetLifeSafetyState_ALARM            BACnetLifeSafetyState = 2
-	BACnetLifeSafetyState_FAULT            BACnetLifeSafetyState = 3
-	BACnetLifeSafetyState_FAULT_PRE_ALARM  BACnetLifeSafetyState = 4
-	BACnetLifeSafetyState_FAULT_ALARM      BACnetLifeSafetyState = 5
-	BACnetLifeSafetyState_NOT_READY        BACnetLifeSafetyState = 6
-	BACnetLifeSafetyState_ACTIVE           BACnetLifeSafetyState = 7
-	BACnetLifeSafetyState_TAMPER           BACnetLifeSafetyState = 8
-	BACnetLifeSafetyState_TEST_ALARM       BACnetLifeSafetyState = 9
-	BACnetLifeSafetyState_TEST_ACTIVE      BACnetLifeSafetyState = 10
-	BACnetLifeSafetyState_TEST_FAULT       BACnetLifeSafetyState = 11
-	BACnetLifeSafetyState_TEST_FAULT_ALARM BACnetLifeSafetyState = 12
-	BACnetLifeSafetyState_HOLDUP           BACnetLifeSafetyState = 13
-	BACnetLifeSafetyState_DURESS           BACnetLifeSafetyState = 14
-	BACnetLifeSafetyState_TAMPER_ALARM     BACnetLifeSafetyState = 15
-	BACnetLifeSafetyState_ABNORMAL         BACnetLifeSafetyState = 16
-	BACnetLifeSafetyState_EMERGENCY_POWER  BACnetLifeSafetyState = 17
-	BACnetLifeSafetyState_DELAYED          BACnetLifeSafetyState = 18
-	BACnetLifeSafetyState_BLOCKED          BACnetLifeSafetyState = 19
-	BACnetLifeSafetyState_LOCAL_ALARM      BACnetLifeSafetyState = 20
-	BACnetLifeSafetyState_GENERAL_ALARM    BACnetLifeSafetyState = 21
-	BACnetLifeSafetyState_SUPERVISORY      BACnetLifeSafetyState = 22
-	BACnetLifeSafetyState_TEST_SUPERVISORY BACnetLifeSafetyState = 23
+	BACnetLifeSafetyState_QUIET                    BACnetLifeSafetyState = 0
+	BACnetLifeSafetyState_PRE_ALARM                BACnetLifeSafetyState = 1
+	BACnetLifeSafetyState_ALARM                    BACnetLifeSafetyState = 2
+	BACnetLifeSafetyState_FAULT                    BACnetLifeSafetyState = 3
+	BACnetLifeSafetyState_FAULT_PRE_ALARM          BACnetLifeSafetyState = 4
+	BACnetLifeSafetyState_FAULT_ALARM              BACnetLifeSafetyState = 5
+	BACnetLifeSafetyState_NOT_READY                BACnetLifeSafetyState = 6
+	BACnetLifeSafetyState_ACTIVE                   BACnetLifeSafetyState = 7
+	BACnetLifeSafetyState_TAMPER                   BACnetLifeSafetyState = 8
+	BACnetLifeSafetyState_TEST_ALARM               BACnetLifeSafetyState = 9
+	BACnetLifeSafetyState_TEST_ACTIVE              BACnetLifeSafetyState = 10
+	BACnetLifeSafetyState_TEST_FAULT               BACnetLifeSafetyState = 11
+	BACnetLifeSafetyState_TEST_FAULT_ALARM         BACnetLifeSafetyState = 12
+	BACnetLifeSafetyState_HOLDUP                   BACnetLifeSafetyState = 13
+	BACnetLifeSafetyState_DURESS                   BACnetLifeSafetyState = 14
+	BACnetLifeSafetyState_TAMPER_ALARM             BACnetLifeSafetyState = 15
+	BACnetLifeSafetyState_ABNORMAL                 BACnetLifeSafetyState = 16
+	BACnetLifeSafetyState_EMERGENCY_POWER          BACnetLifeSafetyState = 17
+	BACnetLifeSafetyState_DELAYED                  BACnetLifeSafetyState = 18
+	BACnetLifeSafetyState_BLOCKED                  BACnetLifeSafetyState = 19
+	BACnetLifeSafetyState_LOCAL_ALARM              BACnetLifeSafetyState = 20
+	BACnetLifeSafetyState_GENERAL_ALARM            BACnetLifeSafetyState = 21
+	BACnetLifeSafetyState_SUPERVISORY              BACnetLifeSafetyState = 22
+	BACnetLifeSafetyState_TEST_SUPERVISORY         BACnetLifeSafetyState = 23
+	BACnetLifeSafetyState_VENDOR_PROPRIETARY_VALUE BACnetLifeSafetyState = 0xFFFF
 )
 
 var BACnetLifeSafetyStateValues []BACnetLifeSafetyState
@@ -88,6 +90,7 @@ func init() {
 		BACnetLifeSafetyState_GENERAL_ALARM,
 		BACnetLifeSafetyState_SUPERVISORY,
 		BACnetLifeSafetyState_TEST_SUPERVISORY,
+		BACnetLifeSafetyState_VENDOR_PROPRIETARY_VALUE,
 	}
 }
 
@@ -95,6 +98,8 @@ func BACnetLifeSafetyStateByValue(value uint16) BACnetLifeSafetyState {
 	switch value {
 	case 0:
 		return BACnetLifeSafetyState_QUIET
+	case 0xFFFF:
+		return BACnetLifeSafetyState_VENDOR_PROPRIETARY_VALUE
 	case 1:
 		return BACnetLifeSafetyState_PRE_ALARM
 	case 10:
@@ -149,6 +154,8 @@ func BACnetLifeSafetyStateByName(value string) BACnetLifeSafetyState {
 	switch value {
 	case "QUIET":
 		return BACnetLifeSafetyState_QUIET
+	case "VENDOR_PROPRIETARY_VALUE":
+		return BACnetLifeSafetyState_VENDOR_PROPRIETARY_VALUE
 	case "PRE_ALARM":
 		return BACnetLifeSafetyState_PRE_ALARM
 	case "TEST_ACTIVE":
@@ -242,6 +249,8 @@ func (e BACnetLifeSafetyState) name() string {
 	switch e {
 	case BACnetLifeSafetyState_QUIET:
 		return "QUIET"
+	case BACnetLifeSafetyState_VENDOR_PROPRIETARY_VALUE:
+		return "VENDOR_PROPRIETARY_VALUE"
 	case BACnetLifeSafetyState_PRE_ALARM:
 		return "PRE_ALARM"
 	case BACnetLifeSafetyState_TEST_ACTIVE:
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetReliabilityTagged.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetLifeSafetyStateTagged.go
similarity index 66%
copy from plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetReliabilityTagged.go
copy to plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetLifeSafetyStateTagged.go
index 5b7b38b553..95d8b45daf 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetReliabilityTagged.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetLifeSafetyStateTagged.go
@@ -26,23 +26,23 @@ import (
 
 // Code generated by code-generation. DO NOT EDIT.
 
-// BACnetReliabilityTagged is the data-structure of this message
-type BACnetReliabilityTagged struct {
+// BACnetLifeSafetyStateTagged is the data-structure of this message
+type BACnetLifeSafetyStateTagged struct {
 	Header           *BACnetTagHeader
-	Value            BACnetReliability
+	Value            BACnetLifeSafetyState
 	ProprietaryValue uint32
 
 	// Arguments.
-	TagClass  TagClass
 	TagNumber uint8
+	TagClass  TagClass
 }
 
-// IBACnetReliabilityTagged is the corresponding interface of BACnetReliabilityTagged
-type IBACnetReliabilityTagged interface {
+// IBACnetLifeSafetyStateTagged is the corresponding interface of BACnetLifeSafetyStateTagged
+type IBACnetLifeSafetyStateTagged interface {
 	// GetHeader returns Header (property field)
 	GetHeader() *BACnetTagHeader
 	// GetValue returns Value (property field)
-	GetValue() BACnetReliability
+	GetValue() BACnetLifeSafetyState
 	// GetProprietaryValue returns ProprietaryValue (property field)
 	GetProprietaryValue() uint32
 	// GetIsProprietary returns IsProprietary (virtual field)
@@ -60,15 +60,15 @@ type IBACnetReliabilityTagged interface {
 /////////////////////// Accessors for property fields.
 ///////////////////////
 
-func (m *BACnetReliabilityTagged) GetHeader() *BACnetTagHeader {
+func (m *BACnetLifeSafetyStateTagged) GetHeader() *BACnetTagHeader {
 	return m.Header
 }
 
-func (m *BACnetReliabilityTagged) GetValue() BACnetReliability {
+func (m *BACnetLifeSafetyStateTagged) GetValue() BACnetLifeSafetyState {
 	return m.Value
 }
 
-func (m *BACnetReliabilityTagged) GetProprietaryValue() uint32 {
+func (m *BACnetLifeSafetyStateTagged) GetProprietaryValue() uint32 {
 	return m.ProprietaryValue
 }
 
@@ -81,8 +81,8 @@ func (m *BACnetReliabilityTagged) GetProprietaryValue() uint32 {
 /////////////////////// Accessors for virtual fields.
 ///////////////////////
 
-func (m *BACnetReliabilityTagged) GetIsProprietary() bool {
-	return bool(bool((m.GetValue()) == (BACnetReliability_VENDOR_PROPRIETARY_VALUE)))
+func (m *BACnetLifeSafetyStateTagged) GetIsProprietary() bool {
+	return bool(bool((m.GetValue()) == (BACnetLifeSafetyState_VENDOR_PROPRIETARY_VALUE)))
 }
 
 ///////////////////////
@@ -90,30 +90,30 @@ func (m *BACnetReliabilityTagged) GetIsProprietary() bool {
 ///////////////////////////////////////////////////////////
 ///////////////////////////////////////////////////////////
 
-// NewBACnetReliabilityTagged factory function for BACnetReliabilityTagged
-func NewBACnetReliabilityTagged(header *BACnetTagHeader, value BACnetReliability, proprietaryValue uint32, tagClass TagClass, tagNumber uint8) *BACnetReliabilityTagged {
-	return &BACnetReliabilityTagged{Header: header, Value: value, ProprietaryValue: proprietaryValue, TagClass: tagClass, TagNumber: tagNumber}
+// NewBACnetLifeSafetyStateTagged factory function for BACnetLifeSafetyStateTagged
+func NewBACnetLifeSafetyStateTagged(header *BACnetTagHeader, value BACnetLifeSafetyState, proprietaryValue uint32, tagNumber uint8, tagClass TagClass) *BACnetLifeSafetyStateTagged {
+	return &BACnetLifeSafetyStateTagged{Header: header, Value: value, ProprietaryValue: proprietaryValue, TagNumber: tagNumber, TagClass: tagClass}
 }
 
-func CastBACnetReliabilityTagged(structType interface{}) *BACnetReliabilityTagged {
-	if casted, ok := structType.(BACnetReliabilityTagged); ok {
+func CastBACnetLifeSafetyStateTagged(structType interface{}) *BACnetLifeSafetyStateTagged {
+	if casted, ok := structType.(BACnetLifeSafetyStateTagged); ok {
 		return &casted
 	}
-	if casted, ok := structType.(*BACnetReliabilityTagged); ok {
+	if casted, ok := structType.(*BACnetLifeSafetyStateTagged); ok {
 		return casted
 	}
 	return nil
 }
 
-func (m *BACnetReliabilityTagged) GetTypeName() string {
-	return "BACnetReliabilityTagged"
+func (m *BACnetLifeSafetyStateTagged) GetTypeName() string {
+	return "BACnetLifeSafetyStateTagged"
 }
 
-func (m *BACnetReliabilityTagged) GetLengthInBits() uint16 {
+func (m *BACnetLifeSafetyStateTagged) GetLengthInBits() uint16 {
 	return m.GetLengthInBitsConditional(false)
 }
 
-func (m *BACnetReliabilityTagged) GetLengthInBitsConditional(lastItem bool) uint16 {
+func (m *BACnetLifeSafetyStateTagged) GetLengthInBitsConditional(lastItem bool) uint16 {
 	lengthInBits := uint16(0)
 
 	// Simple field (header)
@@ -125,19 +125,19 @@ func (m *BACnetReliabilityTagged) GetLengthInBitsConditional(lastItem bool) uint
 	// A virtual field doesn't have any in- or output.
 
 	// Manual Field (proprietaryValue)
-	lengthInBits += uint16(int32(m.GetHeader().GetActualLength()) * int32(int32(8)))
+	lengthInBits += uint16(utils.InlineIf(m.GetIsProprietary(), func() interface{} { return int32(int32(m.GetHeader().GetActualLength()) * int32(int32(8))) }, func() interface{} { return int32(int32(0)) }).(int32))
 
 	return lengthInBits
 }
 
-func (m *BACnetReliabilityTagged) GetLengthInBytes() uint16 {
+func (m *BACnetLifeSafetyStateTagged) GetLengthInBytes() uint16 {
 	return m.GetLengthInBits() / 8
 }
 
-func BACnetReliabilityTaggedParse(readBuffer utils.ReadBuffer, tagClass TagClass, tagNumber uint8) (*BACnetReliabilityTagged, error) {
+func BACnetLifeSafetyStateTaggedParse(readBuffer utils.ReadBuffer, tagNumber uint8, tagClass TagClass) (*BACnetLifeSafetyStateTagged, error) {
 	positionAware := readBuffer
 	_ = positionAware
-	if pullErr := readBuffer.PullContext("BACnetReliabilityTagged"); pullErr != nil {
+	if pullErr := readBuffer.PullContext("BACnetLifeSafetyStateTagged"); pullErr != nil {
 		return nil, pullErr
 	}
 	currentPos := positionAware.GetPos()
@@ -158,7 +158,7 @@ func BACnetReliabilityTaggedParse(readBuffer utils.ReadBuffer, tagClass TagClass
 
 	// Validation
 	if !(bool((header.GetTagClass()) == (tagClass))) {
-		return nil, utils.ParseValidationError{"tag doesn't match"}
+		return nil, utils.ParseValidationError{"tag class doesn't match"}
 	}
 
 	// Validation
@@ -167,14 +167,14 @@ func BACnetReliabilityTaggedParse(readBuffer utils.ReadBuffer, tagClass TagClass
 	}
 
 	// Manual Field (value)
-	_value, _valueErr := ReadEnumGeneric(readBuffer, header.GetActualLength(), BACnetReliability_VENDOR_PROPRIETARY_VALUE)
+	_value, _valueErr := ReadEnumGeneric(readBuffer, header.GetActualLength(), BACnetLifeSafetyState_VENDOR_PROPRIETARY_VALUE)
 	if _valueErr != nil {
 		return nil, errors.Wrap(_valueErr, "Error parsing 'value' field")
 	}
-	value := _value.(BACnetReliability)
+	value := _value.(BACnetLifeSafetyState)
 
 	// Virtual field
-	_isProprietary := bool((value) == (BACnetReliability_VENDOR_PROPRIETARY_VALUE))
+	_isProprietary := bool((value) == (BACnetLifeSafetyState_VENDOR_PROPRIETARY_VALUE))
 	isProprietary := bool(_isProprietary)
 	_ = isProprietary
 
@@ -185,18 +185,18 @@ func BACnetReliabilityTaggedParse(readBuffer utils.ReadBuffer, tagClass TagClass
 	}
 	proprietaryValue := _proprietaryValue.(uint32)
 
-	if closeErr := readBuffer.CloseContext("BACnetReliabilityTagged"); closeErr != nil {
+	if closeErr := readBuffer.CloseContext("BACnetLifeSafetyStateTagged"); closeErr != nil {
 		return nil, closeErr
 	}
 
 	// Create the instance
-	return NewBACnetReliabilityTagged(header, value, proprietaryValue, tagClass, tagNumber), nil
+	return NewBACnetLifeSafetyStateTagged(header, value, proprietaryValue, tagNumber, tagClass), nil
 }
 
-func (m *BACnetReliabilityTagged) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *BACnetLifeSafetyStateTagged) Serialize(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
-	if pushErr := writeBuffer.PushContext("BACnetReliabilityTagged"); pushErr != nil {
+	if pushErr := writeBuffer.PushContext("BACnetLifeSafetyStateTagged"); pushErr != nil {
 		return pushErr
 	}
 
@@ -228,13 +228,13 @@ func (m *BACnetReliabilityTagged) Serialize(writeBuffer utils.WriteBuffer) error
 		return errors.Wrap(_proprietaryValueErr, "Error serializing 'proprietaryValue' field")
 	}
 
-	if popErr := writeBuffer.PopContext("BACnetReliabilityTagged"); popErr != nil {
+	if popErr := writeBuffer.PopContext("BACnetLifeSafetyStateTagged"); popErr != nil {
 		return popErr
 	}
 	return nil
 }
 
-func (m *BACnetReliabilityTagged) String() string {
+func (m *BACnetLifeSafetyStateTagged) String() string {
 	if m == nil {
 		return "<nil>"
 	}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNetworkType.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNetworkType.go
index 2d4ced4e92..2b5dda5337 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNetworkType.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNetworkType.go
@@ -26,6 +26,7 @@ import (
 
 // Code generated by code-generation. DO NOT EDIT.
 
+// BACnetNetworkType is an enum
 type BACnetNetworkType uint8
 
 type IBACnetNetworkType interface {
@@ -33,17 +34,18 @@ type IBACnetNetworkType interface {
 }
 
 const (
-	BACnetNetworkType_ETHERNET           BACnetNetworkType = 0x0
-	BACnetNetworkType_ARCNET             BACnetNetworkType = 0x1
-	BACnetNetworkType_MSTP               BACnetNetworkType = 0x2
-	BACnetNetworkType_PTP                BACnetNetworkType = 0x3
-	BACnetNetworkType_LONTALK            BACnetNetworkType = 0x4
-	BACnetNetworkType_IPV4               BACnetNetworkType = 0x5
-	BACnetNetworkType_ZIGBEE             BACnetNetworkType = 0x6
-	BACnetNetworkType_VIRTUAL            BACnetNetworkType = 0x7
-	BACnetNetworkType_REMOVED_NON_BACNET BACnetNetworkType = 0x8
-	BACnetNetworkType_IPV6               BACnetNetworkType = 0x9
-	BACnetNetworkType_SERIAL             BACnetNetworkType = 0xA
+	BACnetNetworkType_ETHERNET                 BACnetNetworkType = 0x0
+	BACnetNetworkType_ARCNET                   BACnetNetworkType = 0x1
+	BACnetNetworkType_MSTP                     BACnetNetworkType = 0x2
+	BACnetNetworkType_PTP                      BACnetNetworkType = 0x3
+	BACnetNetworkType_LONTALK                  BACnetNetworkType = 0x4
+	BACnetNetworkType_IPV4                     BACnetNetworkType = 0x5
+	BACnetNetworkType_ZIGBEE                   BACnetNetworkType = 0x6
+	BACnetNetworkType_VIRTUAL                  BACnetNetworkType = 0x7
+	BACnetNetworkType_REMOVED_NON_BACNET       BACnetNetworkType = 0x8
+	BACnetNetworkType_IPV6                     BACnetNetworkType = 0x9
+	BACnetNetworkType_SERIAL                   BACnetNetworkType = 0xA
+	BACnetNetworkType_VENDOR_PROPRIETARY_VALUE BACnetNetworkType = 0xFF
 )
 
 var BACnetNetworkTypeValues []BACnetNetworkType
@@ -62,11 +64,14 @@ func init() {
 		BACnetNetworkType_REMOVED_NON_BACNET,
 		BACnetNetworkType_IPV6,
 		BACnetNetworkType_SERIAL,
+		BACnetNetworkType_VENDOR_PROPRIETARY_VALUE,
 	}
 }
 
 func BACnetNetworkTypeByValue(value uint8) BACnetNetworkType {
 	switch value {
+	case 0xFF:
+		return BACnetNetworkType_VENDOR_PROPRIETARY_VALUE
 	case 0x0:
 		return BACnetNetworkType_ETHERNET
 	case 0x1:
@@ -95,6 +100,8 @@ func BACnetNetworkTypeByValue(value uint8) BACnetNetworkType {
 
 func BACnetNetworkTypeByName(value string) BACnetNetworkType {
 	switch value {
+	case "VENDOR_PROPRIETARY_VALUE":
+		return BACnetNetworkType_VENDOR_PROPRIETARY_VALUE
 	case "ETHERNET":
 		return BACnetNetworkType_ETHERNET
 	case "ARCNET":
@@ -141,7 +148,7 @@ func CastBACnetNetworkType(structType interface{}) BACnetNetworkType {
 }
 
 func (m BACnetNetworkType) GetLengthInBits() uint16 {
-	return 4
+	return 8
 }
 
 func (m BACnetNetworkType) GetLengthInBytes() uint16 {
@@ -149,7 +156,7 @@ func (m BACnetNetworkType) GetLengthInBytes() uint16 {
 }
 
 func BACnetNetworkTypeParse(readBuffer utils.ReadBuffer) (BACnetNetworkType, error) {
-	val, err := readBuffer.ReadUint8("BACnetNetworkType", 4)
+	val, err := readBuffer.ReadUint8("BACnetNetworkType", 8)
 	if err != nil {
 		return 0, nil
 	}
@@ -157,11 +164,13 @@ func BACnetNetworkTypeParse(readBuffer utils.ReadBuffer) (BACnetNetworkType, err
 }
 
 func (e BACnetNetworkType) Serialize(writeBuffer utils.WriteBuffer) error {
-	return writeBuffer.WriteUint8("BACnetNetworkType", 4, uint8(e), utils.WithAdditionalStringRepresentation(e.name()))
+	return writeBuffer.WriteUint8("BACnetNetworkType", 8, uint8(e), utils.WithAdditionalStringRepresentation(e.name()))
 }
 
 func (e BACnetNetworkType) name() string {
 	switch e {
+	case BACnetNetworkType_VENDOR_PROPRIETARY_VALUE:
+		return "VENDOR_PROPRIETARY_VALUE"
 	case BACnetNetworkType_ETHERNET:
 		return "ETHERNET"
 	case BACnetNetworkType_ARCNET:
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetReliabilityTagged.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNetworkTypeTagged.go
similarity index 72%
copy from plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetReliabilityTagged.go
copy to plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNetworkTypeTagged.go
index 5b7b38b553..14c38fd6ec 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetReliabilityTagged.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNetworkTypeTagged.go
@@ -26,23 +26,23 @@ import (
 
 // Code generated by code-generation. DO NOT EDIT.
 
-// BACnetReliabilityTagged is the data-structure of this message
-type BACnetReliabilityTagged struct {
+// BACnetNetworkTypeTagged is the data-structure of this message
+type BACnetNetworkTypeTagged struct {
 	Header           *BACnetTagHeader
-	Value            BACnetReliability
+	Value            BACnetNetworkType
 	ProprietaryValue uint32
 
 	// Arguments.
-	TagClass  TagClass
 	TagNumber uint8
+	TagClass  TagClass
 }
 
-// IBACnetReliabilityTagged is the corresponding interface of BACnetReliabilityTagged
-type IBACnetReliabilityTagged interface {
+// IBACnetNetworkTypeTagged is the corresponding interface of BACnetNetworkTypeTagged
+type IBACnetNetworkTypeTagged interface {
 	// GetHeader returns Header (property field)
 	GetHeader() *BACnetTagHeader
 	// GetValue returns Value (property field)
-	GetValue() BACnetReliability
+	GetValue() BACnetNetworkType
 	// GetProprietaryValue returns ProprietaryValue (property field)
 	GetProprietaryValue() uint32
 	// GetIsProprietary returns IsProprietary (virtual field)
@@ -60,15 +60,15 @@ type IBACnetReliabilityTagged interface {
 /////////////////////// Accessors for property fields.
 ///////////////////////
 
-func (m *BACnetReliabilityTagged) GetHeader() *BACnetTagHeader {
+func (m *BACnetNetworkTypeTagged) GetHeader() *BACnetTagHeader {
 	return m.Header
 }
 
-func (m *BACnetReliabilityTagged) GetValue() BACnetReliability {
+func (m *BACnetNetworkTypeTagged) GetValue() BACnetNetworkType {
 	return m.Value
 }
 
-func (m *BACnetReliabilityTagged) GetProprietaryValue() uint32 {
+func (m *BACnetNetworkTypeTagged) GetProprietaryValue() uint32 {
 	return m.ProprietaryValue
 }
 
@@ -81,8 +81,8 @@ func (m *BACnetReliabilityTagged) GetProprietaryValue() uint32 {
 /////////////////////// Accessors for virtual fields.
 ///////////////////////
 
-func (m *BACnetReliabilityTagged) GetIsProprietary() bool {
-	return bool(bool((m.GetValue()) == (BACnetReliability_VENDOR_PROPRIETARY_VALUE)))
+func (m *BACnetNetworkTypeTagged) GetIsProprietary() bool {
+	return bool(bool((m.GetValue()) == (BACnetNetworkType_VENDOR_PROPRIETARY_VALUE)))
 }
 
 ///////////////////////
@@ -90,30 +90,30 @@ func (m *BACnetReliabilityTagged) GetIsProprietary() bool {
 ///////////////////////////////////////////////////////////
 ///////////////////////////////////////////////////////////
 
-// NewBACnetReliabilityTagged factory function for BACnetReliabilityTagged
-func NewBACnetReliabilityTagged(header *BACnetTagHeader, value BACnetReliability, proprietaryValue uint32, tagClass TagClass, tagNumber uint8) *BACnetReliabilityTagged {
-	return &BACnetReliabilityTagged{Header: header, Value: value, ProprietaryValue: proprietaryValue, TagClass: tagClass, TagNumber: tagNumber}
+// NewBACnetNetworkTypeTagged factory function for BACnetNetworkTypeTagged
+func NewBACnetNetworkTypeTagged(header *BACnetTagHeader, value BACnetNetworkType, proprietaryValue uint32, tagNumber uint8, tagClass TagClass) *BACnetNetworkTypeTagged {
+	return &BACnetNetworkTypeTagged{Header: header, Value: value, ProprietaryValue: proprietaryValue, TagNumber: tagNumber, TagClass: tagClass}
 }
 
-func CastBACnetReliabilityTagged(structType interface{}) *BACnetReliabilityTagged {
-	if casted, ok := structType.(BACnetReliabilityTagged); ok {
+func CastBACnetNetworkTypeTagged(structType interface{}) *BACnetNetworkTypeTagged {
+	if casted, ok := structType.(BACnetNetworkTypeTagged); ok {
 		return &casted
 	}
-	if casted, ok := structType.(*BACnetReliabilityTagged); ok {
+	if casted, ok := structType.(*BACnetNetworkTypeTagged); ok {
 		return casted
 	}
 	return nil
 }
 
-func (m *BACnetReliabilityTagged) GetTypeName() string {
-	return "BACnetReliabilityTagged"
+func (m *BACnetNetworkTypeTagged) GetTypeName() string {
+	return "BACnetNetworkTypeTagged"
 }
 
-func (m *BACnetReliabilityTagged) GetLengthInBits() uint16 {
+func (m *BACnetNetworkTypeTagged) GetLengthInBits() uint16 {
 	return m.GetLengthInBitsConditional(false)
 }
 
-func (m *BACnetReliabilityTagged) GetLengthInBitsConditional(lastItem bool) uint16 {
+func (m *BACnetNetworkTypeTagged) GetLengthInBitsConditional(lastItem bool) uint16 {
 	lengthInBits := uint16(0)
 
 	// Simple field (header)
@@ -130,14 +130,14 @@ func (m *BACnetReliabilityTagged) GetLengthInBitsConditional(lastItem bool) uint
 	return lengthInBits
 }
 
-func (m *BACnetReliabilityTagged) GetLengthInBytes() uint16 {
+func (m *BACnetNetworkTypeTagged) GetLengthInBytes() uint16 {
 	return m.GetLengthInBits() / 8
 }
 
-func BACnetReliabilityTaggedParse(readBuffer utils.ReadBuffer, tagClass TagClass, tagNumber uint8) (*BACnetReliabilityTagged, error) {
+func BACnetNetworkTypeTaggedParse(readBuffer utils.ReadBuffer, tagNumber uint8, tagClass TagClass) (*BACnetNetworkTypeTagged, error) {
 	positionAware := readBuffer
 	_ = positionAware
-	if pullErr := readBuffer.PullContext("BACnetReliabilityTagged"); pullErr != nil {
+	if pullErr := readBuffer.PullContext("BACnetNetworkTypeTagged"); pullErr != nil {
 		return nil, pullErr
 	}
 	currentPos := positionAware.GetPos()
@@ -158,7 +158,7 @@ func BACnetReliabilityTaggedParse(readBuffer utils.ReadBuffer, tagClass TagClass
 
 	// Validation
 	if !(bool((header.GetTagClass()) == (tagClass))) {
-		return nil, utils.ParseValidationError{"tag doesn't match"}
+		return nil, utils.ParseValidationError{"tag class doesn't match"}
 	}
 
 	// Validation
@@ -167,14 +167,14 @@ func BACnetReliabilityTaggedParse(readBuffer utils.ReadBuffer, tagClass TagClass
 	}
 
 	// Manual Field (value)
-	_value, _valueErr := ReadEnumGeneric(readBuffer, header.GetActualLength(), BACnetReliability_VENDOR_PROPRIETARY_VALUE)
+	_value, _valueErr := ReadEnumGeneric(readBuffer, header.GetActualLength(), BACnetNetworkType_VENDOR_PROPRIETARY_VALUE)
 	if _valueErr != nil {
 		return nil, errors.Wrap(_valueErr, "Error parsing 'value' field")
 	}
-	value := _value.(BACnetReliability)
+	value := _value.(BACnetNetworkType)
 
 	// Virtual field
-	_isProprietary := bool((value) == (BACnetReliability_VENDOR_PROPRIETARY_VALUE))
+	_isProprietary := bool((value) == (BACnetNetworkType_VENDOR_PROPRIETARY_VALUE))
 	isProprietary := bool(_isProprietary)
 	_ = isProprietary
 
@@ -185,18 +185,18 @@ func BACnetReliabilityTaggedParse(readBuffer utils.ReadBuffer, tagClass TagClass
 	}
 	proprietaryValue := _proprietaryValue.(uint32)
 
-	if closeErr := readBuffer.CloseContext("BACnetReliabilityTagged"); closeErr != nil {
+	if closeErr := readBuffer.CloseContext("BACnetNetworkTypeTagged"); closeErr != nil {
 		return nil, closeErr
 	}
 
 	// Create the instance
-	return NewBACnetReliabilityTagged(header, value, proprietaryValue, tagClass, tagNumber), nil
+	return NewBACnetNetworkTypeTagged(header, value, proprietaryValue, tagNumber, tagClass), nil
 }
 
-func (m *BACnetReliabilityTagged) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *BACnetNetworkTypeTagged) Serialize(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
-	if pushErr := writeBuffer.PushContext("BACnetReliabilityTagged"); pushErr != nil {
+	if pushErr := writeBuffer.PushContext("BACnetNetworkTypeTagged"); pushErr != nil {
 		return pushErr
 	}
 
@@ -228,13 +228,13 @@ func (m *BACnetReliabilityTagged) Serialize(writeBuffer utils.WriteBuffer) error
 		return errors.Wrap(_proprietaryValueErr, "Error serializing 'proprietaryValue' field")
 	}
 
-	if popErr := writeBuffer.PopContext("BACnetReliabilityTagged"); popErr != nil {
+	if popErr := writeBuffer.PopContext("BACnetNetworkTypeTagged"); popErr != nil {
 		return popErr
 	}
 	return nil
 }
 
-func (m *BACnetReliabilityTagged) String() string {
+func (m *BACnetNetworkTypeTagged) String() string {
 	if m == nil {
 		return "<nil>"
 	}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNodeType.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNodeType.go
index 345571fe74..4bd722bbad 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNodeType.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNodeType.go
@@ -26,6 +26,7 @@ import (
 
 // Code generated by code-generation. DO NOT EDIT.
 
+// BACnetNodeType is an enum
 type BACnetNodeType uint8
 
 type IBACnetNodeType interface {
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersCommandFailure.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersCommandFailure.go
index 0a53ab79dd..280386be91 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersCommandFailure.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotificationParametersCommandFailure.go
@@ -200,7 +200,7 @@ func BACnetNotificationParametersCommandFailureParse(readBuffer utils.ReadBuffer
 	if pullErr := readBuffer.PullContext("commandValue"); pullErr != nil {
 		return nil, pullErr
 	}
-	_commandValue, _commandValueErr := BACnetConstructedDataParse(readBuffer, uint8(uint8(0)), BACnetObjectType(objectType), DummyPropertyIdentifier())
+	_commandValue, _commandValueErr := BACnetConstructedDataParse(readBuffer, uint8(uint8(0)), BACnetObjectType(objectType), BACnetPropertyIdentifier(BACnetPropertyIdentifier_VENDOR_PROPRIETARY_VALUE))
 	if _commandValueErr != nil {
 		return nil, errors.Wrap(_commandValueErr, "Error parsing 'commandValue' field")
 	}
@@ -226,7 +226,7 @@ func BACnetNotificationParametersCommandFailureParse(readBuffer utils.ReadBuffer
 	if pullErr := readBuffer.PullContext("feedbackValue"); pullErr != nil {
 		return nil, pullErr
 	}
-	_feedbackValue, _feedbackValueErr := BACnetConstructedDataParse(readBuffer, uint8(uint8(2)), BACnetObjectType(objectType), DummyPropertyIdentifier())
+	_feedbackValue, _feedbackValueErr := BACnetConstructedDataParse(readBuffer, uint8(uint8(2)), BACnetObjectType(objectType), BACnetPropertyIdentifier(BACnetPropertyIdentifier_VENDOR_PROPRIETARY_VALUE))
 	if _feedbackValueErr != nil {
 		return nil, errors.Wrap(_feedbackValueErr, "Error parsing 'feedbackValue' field")
 	}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotifyType.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotifyType.go
index 46a426d248..225bc449be 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotifyType.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotifyType.go
@@ -26,6 +26,7 @@ import (
 
 // Code generated by code-generation. DO NOT EDIT.
 
+// BACnetNotifyType is an enum
 type BACnetNotifyType uint8
 
 type IBACnetNotifyType interface {
@@ -33,9 +34,10 @@ type IBACnetNotifyType interface {
 }
 
 const (
-	BACnetNotifyType_ALARM            BACnetNotifyType = 0x0
-	BACnetNotifyType_EVENT            BACnetNotifyType = 0x1
-	BACnetNotifyType_ACK_NOTIFICATION BACnetNotifyType = 0x2
+	BACnetNotifyType_ALARM                    BACnetNotifyType = 0x0
+	BACnetNotifyType_EVENT                    BACnetNotifyType = 0x1
+	BACnetNotifyType_ACK_NOTIFICATION         BACnetNotifyType = 0x2
+	BACnetNotifyType_VENDOR_PROPRIETARY_VALUE BACnetNotifyType = 0xFF
 )
 
 var BACnetNotifyTypeValues []BACnetNotifyType
@@ -46,6 +48,7 @@ func init() {
 		BACnetNotifyType_ALARM,
 		BACnetNotifyType_EVENT,
 		BACnetNotifyType_ACK_NOTIFICATION,
+		BACnetNotifyType_VENDOR_PROPRIETARY_VALUE,
 	}
 }
 
@@ -57,6 +60,8 @@ func BACnetNotifyTypeByValue(value uint8) BACnetNotifyType {
 		return BACnetNotifyType_EVENT
 	case 0x2:
 		return BACnetNotifyType_ACK_NOTIFICATION
+	case 0xFF:
+		return BACnetNotifyType_VENDOR_PROPRIETARY_VALUE
 	}
 	return 0
 }
@@ -69,6 +74,8 @@ func BACnetNotifyTypeByName(value string) BACnetNotifyType {
 		return BACnetNotifyType_EVENT
 	case "ACK_NOTIFICATION":
 		return BACnetNotifyType_ACK_NOTIFICATION
+	case "VENDOR_PROPRIETARY_VALUE":
+		return BACnetNotifyType_VENDOR_PROPRIETARY_VALUE
 	}
 	return 0
 }
@@ -120,6 +127,8 @@ func (e BACnetNotifyType) name() string {
 		return "EVENT"
 	case BACnetNotifyType_ACK_NOTIFICATION:
 		return "ACK_NOTIFICATION"
+	case BACnetNotifyType_VENDOR_PROPRIETARY_VALUE:
+		return "VENDOR_PROPRIETARY_VALUE"
 	}
 	return ""
 }
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetReliabilityTagged.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotifyTypeTagged.go
similarity index 68%
copy from plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetReliabilityTagged.go
copy to plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotifyTypeTagged.go
index 5b7b38b553..f0b6842930 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetReliabilityTagged.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotifyTypeTagged.go
@@ -26,23 +26,23 @@ import (
 
 // Code generated by code-generation. DO NOT EDIT.
 
-// BACnetReliabilityTagged is the data-structure of this message
-type BACnetReliabilityTagged struct {
+// BACnetNotifyTypeTagged is the data-structure of this message
+type BACnetNotifyTypeTagged struct {
 	Header           *BACnetTagHeader
-	Value            BACnetReliability
+	Value            BACnetNotifyType
 	ProprietaryValue uint32
 
 	// Arguments.
-	TagClass  TagClass
 	TagNumber uint8
+	TagClass  TagClass
 }
 
-// IBACnetReliabilityTagged is the corresponding interface of BACnetReliabilityTagged
-type IBACnetReliabilityTagged interface {
+// IBACnetNotifyTypeTagged is the corresponding interface of BACnetNotifyTypeTagged
+type IBACnetNotifyTypeTagged interface {
 	// GetHeader returns Header (property field)
 	GetHeader() *BACnetTagHeader
 	// GetValue returns Value (property field)
-	GetValue() BACnetReliability
+	GetValue() BACnetNotifyType
 	// GetProprietaryValue returns ProprietaryValue (property field)
 	GetProprietaryValue() uint32
 	// GetIsProprietary returns IsProprietary (virtual field)
@@ -60,15 +60,15 @@ type IBACnetReliabilityTagged interface {
 /////////////////////// Accessors for property fields.
 ///////////////////////
 
-func (m *BACnetReliabilityTagged) GetHeader() *BACnetTagHeader {
+func (m *BACnetNotifyTypeTagged) GetHeader() *BACnetTagHeader {
 	return m.Header
 }
 
-func (m *BACnetReliabilityTagged) GetValue() BACnetReliability {
+func (m *BACnetNotifyTypeTagged) GetValue() BACnetNotifyType {
 	return m.Value
 }
 
-func (m *BACnetReliabilityTagged) GetProprietaryValue() uint32 {
+func (m *BACnetNotifyTypeTagged) GetProprietaryValue() uint32 {
 	return m.ProprietaryValue
 }
 
@@ -81,8 +81,8 @@ func (m *BACnetReliabilityTagged) GetProprietaryValue() uint32 {
 /////////////////////// Accessors for virtual fields.
 ///////////////////////
 
-func (m *BACnetReliabilityTagged) GetIsProprietary() bool {
-	return bool(bool((m.GetValue()) == (BACnetReliability_VENDOR_PROPRIETARY_VALUE)))
+func (m *BACnetNotifyTypeTagged) GetIsProprietary() bool {
+	return bool(bool((m.GetValue()) == (BACnetNotifyType_VENDOR_PROPRIETARY_VALUE)))
 }
 
 ///////////////////////
@@ -90,30 +90,30 @@ func (m *BACnetReliabilityTagged) GetIsProprietary() bool {
 ///////////////////////////////////////////////////////////
 ///////////////////////////////////////////////////////////
 
-// NewBACnetReliabilityTagged factory function for BACnetReliabilityTagged
-func NewBACnetReliabilityTagged(header *BACnetTagHeader, value BACnetReliability, proprietaryValue uint32, tagClass TagClass, tagNumber uint8) *BACnetReliabilityTagged {
-	return &BACnetReliabilityTagged{Header: header, Value: value, ProprietaryValue: proprietaryValue, TagClass: tagClass, TagNumber: tagNumber}
+// NewBACnetNotifyTypeTagged factory function for BACnetNotifyTypeTagged
+func NewBACnetNotifyTypeTagged(header *BACnetTagHeader, value BACnetNotifyType, proprietaryValue uint32, tagNumber uint8, tagClass TagClass) *BACnetNotifyTypeTagged {
+	return &BACnetNotifyTypeTagged{Header: header, Value: value, ProprietaryValue: proprietaryValue, TagNumber: tagNumber, TagClass: tagClass}
 }
 
-func CastBACnetReliabilityTagged(structType interface{}) *BACnetReliabilityTagged {
-	if casted, ok := structType.(BACnetReliabilityTagged); ok {
+func CastBACnetNotifyTypeTagged(structType interface{}) *BACnetNotifyTypeTagged {
+	if casted, ok := structType.(BACnetNotifyTypeTagged); ok {
 		return &casted
 	}
-	if casted, ok := structType.(*BACnetReliabilityTagged); ok {
+	if casted, ok := structType.(*BACnetNotifyTypeTagged); ok {
 		return casted
 	}
 	return nil
 }
 
-func (m *BACnetReliabilityTagged) GetTypeName() string {
-	return "BACnetReliabilityTagged"
+func (m *BACnetNotifyTypeTagged) GetTypeName() string {
+	return "BACnetNotifyTypeTagged"
 }
 
-func (m *BACnetReliabilityTagged) GetLengthInBits() uint16 {
+func (m *BACnetNotifyTypeTagged) GetLengthInBits() uint16 {
 	return m.GetLengthInBitsConditional(false)
 }
 
-func (m *BACnetReliabilityTagged) GetLengthInBitsConditional(lastItem bool) uint16 {
+func (m *BACnetNotifyTypeTagged) GetLengthInBitsConditional(lastItem bool) uint16 {
 	lengthInBits := uint16(0)
 
 	// Simple field (header)
@@ -125,19 +125,19 @@ func (m *BACnetReliabilityTagged) GetLengthInBitsConditional(lastItem bool) uint
 	// A virtual field doesn't have any in- or output.
 
 	// Manual Field (proprietaryValue)
-	lengthInBits += uint16(int32(m.GetHeader().GetActualLength()) * int32(int32(8)))
+	lengthInBits += uint16(utils.InlineIf(m.GetIsProprietary(), func() interface{} { return int32(int32(m.GetHeader().GetActualLength()) * int32(int32(8))) }, func() interface{} { return int32(int32(0)) }).(int32))
 
 	return lengthInBits
 }
 
-func (m *BACnetReliabilityTagged) GetLengthInBytes() uint16 {
+func (m *BACnetNotifyTypeTagged) GetLengthInBytes() uint16 {
 	return m.GetLengthInBits() / 8
 }
 
-func BACnetReliabilityTaggedParse(readBuffer utils.ReadBuffer, tagClass TagClass, tagNumber uint8) (*BACnetReliabilityTagged, error) {
+func BACnetNotifyTypeTaggedParse(readBuffer utils.ReadBuffer, tagNumber uint8, tagClass TagClass) (*BACnetNotifyTypeTagged, error) {
 	positionAware := readBuffer
 	_ = positionAware
-	if pullErr := readBuffer.PullContext("BACnetReliabilityTagged"); pullErr != nil {
+	if pullErr := readBuffer.PullContext("BACnetNotifyTypeTagged"); pullErr != nil {
 		return nil, pullErr
 	}
 	currentPos := positionAware.GetPos()
@@ -158,7 +158,7 @@ func BACnetReliabilityTaggedParse(readBuffer utils.ReadBuffer, tagClass TagClass
 
 	// Validation
 	if !(bool((header.GetTagClass()) == (tagClass))) {
-		return nil, utils.ParseValidationError{"tag doesn't match"}
+		return nil, utils.ParseValidationError{"tag class doesn't match"}
 	}
 
 	// Validation
@@ -167,14 +167,14 @@ func BACnetReliabilityTaggedParse(readBuffer utils.ReadBuffer, tagClass TagClass
 	}
 
 	// Manual Field (value)
-	_value, _valueErr := ReadEnumGeneric(readBuffer, header.GetActualLength(), BACnetReliability_VENDOR_PROPRIETARY_VALUE)
+	_value, _valueErr := ReadEnumGeneric(readBuffer, header.GetActualLength(), BACnetNotifyType_VENDOR_PROPRIETARY_VALUE)
 	if _valueErr != nil {
 		return nil, errors.Wrap(_valueErr, "Error parsing 'value' field")
 	}
-	value := _value.(BACnetReliability)
+	value := _value.(BACnetNotifyType)
 
 	// Virtual field
-	_isProprietary := bool((value) == (BACnetReliability_VENDOR_PROPRIETARY_VALUE))
+	_isProprietary := bool((value) == (BACnetNotifyType_VENDOR_PROPRIETARY_VALUE))
 	isProprietary := bool(_isProprietary)
 	_ = isProprietary
 
@@ -185,18 +185,18 @@ func BACnetReliabilityTaggedParse(readBuffer utils.ReadBuffer, tagClass TagClass
 	}
 	proprietaryValue := _proprietaryValue.(uint32)
 
-	if closeErr := readBuffer.CloseContext("BACnetReliabilityTagged"); closeErr != nil {
+	if closeErr := readBuffer.CloseContext("BACnetNotifyTypeTagged"); closeErr != nil {
 		return nil, closeErr
 	}
 
 	// Create the instance
-	return NewBACnetReliabilityTagged(header, value, proprietaryValue, tagClass, tagNumber), nil
+	return NewBACnetNotifyTypeTagged(header, value, proprietaryValue, tagNumber, tagClass), nil
 }
 
-func (m *BACnetReliabilityTagged) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *BACnetNotifyTypeTagged) Serialize(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
-	if pushErr := writeBuffer.PushContext("BACnetReliabilityTagged"); pushErr != nil {
+	if pushErr := writeBuffer.PushContext("BACnetNotifyTypeTagged"); pushErr != nil {
 		return pushErr
 	}
 
@@ -228,13 +228,13 @@ func (m *BACnetReliabilityTagged) Serialize(writeBuffer utils.WriteBuffer) error
 		return errors.Wrap(_proprietaryValueErr, "Error serializing 'proprietaryValue' field")
 	}
 
-	if popErr := writeBuffer.PopContext("BACnetReliabilityTagged"); popErr != nil {
+	if popErr := writeBuffer.PopContext("BACnetNotifyTypeTagged"); popErr != nil {
 		return popErr
 	}
 	return nil
 }
 
-func (m *BACnetReliabilityTagged) String() string {
+func (m *BACnetNotifyTypeTagged) String() string {
 	if m == nil {
 		return "<nil>"
 	}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetObjectPropertyReference.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetObjectPropertyReference.go
index 4d109b687c..1ecf82444e 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetObjectPropertyReference.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetObjectPropertyReference.go
@@ -30,7 +30,7 @@ import (
 // BACnetObjectPropertyReference is the data-structure of this message
 type BACnetObjectPropertyReference struct {
 	ObjectIdentifier   *BACnetContextTagObjectIdentifier
-	PropertyIdentifier *BACnetContextTagPropertyIdentifier
+	PropertyIdentifier *BACnetPropertyIdentifierTagged
 	ArrayIndex         *BACnetContextTagUnsignedInteger
 }
 
@@ -39,7 +39,7 @@ type IBACnetObjectPropertyReference interface {
 	// GetObjectIdentifier returns ObjectIdentifier (property field)
 	GetObjectIdentifier() *BACnetContextTagObjectIdentifier
 	// GetPropertyIdentifier returns PropertyIdentifier (property field)
-	GetPropertyIdentifier() *BACnetContextTagPropertyIdentifier
+	GetPropertyIdentifier() *BACnetPropertyIdentifierTagged
 	// GetArrayIndex returns ArrayIndex (property field)
 	GetArrayIndex() *BACnetContextTagUnsignedInteger
 	// GetLengthInBytes returns the length in bytes
@@ -59,7 +59,7 @@ func (m *BACnetObjectPropertyReference) GetObjectIdentifier() *BACnetContextTagO
 	return m.ObjectIdentifier
 }
 
-func (m *BACnetObjectPropertyReference) GetPropertyIdentifier() *BACnetContextTagPropertyIdentifier {
+func (m *BACnetObjectPropertyReference) GetPropertyIdentifier() *BACnetPropertyIdentifierTagged {
 	return m.PropertyIdentifier
 }
 
@@ -73,7 +73,7 @@ func (m *BACnetObjectPropertyReference) GetArrayIndex() *BACnetContextTagUnsigne
 ///////////////////////////////////////////////////////////
 
 // NewBACnetObjectPropertyReference factory function for BACnetObjectPropertyReference
-func NewBACnetObjectPropertyReference(objectIdentifier *BACnetContextTagObjectIdentifier, propertyIdentifier *BACnetContextTagPropertyIdentifier, arrayIndex *BACnetContextTagUnsignedInteger) *BACnetObjectPropertyReference {
+func NewBACnetObjectPropertyReference(objectIdentifier *BACnetContextTagObjectIdentifier, propertyIdentifier *BACnetPropertyIdentifierTagged, arrayIndex *BACnetContextTagUnsignedInteger) *BACnetObjectPropertyReference {
 	return &BACnetObjectPropertyReference{ObjectIdentifier: objectIdentifier, PropertyIdentifier: propertyIdentifier, ArrayIndex: arrayIndex}
 }
 
@@ -142,11 +142,11 @@ func BACnetObjectPropertyReferenceParse(readBuffer utils.ReadBuffer) (*BACnetObj
 	if pullErr := readBuffer.PullContext("propertyIdentifier"); pullErr != nil {
 		return nil, pullErr
 	}
-	_propertyIdentifier, _propertyIdentifierErr := BACnetContextTagParse(readBuffer, uint8(uint8(1)), BACnetDataType(BACnetDataType_BACNET_PROPERTY_IDENTIFIER))
+	_propertyIdentifier, _propertyIdentifierErr := BACnetPropertyIdentifierTaggedParse(readBuffer, uint8(uint8(1)), TagClass(TagClass_CONTEXT_SPECIFIC_TAGS))
 	if _propertyIdentifierErr != nil {
 		return nil, errors.Wrap(_propertyIdentifierErr, "Error parsing 'propertyIdentifier' field")
 	}
-	propertyIdentifier := CastBACnetContextTagPropertyIdentifier(_propertyIdentifier)
+	propertyIdentifier := CastBACnetPropertyIdentifierTagged(_propertyIdentifier)
 	if closeErr := readBuffer.CloseContext("propertyIdentifier"); closeErr != nil {
 		return nil, closeErr
 	}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetObjectType.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetObjectType.go
index fc41311ed2..a6d49aa6a6 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetObjectType.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetObjectType.go
@@ -26,6 +26,7 @@ import (
 
 // Code generated by code-generation. DO NOT EDIT.
 
+// BACnetObjectType is an enum
 type BACnetObjectType uint16
 
 type IBACnetObjectType interface {
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetPropertyIdentifier.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetPropertyIdentifier.go
index f89dd72f6e..7873a6eef1 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetPropertyIdentifier.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetPropertyIdentifier.go
@@ -26,6 +26,7 @@ import (
 
 // Code generated by code-generation. DO NOT EDIT.
 
+// BACnetPropertyIdentifier is an enum
 type BACnetPropertyIdentifier uint32
 
 type IBACnetPropertyIdentifier interface {
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetReliabilityTagged.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetPropertyIdentifierTagged.go
similarity index 65%
copy from plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetReliabilityTagged.go
copy to plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetPropertyIdentifierTagged.go
index 5b7b38b553..0fba9b76bd 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetReliabilityTagged.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetPropertyIdentifierTagged.go
@@ -26,23 +26,23 @@ import (
 
 // Code generated by code-generation. DO NOT EDIT.
 
-// BACnetReliabilityTagged is the data-structure of this message
-type BACnetReliabilityTagged struct {
+// BACnetPropertyIdentifierTagged is the data-structure of this message
+type BACnetPropertyIdentifierTagged struct {
 	Header           *BACnetTagHeader
-	Value            BACnetReliability
+	Value            BACnetPropertyIdentifier
 	ProprietaryValue uint32
 
 	// Arguments.
-	TagClass  TagClass
 	TagNumber uint8
+	TagClass  TagClass
 }
 
-// IBACnetReliabilityTagged is the corresponding interface of BACnetReliabilityTagged
-type IBACnetReliabilityTagged interface {
+// IBACnetPropertyIdentifierTagged is the corresponding interface of BACnetPropertyIdentifierTagged
+type IBACnetPropertyIdentifierTagged interface {
 	// GetHeader returns Header (property field)
 	GetHeader() *BACnetTagHeader
 	// GetValue returns Value (property field)
-	GetValue() BACnetReliability
+	GetValue() BACnetPropertyIdentifier
 	// GetProprietaryValue returns ProprietaryValue (property field)
 	GetProprietaryValue() uint32
 	// GetIsProprietary returns IsProprietary (virtual field)
@@ -60,15 +60,15 @@ type IBACnetReliabilityTagged interface {
 /////////////////////// Accessors for property fields.
 ///////////////////////
 
-func (m *BACnetReliabilityTagged) GetHeader() *BACnetTagHeader {
+func (m *BACnetPropertyIdentifierTagged) GetHeader() *BACnetTagHeader {
 	return m.Header
 }
 
-func (m *BACnetReliabilityTagged) GetValue() BACnetReliability {
+func (m *BACnetPropertyIdentifierTagged) GetValue() BACnetPropertyIdentifier {
 	return m.Value
 }
 
-func (m *BACnetReliabilityTagged) GetProprietaryValue() uint32 {
+func (m *BACnetPropertyIdentifierTagged) GetProprietaryValue() uint32 {
 	return m.ProprietaryValue
 }
 
@@ -81,8 +81,8 @@ func (m *BACnetReliabilityTagged) GetProprietaryValue() uint32 {
 /////////////////////// Accessors for virtual fields.
 ///////////////////////
 
-func (m *BACnetReliabilityTagged) GetIsProprietary() bool {
-	return bool(bool((m.GetValue()) == (BACnetReliability_VENDOR_PROPRIETARY_VALUE)))
+func (m *BACnetPropertyIdentifierTagged) GetIsProprietary() bool {
+	return bool(bool((m.GetValue()) == (BACnetPropertyIdentifier_VENDOR_PROPRIETARY_VALUE)))
 }
 
 ///////////////////////
@@ -90,30 +90,30 @@ func (m *BACnetReliabilityTagged) GetIsProprietary() bool {
 ///////////////////////////////////////////////////////////
 ///////////////////////////////////////////////////////////
 
-// NewBACnetReliabilityTagged factory function for BACnetReliabilityTagged
-func NewBACnetReliabilityTagged(header *BACnetTagHeader, value BACnetReliability, proprietaryValue uint32, tagClass TagClass, tagNumber uint8) *BACnetReliabilityTagged {
-	return &BACnetReliabilityTagged{Header: header, Value: value, ProprietaryValue: proprietaryValue, TagClass: tagClass, TagNumber: tagNumber}
+// NewBACnetPropertyIdentifierTagged factory function for BACnetPropertyIdentifierTagged
+func NewBACnetPropertyIdentifierTagged(header *BACnetTagHeader, value BACnetPropertyIdentifier, proprietaryValue uint32, tagNumber uint8, tagClass TagClass) *BACnetPropertyIdentifierTagged {
+	return &BACnetPropertyIdentifierTagged{Header: header, Value: value, ProprietaryValue: proprietaryValue, TagNumber: tagNumber, TagClass: tagClass}
 }
 
-func CastBACnetReliabilityTagged(structType interface{}) *BACnetReliabilityTagged {
-	if casted, ok := structType.(BACnetReliabilityTagged); ok {
+func CastBACnetPropertyIdentifierTagged(structType interface{}) *BACnetPropertyIdentifierTagged {
+	if casted, ok := structType.(BACnetPropertyIdentifierTagged); ok {
 		return &casted
 	}
-	if casted, ok := structType.(*BACnetReliabilityTagged); ok {
+	if casted, ok := structType.(*BACnetPropertyIdentifierTagged); ok {
 		return casted
 	}
 	return nil
 }
 
-func (m *BACnetReliabilityTagged) GetTypeName() string {
-	return "BACnetReliabilityTagged"
+func (m *BACnetPropertyIdentifierTagged) GetTypeName() string {
+	return "BACnetPropertyIdentifierTagged"
 }
 
-func (m *BACnetReliabilityTagged) GetLengthInBits() uint16 {
+func (m *BACnetPropertyIdentifierTagged) GetLengthInBits() uint16 {
 	return m.GetLengthInBitsConditional(false)
 }
 
-func (m *BACnetReliabilityTagged) GetLengthInBitsConditional(lastItem bool) uint16 {
+func (m *BACnetPropertyIdentifierTagged) GetLengthInBitsConditional(lastItem bool) uint16 {
 	lengthInBits := uint16(0)
 
 	// Simple field (header)
@@ -125,19 +125,19 @@ func (m *BACnetReliabilityTagged) GetLengthInBitsConditional(lastItem bool) uint
 	// A virtual field doesn't have any in- or output.
 
 	// Manual Field (proprietaryValue)
-	lengthInBits += uint16(int32(m.GetHeader().GetActualLength()) * int32(int32(8)))
+	lengthInBits += uint16(utils.InlineIf(m.GetIsProprietary(), func() interface{} { return int32(int32(m.GetHeader().GetActualLength()) * int32(int32(8))) }, func() interface{} { return int32(int32(0)) }).(int32))
 
 	return lengthInBits
 }
 
-func (m *BACnetReliabilityTagged) GetLengthInBytes() uint16 {
+func (m *BACnetPropertyIdentifierTagged) GetLengthInBytes() uint16 {
 	return m.GetLengthInBits() / 8
 }
 
-func BACnetReliabilityTaggedParse(readBuffer utils.ReadBuffer, tagClass TagClass, tagNumber uint8) (*BACnetReliabilityTagged, error) {
+func BACnetPropertyIdentifierTaggedParse(readBuffer utils.ReadBuffer, tagNumber uint8, tagClass TagClass) (*BACnetPropertyIdentifierTagged, error) {
 	positionAware := readBuffer
 	_ = positionAware
-	if pullErr := readBuffer.PullContext("BACnetReliabilityTagged"); pullErr != nil {
+	if pullErr := readBuffer.PullContext("BACnetPropertyIdentifierTagged"); pullErr != nil {
 		return nil, pullErr
 	}
 	currentPos := positionAware.GetPos()
@@ -158,7 +158,7 @@ func BACnetReliabilityTaggedParse(readBuffer utils.ReadBuffer, tagClass TagClass
 
 	// Validation
 	if !(bool((header.GetTagClass()) == (tagClass))) {
-		return nil, utils.ParseValidationError{"tag doesn't match"}
+		return nil, utils.ParseValidationError{"tag class doesn't match"}
 	}
 
 	// Validation
@@ -167,14 +167,14 @@ func BACnetReliabilityTaggedParse(readBuffer utils.ReadBuffer, tagClass TagClass
 	}
 
 	// Manual Field (value)
-	_value, _valueErr := ReadEnumGeneric(readBuffer, header.GetActualLength(), BACnetReliability_VENDOR_PROPRIETARY_VALUE)
+	_value, _valueErr := ReadEnumGeneric(readBuffer, header.GetActualLength(), BACnetPropertyIdentifier_VENDOR_PROPRIETARY_VALUE)
 	if _valueErr != nil {
 		return nil, errors.Wrap(_valueErr, "Error parsing 'value' field")
 	}
-	value := _value.(BACnetReliability)
+	value := _value.(BACnetPropertyIdentifier)
 
 	// Virtual field
-	_isProprietary := bool((value) == (BACnetReliability_VENDOR_PROPRIETARY_VALUE))
+	_isProprietary := bool((value) == (BACnetPropertyIdentifier_VENDOR_PROPRIETARY_VALUE))
 	isProprietary := bool(_isProprietary)
 	_ = isProprietary
 
@@ -185,18 +185,18 @@ func BACnetReliabilityTaggedParse(readBuffer utils.ReadBuffer, tagClass TagClass
 	}
 	proprietaryValue := _proprietaryValue.(uint32)
 
-	if closeErr := readBuffer.CloseContext("BACnetReliabilityTagged"); closeErr != nil {
+	if closeErr := readBuffer.CloseContext("BACnetPropertyIdentifierTagged"); closeErr != nil {
 		return nil, closeErr
 	}
 
 	// Create the instance
-	return NewBACnetReliabilityTagged(header, value, proprietaryValue, tagClass, tagNumber), nil
+	return NewBACnetPropertyIdentifierTagged(header, value, proprietaryValue, tagNumber, tagClass), nil
 }
 
-func (m *BACnetReliabilityTagged) Serialize(writeBuffer utils.WriteBuffer) error {
+func (m *BACnetPropertyIdentifierTagged) Serialize(writeBuffer utils.WriteBuffer) error {
 	positionAware := writeBuffer
 	_ = positionAware
-	if pushErr := writeBuffer.PushContext("BACnetReliabilityTagged"); pushErr != nil {
+	if pushErr := writeBuffer.PushContext("BACnetPropertyIdentifierTagged"); pushErr != nil {
 		return pushErr
 	}
 
@@ -228,13 +228,13 @@ func (m *BACnetReliabilityTagged) Serialize(writeBuffer utils.WriteBuffer) error
 		return errors.Wrap(_proprietaryValueErr, "Error serializing 'proprietaryValue' field")
 	}
 
-	if popErr := writeBuffer.PopContext("BACnetReliabilityTagged"); popErr != nil {
+	if popErr := writeBuffer.PopContext("BACnetPropertyIdentifierTagged"); popErr != nil {
 		return popErr
 	}
 	return nil
 }
 
-func (m *BACnetReliabilityTagged) String() string {
+func (m *BACnetPropertyIdentifierTagged) String() string {
 	if m == nil {
 		return "<nil>"
 	}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetPropertyReference.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetPropertyReference.go
index b35df242c7..0b5746a2ed 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetPropertyReference.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetPropertyReference.go
@@ -29,14 +29,14 @@ import (
 
 // BACnetPropertyReference is the data-structure of this message
 type BACnetPropertyReference struct {
-	PropertyIdentifier *BACnetContextTagPropertyIdentifier
+	PropertyIdentifier *BACnetPropertyIdentifierTagged
 	ArrayIndex         *BACnetContextTagUnsignedInteger
 }
 
 // IBACnetPropertyReference is the corresponding interface of BACnetPropertyReference
 type IBACnetPropertyReference interface {
 	// GetPropertyIdentifier returns PropertyIdentifier (property field)
-	GetPropertyIdentifier() *BACnetContextTagPropertyIdentifier
+	GetPropertyIdentifier() *BACnetPropertyIdentifierTagged
 	// GetArrayIndex returns ArrayIndex (property field)
 	GetArrayIndex() *BACnetContextTagUnsignedInteger
 	// GetLengthInBytes returns the length in bytes
@@ -52,7 +52,7 @@ type IBACnetPropertyReference interface {
 /////////////////////// Accessors for property fields.
 ///////////////////////
 
-func (m *BACnetPropertyReference) GetPropertyIdentifier() *BACnetContextTagPropertyIdentifier {
+func (m *BACnetPropertyReference) GetPropertyIdentifier() *BACnetPropertyIdentifierTagged {
 	return m.PropertyIdentifier
 }
 
@@ -66,7 +66,7 @@ func (m *BACnetPropertyReference) GetArrayIndex() *BACnetContextTagUnsignedInteg
 ///////////////////////////////////////////////////////////
 
 // NewBACnetPropertyReference factory function for BACnetPropertyReference
-func NewBACnetPropertyReference(propertyIdentifier *BACnetContextTagPropertyIdentifier, arrayIndex *BACnetContextTagUnsignedInteger) *BACnetPropertyReference {
+func NewBACnetPropertyReference(propertyIdentifier *BACnetPropertyIdentifierTagged, arrayIndex *BACnetContextTagUnsignedInteger) *BACnetPropertyReference {
 	return &BACnetPropertyReference{PropertyIdentifier: propertyIdentifier, ArrayIndex: arrayIndex}
 }
 
@@ -119,11 +119,11 @@ func BACnetPropertyReferenceParse(readBuffer utils.ReadBuffer) (*BACnetPropertyR
 	if pullErr := readBuffer.PullContext("propertyIdentifier"); pullErr != nil {
 		return nil, pullErr
 	}
-	_propertyIdentifier, _propertyIdentifierErr := BACnetContextTagParse(readBuffer, uint8(uint8(0)), BACnetDataType(BACnetDataType_BACNET_PROPERTY_IDENTIFIER))
+	_propertyIdentifier, _propertyIdentifierErr := BACnetPropertyIdentifierTaggedParse(readBuffer, uint8(uint8(0)), TagClass(TagClass_CONTEXT_SPECIFIC_TAGS))
 	if _propertyIdentifierErr != nil {
 		return nil, errors.Wrap(_propertyIdentifierErr, "Error parsing 'propertyIdentifier' field")
 	}
-	propertyIdentifier := CastBACnetContextTagPropertyIdentifier(_propertyIdentifier)
+	propertyIdentifier := CastBACnetPropertyIdentifierTagged(_propertyIdentifier)
 	if closeErr := readBuffer.CloseContext("propertyIdentifier"); closeErr != nil {
 		return nil, closeErr
 	}
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetPropertyStates.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetPropertyStates.go
index ad15a02dd2..20d7a62eee 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetPropertyStates.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetPropertyStates.go
@@ -203,6 +203,8 @@ func BACnetPropertyStatesParse(readBuffer utils.ReadBuffer, tagNumber uint8) (*B
 		_child, typeSwitchError = BACnetPropertyStatesReliabilityParse(readBuffer, tagNumber, peekedTagNumber)
 	case peekedTagNumber == uint8(16): // BACnetPropertyStatesAction
 		_child, typeSwitchError = BACnetPropertyStatesActionParse(readBuffer, tagNumber, peekedTagNumber)
+	case peekedTagNumber == uint8(42): // BACnetPropertyStatesNetworkType
+		_child, typeSwitchError = BACnetPropertyStatesNetworkTypeParse(readBuffer, tagNumber, peekedTagNumber)
 	case true: // BACnetPropertyStateActionUnmapped
 		_child, typeSwitchError = BACnetPropertyStateActionUnmappedParse(readBuffer, tagNumber)
 	default:
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetPropertyStatesReliability.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetPropertyStatesNetworkType.go
similarity index 55%
copy from plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetPropertyStatesReliability.go
copy to plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetPropertyStatesNetworkType.go
index e45a3e8e83..725ff64307 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetPropertyStatesReliability.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetPropertyStatesNetworkType.go
@@ -26,20 +26,20 @@ import (
 
 // Code generated by code-generation. DO NOT EDIT.
 
-// BACnetPropertyStatesReliability is the data-structure of this message
-type BACnetPropertyStatesReliability struct {
+// BACnetPropertyStatesNetworkType is the data-structure of this message
+type BACnetPropertyStatesNetworkType struct {
 	*BACnetPropertyStates
-	Reliability *BACnetReliabilityTagged
+	NetworkType *BACnetNetworkTypeTagged
 
 	// Arguments.
 	TagNumber uint8
 }
 
-// IBACnetPropertyStatesReliability is the corresponding interface of BACnetPropertyStatesReliability
-type IBACnetPropertyStatesReliability interface {
+// IBACnetPropertyStatesNetworkType is the corresponding interface of BACnetPropertyStatesNetworkType
+type IBACnetPropertyStatesNetworkType interface {
 	IBACnetPropertyStates
-	// GetReliability returns Reliability (property field)
-	GetReliability() *BACnetReliabilityTagged
+	// GetNetworkType returns NetworkType (property field)
+	GetNetworkType() *BACnetNetworkTypeTagged
 	// GetLengthInBytes returns the length in bytes
 	GetLengthInBytes() uint16
 	// GetLengthInBits returns the length in bits
@@ -58,13 +58,13 @@ type IBACnetPropertyStatesReliability interface {
 ///////////////////////////////////////////////////////////
 ///////////////////////////////////////////////////////////
 
-func (m *BACnetPropertyStatesReliability) InitializeParent(parent *BACnetPropertyStates, openingTag *BACnetOpeningTag, peekedTagHeader *BACnetTagHeader, closingTag *BACnetClosingTag) {
+func (m *BACnetPropertyStatesNetworkType) InitializeParent(parent *BACnetPropertyStates, openingTag *BACnetOpeningTag, peekedTagHeader *BACnetTagHeader, closingTag *BACnetClosingTag) {
 	m.BACnetPropertyStates.OpeningTag = openingTag
 	m.BACnetPropertyStates.PeekedTagHeader = peekedTagHeader
 	m.BACnetPropertyStates.ClosingTag = closingTag
 }
 
-func (m *BACnetPropertyStatesReliability) GetParent() *BACnetPropertyStates {
+func (m *BACnetPropertyStatesNetworkType) GetParent() *BACnetPropertyStates {
 	return m.BACnetPropertyStates
 }
 
@@ -73,8 +73,8 @@ func (m *BACnetPropertyStatesReliability) GetParent() *BACnetPropertyStates {
 /////////////////////// Accessors for property fields.
 ///////////////////////
 
-func (m *BACnetPropertyStatesReliability) GetReliability() *BACnetReliabilityTagged {
-	return m.Reliability
+func (m *BACnetPropertyStatesNetworkType) GetNetworkType() *BACnetNetworkTypeTagged {
+	return m.NetworkType
 }
 
 ///////////////////////
@@ -82,109 +82,109 @@ func (m *BACnetPropertyStatesReliability) GetReliability() *BACnetReliabilityTag
 ///////////////////////////////////////////////////////////
 ///////////////////////////////////////////////////////////
 
-// NewBACnetPropertyStatesReliability factory function for BACnetPropertyStatesReliability
-func NewBACnetPropertyStatesReliability(reliability *BACnetReliabilityTagged, openingTag *BACnetOpeningTag, peekedTagHeader *BACnetTagHeader, closingTag *BACnetClosingTag, tagNumber uint8) *BACnetPropertyStatesReliability {
-	_result := &BACnetPropertyStatesReliability{
-		Reliability:          reliability,
+// NewBACnetPropertyStatesNetworkType factory function for BACnetPropertyStatesNetworkType
+func NewBACnetPropertyStatesNetworkType(networkType *BACnetNetworkTypeTagged, openingTag *BACnetOpeningTag, peekedTagHeader *BACnetTagHeader, closingTag *BACnetClosingTag, tagNumber uint8) *BACnetPropertyStatesNetworkType {
+	_result := &BACnetPropertyStatesNetworkType{
+		NetworkType:          networkType,
 		BACnetPropertyStates: NewBACnetPropertyStates(openingTag, peekedTagHeader, closingTag, tagNumber),
 	}
 	_result.Child = _result
 	return _result
 }
 
-func CastBACnetPropertyStatesReliability(structType interface{}) *BACnetPropertyStatesReliability {
-	if casted, ok := structType.(BACnetPropertyStatesReliability); ok {
+func CastBACnetPropertyStatesNetworkType(structType interface{}) *BACnetPropertyStatesNetworkType {
+	if casted, ok := structType.(BACnetPropertyStatesNetworkType); ok {
 		return &casted
 	}
-	if casted, ok := structType.(*BACnetPropertyStatesReliability); ok {
+	if casted, ok := structType.(*BACnetPropertyStatesNetworkType); ok {
 		return casted
 	}
 	if casted, ok := structType.(BACnetPropertyStates); ok {
-		return CastBACnetPropertyStatesReliability(casted.Child)
+		return CastBACnetPropertyStatesNetworkType(casted.Child)
 	}
 	if casted, ok := structType.(*BACnetPropertyStates); ok {
-		return CastBACnetPropertyStatesReliability(casted.Child)
+		return CastBACnetPropertyStatesNetworkType(casted.Child)
 	}
 	return nil
 }
 
-func (m *BACnetPropertyStatesReliability) GetTypeName() string {
-	return "BACnetPropertyStatesReliability"
+func (m *BACnetPropertyStatesNetworkType) GetTypeName() string {
+	return "BACnetPropertyStatesNetworkType"
 }
 
-func (m *BACnetPropertyStatesReliability) GetLengthInBits() uint16 {
+func (m *BACnetPropertyStatesNetworkType) GetLengthInBits() uint16 {
 	return m.GetLengthInBitsConditional(false)
 }
 
-func (m *BACnetPropertyStatesReliability) GetLengthInBitsConditional(lastItem bool) uint16 {
+func (m *BACnetPropertyStatesNetworkType) GetLengthInBitsConditional(lastItem bool) uint16 {
 	lengthInBits := uint16(m.GetParentLengthInBits())
 
-	// Simple field (reliability)
-	lengthInBits += m.Reliability.GetLengthInBits()
+	// Simple field (networkType)
+	lengthInBits += m.NetworkType.GetLengthInBits()
 
 	return lengthInBits
 }
 
-func (m *BACnetPropertyStatesReliability) GetLengthInBytes() uint16 {
+func (m *BACnetPropertyStatesNetworkType) GetLengthInBytes() uint16 {
 	return m.GetLengthInBits() / 8
... 8221 lines suppressed ...