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:

  1. 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.

  1. In the tree view, double-click the Project_PlugandSolve folder, and then the Modules folder, and finally the modDynamoUpdater.
  2. Search for UpdateADynamo to locate this code.