Parametry modelu można modyfikować za pomocą interfejsu IModel (począwszy od IModel3):
- kod.vb#
Sub test_parametr ()
Dim iApp As RFEM5.Application
Set iApp = GetObject(, "RFEM5.Application")
iApp.LockLicense
Dim j As Integer
j = iApp.GetModelCount
Dim iMod As RFEM5.IModel3
Set iMod = iApp.GetActiveModel
On Error GoTo e
Dim formParams () As RFEM5.FormulaParameter
' pobierz wszystkie parametry wzoru
formParams = iMod.GetFormulaParameters
' usuń wszystkie parametry wzoru
iMod.CleanFormulaParameters
' ustaw listę parametrów wzoru
ReDim Zachowaj formParams(0 To UBound(formParams, 1) + 1)
formParams(UBound(formParams, 1)).Name = "p"
formParams(UBound(formParams, 1)).Unit = "m"
formParams(UBound(formParams, 1)).TypJednostki = LengthUnitType
formParams(UBound(formParams, 1)).Value = 0
formParams(UBound(formParams, 1)).ValueType = DoubleType
formParams(UBound(formParams, 1)).Comment = "nowy parametr"
formParams(UBound(formParams, 1)).Formula = "b/3"
formParams(UBound(formParams, 1)).RangeOfValues = "(3;5.5>"
iMod.SetFormulaParameters formParams
e:
Jeżeli Err.Number <> 0 Wtedy MsgBox Err.description, vbCritical, Err.Source
iMod.GetApplication.UnlockLicense
Ustaw iMod = Nic
End Sub
- /kod#
Wszystkie parametry można odczytać tylko za pomocą funkcji GetFormulaParameters (). Zmodyfikowane lub nowe parametry można następnie przenieść ponownie jako listę 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 jej 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 obliczana, jak w przykładzie, nie jest ona istotna, a wartość obliczona ze wzoru (Wzoru) musi mieścić się w dopuszczalnych granicach, o ile są zdefiniowane granice.