private static BacNetObject createAveraging() {
        return b("Averaging",
            p("Object_Identifier", "BACnetObjectIdentifier", c(R)),
            p("Object_Name", "CharacterString", c(R)),
            p("Object_Type", "BACnetObjectType", c(R)),
            p("Minimum_Value", "REAL", c(R)),
            p("Minimum_Value_Timestamp", "BACnetDateTime", c(O)),
            p("Average_Value", "REAL", c(R)),
            p("Variance_Value", "REAL", c(O)),
            p("Maximum_Value", "REAL", c(R)),
            p("Maximum_Value_Timestamp", "BACnetDateTime", c(O)),
            p("Description", "CharacterString", c(O)),
            p("Attempted_Samples", "Unsigned", c(W, 1)),
            p("Valid_Samples", "Unsigned", c(R)),
            p("Object_Property_Reference", "BACnetDeviceObjectPropertyReference", c(R, 1)),
            p("Window_Interval", "Unsigned", c(W, 1)),
            p("Window_Samples", "Unsigned", c(W, 1)),
            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