Los parámetros de un modelo se pueden modificar utilizando la interfaz de IModel (a partir de IModel3):
- código.vb#
Sub test_parameter()
Dim iApp As RFEM5.Application
Establecer iApp = GetObject(, "RFEM5.Application")
iApp.LockLicense
Dim j como entero
j = iApp.GetModelCount
Dim iMod As RFEM5.IModel3
Set iMod = iApp.GetActiveModel
On Error GoTo e
Dim formParams() As RFEM5.FormulaParameter
' obtener todos los parámetros de la fórmula
formParams = iMod.GetFormulaParameters
' eliminar todos los parámetros de la fórmula
iMod.CleanFormulaParameters
' establecer lista de parámetros de fórmula
ReDim Conservar formParams(0 a UBound(formParams, 1) + 1)
formParams(UBound(formParams, 1)).Name = "p"
formParams(UBound(formParams, 1)).Unit = "m"
formParams(UBound(formParams, 1)).UnitType = LengthUnitType
formParams(UBound(formParams, 1)).Valor = 0
formParams(UBound(formParams, 1)).ValueType = DoubleType
formParams(UBound(formParams, 1)).Comment = "nuevo parámetro"
formParams(UBound(formParams, 1)).Fórmula = "b/3"
formParams(UBound(formParams, 1)).RangeOfValues = "(3;5.5>"
iMod.SetFormulaParameters formParams
e:
If Err.Number <> 0 Then MsgBox Err.description, vbCritical, Err.Source
iMod.GetApplication.UnlockLicense
Establecer iMod = Nada
End Sub
#/code#
Solo es posible leer todos los parámetros utilizando la función GetFormulaParameters(). Los parámetros modificados o nuevos se pueden transferir de nuevo como una lista con la función SetFormulaParameters(). Por lo tanto, no se pueden leer ni escribir parámetros individuales.
Cabe señalar que el "Valor" relacionado con su tipo (ValueTyp) y su unidad (Unit) debe estar dentro de los límites definidos (RangeOfValues); de lo contrario, aparece un mensaje de error. Si se calcula el valor, como en el ejemplo, es irrelevante y el valor calculado con la fórmula (Fórmula) debe estar dentro de los límites, si se definen los límites.