475x
001846
10.09.2020

[FR] FAQ 004715 | Comment puis-je sélectionner des objets via l'interface COM ?

Question :
Comment puis-je sélectionner des objets via l'interface COM ?

Réponse :
La fonction « SelectObjects » de l'interface IModelData permet de sélectionner des objets (ou IModeldata2 etc.). Cette fonction a besoin du type d'objet et du/des numéro(s) d'objet sous forme de chaîne de caractères. Voici un court exemple :

Sub select_objects()

Dim model As RFEM5.model
Set model = GetObject(, "RFEM5.Model")
model.GetApplication.LockLicense

On Error GoTo e

    Dim iModdata As IModelData2
    Set iModdata = model.GetModelData

    ' enable Selections
    iModdata.EnableSelections True

    ' select nodes 2-3 and lines 1 and 3
    iModdata.SelectObjects ModelObjectType.NodeObject, "2-3"
    iModdata.SelectObjects ModelObjectType.LineObject, "1,3"

    ' deselect nodes and lines
    iModdata.SelectObjects ModelObjectType.NodeObject, ""
    iModdata.SelectObjects ModelObjectType.LineObject, ""

e:  Si Err.Number 0 Then MsgBox Err.description, , Err.Source

model.GetApplication.UnlockLicense
Set iModdata = Nothing
Set model = Nothing

End Sub

Les sélections sont activées dans la partie supérieure, puis les nœuds 2 à 3 ainsi que les lignes 1 et 3 sont sélectionnés. Les lignes et les nœuds sont ensuite désélectionnés à l'aide d'une chaîne vide.

Si vous souhaitez lire ou modifier les objets sélectionnés, vous devez utiliser la fonction « IModelData.EnableSelections » (également disponible dans le code ci-dessus). Si la fonction est appelée avec « True », seuls les nœuds sélectionnés sont lus avec la fonction « IModelData.GetNodes() », par exemple.