Create block reference from object but don't want inserted, just created for use later

If 2025 isn’t an option, you can actually use Civil3D toolkit’s BlockReferenceExtension class to create a block reference from geometry (I think it is BlockReferenceExtensions.BlockReferenceByGeometry but don’t recall), then query the block from the block reference, and use a WaitFor method (in a code block type [pass, wait][0];) where pass is the block reference and wait is the block, then delete the block reference with Object.Delete.