Oh, sorry for the confusion. It's not a world gen structure. It's an item that builds structures on use using items in the players inventory.
So instead of listing every block location and then testing block.isReplaceable(world, pos) I'll need to find a good way to store relative positioning of the structure so that I can loop through the positions with only a single isReplaceable test that gets called each loop.
(And hopefully have the looping generic enough so that I can have the single item usable for multiple structures)