An IBlockPattern is an interface that allows for combining several blocks into one object.
It is comparable to what the IIngredient Interface is to IItemStacks.

Dieses Paket importieren

Link to dieses-paket-importieren

It might be required for you to import the package if you encounter any issues (like casting an Array), so better be safe than sorry and add the import.
import crafttweaker.block.IBlockPattern;

Calling an IBlockPattern Object

Link to calling-an-iblockpattern-object

Technically, each time you call an IBlock object, you call an IBlockPattern object.
But there are cases when you explicitly get an IBlockPattern Object as return.

ZenGetterWhat does it doRückgabetyp
ZenGetter
blocks
What does it do
Lists all possible blocks for this object
Rückgabetyp
List<IBlock>
ZenGetter
displayName
What does it do
Returns the displayNames of the fitting blocks
Rückgabetyp
string

You can OR two IBlockPattern Objects using the OR | Operator

You can check if an IBlockPatternObject contains another using the in keyword.
For example, you could check if a Block is in an IBlockPattern.