private static BacNetObject createAcessCredential() {
        return b("Access Credential",
            p("Object_Identifier", "BACnetObjectIdentifier", c(R)),
            p("Object_Name", "CharacterString", c(R)),
            p("Object_Type", "BACnetObjectType", c(R)),
            p("Description", "CharacterString", c(O)),
            p("Global_Identifier", "Unsigned32", c(W)),
            p("Status_Flags", "BACnetStatusFlags", c(R)),
            p("Reliability", "BACnetReliability", c(R)),
            p("Credential_Status", "BACnetBinaryPV", c(R)),
            p("Reason_For_Disable", "BACnetLIST of BACnetAccessCredentialDisableReason", c(R)),
            p("Authentication_Factors", "BACnetARRAY[N] of BACnetCredentialAuthenticationFactor", c(R)),
            p("Activation_Time", "BACnetDateTime", c(R)),
            p("Expiration_Time", "BACnetDateTime", c(R)),
            p("Credential_Disable", "BACnetAccessCredentialDisable", c(R)),
            p("Days_Remaining", "INTEGER", c(O, 1)),
            p("Uses_Remaining", "INTEGER", c(O)),
            p("Absentee_Limit", "Unsigned", c(O, 1)),
            p("Belongs_To", "BACnetDeviceObjectReference", c(O)),
            p("Assigned_Access_Rights", "BACnetARRAY[N] of BACnetAssignedAccessRights", c(R)),
            p("Last_Access_Point", "BACnetDeviceObjectReference", c(O)),
            p("Last_Access_Event", "BACnetAccessEvent", c(O)),
            p("Last_Use_Time", "BACnetDateTime", c(O)),
            p("Trace_Flag", "BOOLEAN", c(O)),
            p("Threat_Authority", "BACnetAccessThreatLevel", c(O)),
            p("Extended_Time_Enable", "BOOLEAN", c(O)),
            p("Authorization_Exemptions", "BACnetLIST of BACnetAuthorizationExemption", c(O)),
            p("Reliability_Evaluation_Inhibit", "BOOLEAN", c(O)),
            p("Property_List", "BACnetARRAY[N] of BACnetPropertyIdentifier", c(R)),
            p("Tags", "BACnetARRAY[N] of BACnetNameValue", c(O)),
            p("Profile_Location", "CharacterString", c(O)),
            p("Profile_Name", "CharacterString", c(O))
        );
    }
a map which maps property to type variants
protocols/bacnetip/src/test/java/org/apache/plc4x/protocol/bacnetip/BACnetObjectsDefinitions.java