Réponse:
Une imperfection est considérée comme une charge et transférée via l'interface du cas de charge. Si l'interface avec le modèle a déjà été extraite, l'interface avec les charges (ILoads) puis l'interface avec le cas de charge 1 (ILoadCase) sont récupérées si elles ont déjà été créées :
' set loadcases
Dim iLoads As iLoads
Set iLoads = model.GetLoads
' get load case
Dim iLc1 As ILoadCase
Set iLc1 = iLoads.GetLoadCase(1, AtNo)
' define imperfection
Dim imperf As Imperfection
imperf.Comment = "test"
imperf.Direction = LocalZType
imperf.Inclination = 200
imperf.no = 1
imperf.ObjectList = 1
imperf.Precamber = 300
imperf.PrecamberActivity = ActivityAccording_EN_1993_1_1
' set imperfection
iLc1.PrepareModification
iLc1.SetImperfection imperf
iLc1.FinishModification
Les données de l'imperfection sont alors d'abord entrées (pour la barre 1 ici), puis transférées dans un bloc Prepare-/FinishModification de l'interface du cas de charge.