O método collection.filter( ) devolve uma nova coleção que  contém todos os elementos da coleção original para os quais o resultado do método nomMet é true. Este  método devolve uma cópia superficial, o que significa que os objetos  ou coleções em ambas as coleções compartem a mesma referência. Se a coleção original for uma coleção compartida, a coleção devolvida também é uma coleção compartida.
Nota: este método não modifica a coleção original.
Em nomMet, passe o nome do método a utilizar para avaliar os elementos  da coleção, junto com seu(s) parâmetro(s) em param (opcional). nomMet pode realizar qualquer prova, com ou sem os parâmetro(s), e deve devolver true em $1.result para cada  elemento que cumpra a condição e portanto, para avançar a nova coleção.
 nomMet recebe os parâmetros abaixo:
- em $1.value: valor do elemento a filtrar
- em $2: param
- em $N...: param2...paramN
nomMet define os  parâmetros abaixo:
- $1.result (booleano): true se o valor do elemento coincide com a condição do filtro e deve ser mantida.
- $1.stop (booleano, opcional): true para deter a retrochamada do método. O valor devolvido for o último calculado.
Deseja obter a coleção de elementos de texto cuja longitude for menor que 6:
O código para o método LengthLessThan é:
 C_OBJECT($1)
 C_LONGINT($2)
 If(Value type($1.value)=Is text)
    $1.result:=(Length($1.value))<$2
 End ifDeseja filtrar os elementos de acordo com seu tipo de valor:
O código para TypeLookUp é:
 C_OBJECT($1)
 C_LONGINT($2)
 If(OB Get type($1;"value")=$2)
    $1.result:=True
 End if