Yes. The only requirements are that your brick datablock has "breakableBrick" set to one and a "breakAt" function to split it.
datablock fxDtsBrickData(brickBreakable1x1Data : brick1x1Data)
{
breakableBrick = 1;
category = "Breakable";
subcategory = "1x";
uiName = "1x1 Breakable";
};
function brickBreakable1x1Data::breakAt(%data, %brick, %pos)
{
breakBrick(%brick, brickBreakable1x1fData.getID(), "0 0 -0.2\t0 0 0\t0 0 0.2", %pos);
}
The breakBrick function is designed to be able to easily split up a brick into other bricks.
breakBrick(%brickToSplit, %splitData, %relativeBrickPosList, %splitPos);
The %splitPos is used to split the %splitData again.