Update_A_Dynamo_By_Ref Method Example
The following code provides an example of the Update_A_Dynamo_By_Ref method that appears in the modDynamoUpdater module of the Project_PlugandSolve VBA project.
Public Function UpdateADynamo2(objDynamoInstance As Fix2DDynamo.Fix2DDynamo, objMasterDynamo As Fix2DDynamo.Fix2DDynamo, ByRef strReturnMsg) As UpdateDynamoResult
Dim strDIName As String
Dim strDMName As String
Dim iDataSourceOption As DynamoDataSourceOption
Dim iResult As Long 'UpdateDynamoResult
Dim iPrompt As Long
Dim iUpdateOptions As Long ' update options
iDataSourceOption = g_WizardConfig.iDataSourceOption
If g_WizardConfig.iDataSourceOption = DYNAMO_PROMPT_FOR_CHOICE Then
If g_ReturnFromPromptForChoice = PROMPT_DLG_SEL_UPDATE_NO_DS_APPLY_TO_ALL Then
iDataSourceOption = DYNAMO_UPDATE_BUT_NOT_APPLY
ElseIf g_ReturnFromPromptForChoice = PROMPT_DLG_SEL_UPDATE_ATTEMPT_MATCH_APPLY_TO_ALL Then
iDataSourceOption = DYNAMO_UPDATE_AND_APPLY
ElseIf g_ReturnFromPromptForChoice = PROMPT_DLG_SEL_DO_NOT_UPDATE_APPLY_TO_ALL Then
iDataSourceOption = DYNAMO_NOT_UPDATE
End If
End If
' Convert option parameters
iUpdateOptions = &H0
If iDataSourceOption = DYNAMO_PROMPT_FOR_CHOICE Then
iUpdateOptions = UPDATE_OPTION_ON_MISMATCH_PROMT_FOR_CHOICE
ElseIf iDataSourceOption = DYNAMO_UPDATE_AND_APPLY Then
iUpdateOptions = UPDATE_OPTION_ON_MISMATCH_UPDATE_DYNAMO + UPDATE_OPTION_ON_MISMATCH_APPLY_DATA_SOURCES
ElseIf iDataSourceOption = DYNAMO_UPDATE_BUT_NOT_APPLY Then
iUpdateOptions = UPDATE_OPTION_ON_MISMATCH_UPDATE_DYNAMO
End If
If g_WizardConfig.bKeepSize = True Then
iUpdateOptions = iUpdateOptions + UPDATE_OPTION_RESIZE_INSTANCE
End If
If g_WizardConfig.bKeepCaption = True Then
iUpdateOptions = iUpdateOptions + UPDATE_OPTION_SAVE_CAPTIONS
End If
' Add new option if Dynamo instance conversion
If g_iDynamoToolType = DYN_QUICK_CONVERTER Or _
g_iDynamoToolType = DYN_CONVERTER_WIZARD Then
iUpdateOptions = iUpdateOptions + UPDATE_OPTION_UPDATE_ON_CONVERSION
End If
' call Update A Dynamo
PlugandSolve.GeometryHelperObj.Update_A_Dynamo_By_Ref2 objMasterDynamo, objDynamoInstance, iUpdateOptions, mobjStrMgr.GetNLSStr(4069), iResult
' get a result string
strReturnMsg = PlugandSolve.GeometryHelperObj.Get_Last_Result_String
' get the last user choice from the prompt
If (g_WizardConfig.iDataSourceOption = DYNAMO_PROMPT_FOR_CHOICE) And _
(g_ReturnFromPromptForChoice = PROMPT_DLG_SEL_NONE) Then
iPrompt = PlugandSolve.GeometryHelperObj.Get_Last_Prompt_Value
If (iPrompt = PROMPT_DLG_SEL_UPDATE_NO_DS_APPLY_TO_ALL) Or _
(iPrompt = PROMPT_DLG_SEL_UPDATE_ATTEMPT_MATCH_APPLY_TO_ALL) Or _
(iPrompt = PROMPT_DLG_SEL_DO_NOT_UPDATE_APPLY_TO_ALL) Then
g_ReturnFromPromptForChoice = iPrompt
End If
End If
'////// end of actual update call
' If iResult <= DYNAMO_UPDATED Then
' UpdateADynamo = DYNAMO_UPDATED
' ElseIf iResult <= DYNAMO_NOTUPDATED Then
' UpdateADynamo = DYNAMO_NOTUPDATED
' Else
' UpdateADynamo = DYNAMO_UPDATE_ABORTED
' End If
If (iResult And UPDATER_RESULT_SUCCESS_BIT) > 0 Then
UpdateADynamo2 = DYNAMO_UPDATED
End If
If (iResult And UPDATER_RESULT_DYNAMO_NOT_UPDATED_BIT) > 0 Then
UpdateADynamo2 = DYNAMO_NOTUPDATED
End If
If (iResult And UPDATER_RESULT_USER_CANCELLED_BIT) > 0 _
Or (iResult And UPDATER_RESULT_SUCCESS_BIT) = 0 Then
UpdateADynamo2 = DYNAMO_UPDATE_ABORTED
End If
End Function
To view this code in context:
- In Classic view, from the WorkSpace menu, select Visual Basic Editor.
-Or-
In Ribbon view, on the Home tab, in the WorkSpace group, click Visual Basic Editor.
- In the tree view, double-click the Project_PlugandSolve folder, and then the Modules folder, and finally the modDynamoUpdater.
- Search for UpdateADynamo to locate this code.