Para eliminar elementos, existe a função "DeleteObjects()" na interface de dados do modelo. A eliminação de todas as barras tem o seguinte aspeto:
- código.vb#
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 & ","
- Continuar
- ' 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
#/code#
Tenha em atenção que a função "DeleteObjects" apenas funciona com o número do objeto e não com o índice do objeto. Esses números são transferidos como uma cadeia de caracteres separada por vírgulas.
Por esse motivo, foi necessário, primeiro, ir buscar todas as barras. Em seguida, o campo de barra foi executado em ciclo e todos os números da barra foram introduzidos na cadeia de caracteres.