Reproducer in Draw:
Take as1-oc-214.stp from www.cax-if.org
> pload ALL
> NewDoc d XmlXCAF
> ReadStep d as1-oc-214.stp
> WriteIges d as1-oc-214.igs
# IGES file contains no entity names except the assembly root
Root-cause: IGESCAFControl_Writer::WriteNames() iterates over XDE document labels and search for results of their translation into IGES TransferProcess. For assemblies, with nested component structures, each component/subshape has its own location and therefore does not represent a real subshape of an original shape. Therefore it’s not storted in the TransferProcess map and therefore it cannot find its translation result.
For CAD Exchanger I had to work-around using a code similar to CollectStyles applying parent locations along XDE document exploration.
Hope this will be helpful.