private static BacNetObject createNetworkSecurity() {
        return b("Network Security",
            p("Object_Identifier", "BACnetObjectIdentifier", c(R)),
            p("Object_Name", "CharacterString", c(R)),
            p("Object_Type", "BACnetObjectType", c(R)),
            p("Description", "CharacterString", c(O)),
            p("Base_Device_Security_Policy", "BACnetSecurityLevel", c(W)),
            p("Network_Access_Security_Policies", "BACnetARRAY[N] of BACnetNetworkSecurityPolicy", c(W)),
            p("Security_Time_Window", "Unsigned", c(W)),
            p("Packet_Reorder_Time", "Unsigned", c(W)),
            p("Distribution_Key_Revision", "Unsigned8", c(R)),
            p("Key_Sets", "BACnetARRAY[2] of BACnetSecurityKeySet", c(R)),
            p("Last_Key_Server", "BACnetAddressBinding", c(W)),
            p("Security_PDU_Timeout", "Unsigned16", c(W)),
            p("Update_Key_Set_Timeout", "Unsigned16", c(R)),
            p("Supported_Security_Algorithms", "BACnetLIST of Unsigned8", c(R)),
            p("Do_Not_Hide", "BOOLEAN", c(W)),
            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