Thanks
I see that the source code uses RhinoCommon functions that I can use myself, without resorting to InsertBlock (i.e. I can just use what ever is in that function).
What I am getting from AddInstanceObject(Int32, Transform) is a GUID, which means it was ‘successful’, but no actual Block Instance appeared in the document.
If you are using Python you can use rhinoscriptsyntax (instead of re-coding it from the RhinoCommon SDK), it will be very close to the RhinoScript VB examples.
Here is the Python example from rhinoscriptsyntax.AddBlock():
import rhinoscriptsyntax as rs
objs = rs.GetObjects("Select objects to define block")
if objs:
point = rs.GetPoint("Block base point")
if point:
block = rs.AddBlock(objs, point, None, True)
rs.InsertBlock(block, point)