Convert_A_Group_To_A_Dynamo_By_Ref 方法示例
2015-12-15 22:24:53 来源: 评论:0 点击:
下例使用 PlugandSolve - modDynamoConverter 中的方法显示 方法示例。
Public Function ConvertADynamo(objGroup As Fix2DGroup.Fix2DGroup, 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
Dim bProceedConvert As Boolean
iDataSourceOption = g_WizardConfig.iDataSourceOption
If g_WizardConfig.iDataSourceOption = DYNAMO_PROMPT_FOR_CHOICE Then
If g_ReturnFromPromptForChoiceOnConvert = PROMPT_DLG_SEL_UPDATE_NO_DS_APPLY_TO_ALL Then
iDataSourceOption = DYNAMO_UPDATE_BUT_NOT_APPLY
ElseIf g_ReturnFromPromptForChoiceOnConvert = PROMPT_DLG_SEL_UPDATE_ATTEMPT_MATCH_APPLY_TO_ALL Then
iDataSourceOption = DYNAMO_UPDATE_AND_APPLY
ElseIf g_ReturnFromPromptForChoiceOnConvert = PROMPT_DLG_SEL_DO_NOT_UPDATE_APPLY_TO_ALL Then
iDataSourceOption = DYNAMO_NOT_UPDATE
End If
End If
' 转换选项参数
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
' 如果是 FDS Converter,则设置“成为主图符”选项
If g_iDynamoToolType = DYN_FDS_CONVERTER Then
iUpdateOptions = iUpdateOptions + CONVERT_OPTION_MAKE_MASTER
End If
'调用“更新图符”
PlugandSolve.GeometryHelperObj.Convert_A_Group_To_A_Dynamo_By_Ref objGroup, iUpdateOptions, mobjStrMgr.GetNLSStr(4143), iResult
'获取结果串
strReturnMsg = PlugandSolve.GeometryHelperObj.Get_Last_Result_String
' 不将最后提示作为选择
'从提示获取最后一个用户选择
'If (g_WizardConfig.iDataSourceOption = DYNAMO_PROMPT_FOR_CHOICE) And _
' (g_ReturnFromPromptForChoiceOnConvert = 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_ReturnFromPromptForChoiceOnConvert = iPrompt
' End If
'End If
' 转换结果代码
If (iResult And UPDATER_RESULT_SUCCESS_BIT) > 0 Then
ConvertADynamo = DYNAMO_UPDATED
End If
If (iResult And UPDATER_RESULT_DYNAMO_NOT_UPDATED_BIT) > 0 Then
ConvertADynamo = DYNAMO_NOTUPDATED
End If
If (iResult And UPDATER_RESULT_USER_CANCELLED_BIT) > 0 _
Or (iResult And UPDATER_RESULT_SUCCESS_BIT) = 0 Then
ConvertADynamo = DYNAMO_UPDATE_ABORTED
End If
End Function