Aby bylo možné vytvořit nelineární prvek, jako je kloub na konci prutu s diagramem nebo neúčinností, je nutné nejdříve vytvořit kloub na konci prutu. Pokud program RFEM zná kloub na konci prutu, je přes rozhraní přístupný pomocí IMemberEndRelease. Rozhraní pak disponuje metodami GetData() a SetData(). Tyto metody jsou schopny načíst a zapsat jak data jednoduchých kloubů na konci prutu typu MemberEndRelease, tak data nelinearit.
V následujícím příkladu se nejdříve v kloubu na konci prutu uvolní kloub pro směr x a poté se jako nelinearita ve směru x nastaví typ WorkingDiagramType. Po přenosu těchto dat do programu RFEM pomocí bloku Prepare-Finish-Modification se interně vytvoří nelinearita. Pro doplnění údajů se nejdříve načtou existující data kloubu na konci prutu pomocí GetData() z rozhraní.
Po vyplnění se data (NonlinearityDiagram) předají zpátky pomocí SetData():
Sub SetNLDiagram()
Dim model As RFEM5.modelSet model = GetObject(, "RFEM5.Model")
On Error GoTo e
Dim iApp As RFEM5.ApplicationSet iApp = model.GetApplication
iApp.LockLicenseiApp.Show
Dim iModelData As RFEM5.iModelDataSet iModelData = model.GetModelData
' úprava kloubu na konci prutu' nastavení nelinearity "Diagram" pro posun xDim iMemHing As RFEM5.IMemberHingeSet iMemHing = iModelData.GetMemberHinge(1, AtNo)
Dim memHing As RFEM5.MemberHingememHing = iMemHing.GetData()memHing.TranslationalConstantX = 0memHing.TranslationalNonlinearityX = WorkingDiagramType
' nastavení nových údajůiModelData.PrepareModificationiMemHing.SetData memHingiModelData.FinishModification
' vytvoření diagramuDim tbl1() As DoubleReDim tbl1(1, 1)tbl1(0, 0) = 0 ' u-xtbl1(0, 1) = 0 ' P-x
tbl1(1, 0) = 0.02 ' u-x (mm)tbl1(1, 1) = 2000 ' P-x (N)
Dim nldHing As RFEM5.NonlinearityDiagramnldHing.ForceType = StiffnessDiagramForceType.NoneStiffnessForcenldHing.PositiveZoneType = DiagramAfterLastStepType.TearingDiagramTypenldHing.PositiveZone = tbl1nldHing.Symmetric = True
Dim iNldiag As RFEM5.INonlinearityDiagramSet iNldiag = iMemHing.GetNonlinearity(AlongAxisX)
' nastavení nových údajůiModelData.PrepareModificationiNldiag.SetData nldHingiModelData.FinishModification
e: If Err.Number <> 0 Then MsgBox Err.description, , Err.Source
model.GetApplication.UnlockLicense
End Sub
Obdobně se postupuje v případě uzlových podpor a dalších nelinearit.