Parametry modelu można modyfikować za pomocą interfejsu IModel (od IModel3):
Sub test_parametr ()
Dim iApp As RFEM5.ApplicationUstaw 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
' uzyskaj wszystkie parametry formułyformParams = iMod.GetFormulaParametry
' usuń wszystkie parametry formułyiMod.CleanFormulaParametry
' ustawić listę parametrów formułyReDim Zachowaj 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 = "nowy parametr"formParams(UBound(formParams, 1)).Formula = "b/3"formParams(UBound(formParams, 1)).RangeOfValues = "(3;5.5>"
iMod.SetFormulaParametry formParams
e:
Jeżeli Err.Number <> 0 to MsgBox Err.description, vbCritical, Err.SourceiMod.GetApplication.UnlockLicenseUstaw iMod = Nic
Zakończ sub
Odczytanie wszystkich parametrów jest możliwe tylko przy użyciu funkcji GetFormulaParameters (). Zmodyfikowane lub nowe parametry można następnie przenieść ponownie w postaci listy za pomocą funkcji SetFormulaParameters (). Dzięki temu nie można odczytać ani zapisać poszczególnych parametrów.
Należy pamiętać, że "Wartość" związana z typem (ValueTyp) i jednostką (Unit) musi mieścić się w zdefiniowanych granicach (RangeOfValues), w przeciwnym razie pojawi się komunikat o błędzie. Jeżeli wartość jest obliczona, jak w przykładzie, nie ma ona znaczenia, a wartość obliczona ze wzoru (wzór) musi mieścić się w określonych granicach.