Les paramètres d'un modèle peuvent être modifiés à l'aide de l'interface IModel (depuis IModel3) :
Sub test_parameter()
Dim iApp As RFEM5.ApplicationSet iApp = GetObject(, "RFEM5.Application")
iApp.LockLicense
Dim j As Integerj = iApp.GetModelCount
Dim iMod As RFEM5.IModel3Set iMod = iApp.GetActiveModel
On Error GoTo e
Dim formParams() As RFEM5.FormulaParameter
' obtenir tous les paramètres de la formuleformParams = iMod.GetFormulaParameters
' supprimer tous les paramètres de formuleiMod.CleanFormulaParameters
' définir la liste des paramètres de formuleReDim Preserve formParams (0 To UBound (formParams, 1) + 1)formParams(UBound(formParams, 1)).Name = "p"formParams(UBound(formParams, 1)).Unit = "m"formParams(UBound(formParams, 1)).UnitType = LengthUnitTypeformParams(UBound(formParams, 1)).Value = 0formParams(UBound(formParams, 1)).ValueType = DoubleTypeformParams(UBound(formParams, 1)).Comment = "new parameter"formParams(UBound(formParams, 1)).Formula = « b/3 »formParams(UBound(formParams, 1)).RangeOfValues = "(3;5.5>"
iMod.SetFormulaParameters formParams
e:
If Err.Number <> 0 Then MsgBox Err.description, vbCritical, Err.SourceiMod.GetApplication.UnlockLicenseSet iMod = Nothing
End Sub
Il est uniquement possible de lire tous les paramètres à l'aide de la fonction GetFormulaParameters(). Les paramètres modifiés ou nouveaux peuvent ensuite être à nouveau transférés sous forme de liste à l'aide de la fonction SetFormulaParameters (). Ainsi, aucun paramètre individuel ne peut être lu ou écrit.
Il est à noter que la « Valeur » relative à son type (ValueTyp) et à son unité (Unit) doit être dans les limites définies (RangeOfValues), sinon un message d'erreur apparaît. Si la valeur est calculée, comme dans l'exemple, cela n'est pas pertinent et la valeur calculée avec la formule (Formula) doit être dans les limites, si les limites sont définies.