Réponse:
La fonction « DeleteObjects() » est disponible dans l’interface de données du modèle et permet d’en supprimer des éléments. Les barres sont alors supprimées comme suit :
Sub test_delete_objects()
Dim iApp As RFEM5.Application
Set iApp = GetObject(, "RFEM5.Application")
iApp.LockLicense
Dim iMod As RFEM5.IModel3
Set iMod = iApp.GetActiveModel
On Error GoTo e
' get interface for model data
Dim iModData As RFEM5.IModelData2
Set iModData = iMod.GetModelData
' get all members
Dim mems() As RFEM5.Member
mems() = iModData.GetMembers
' create member list
Dim mem_list As String
Dim i As Integer
For i = 0 To UBound(mems, 1)
mem_list = mem_list & mems(i).no & ","
Next
' delete members
iModData.PrepareModification
iModData.DeleteObjects MemberObject, mem_list
iModData.FinishModification
e:
If Err.Number <> 0 Then MsgBox Err.description, vbCritical, Err.Source
iMod.GetApplication.UnlockLicense
Set iMod = Nothing
End Sub
Veuillez noter que la fonction « DeleteObjects » ne fonctionne qu’avec le numéro d’objet et non avec l’index d’objet. Ces numéros sont transférés sous forme de chaîne et séparés par des virgules.
Pour cette raison, toutes les barres doivent d’abord être récupérées. Le champ des barres est ensuite exécuté dans une boucle et tous les numéros de barre sont entrés dans la chaîne.
Foire aux questions (FAQ)