Hello,
The following code snippet should work well for all Number, Text and Boolean User parameters:
Sub Main
Dim asmDoc As AssemblyDocument
asmDoc = ThisApplication.ActiveDocument
Dim oParams As UserParameters
oParams = asmDoc.ComponentDefinition.Parameters.UserParameters
Dim oParam As UserParameter
' Iterate through all of the referenced documents
Dim doc As Document
For i = 1 To oParams.Count
oParam = oParams.Item(i)
For Each doc In asmDoc.AllReferencedDocuments
'update the components
Call UpdateParameter(doc, oParam.Name,oParam.Value,oParam.Units )
Next
Next
End Sub
Sub UpdateParameter(oDoc As Document, strName As String, dValue As Object, strUnits As String )
' Get the user parameters collection.
Dim userParams As UserParameters
userParams = _
oDoc.ComponentDefinition.Parameters.UserParameters
'Dim bTemp As Boolean
Dim param As Parameter
If Not ParamExists(strName,userParams) Then
Select Case strUnits
Case "in"
param = userParams.AddByValue(strName,dValue,UnitsTypeEnum.kInchLengthUnits)
Case "Text"
param = userParams.AddByValue(strName,dValue,UnitsTypeEnum.kTextUnits)
Case "Boolean"
' bTemp = dValue
param = userParams.AddByValue(strName,dValue ,UnitsTypeEnum.kBooleanUnits)
End Select
Else
MsgBox("This user parameter exists: " & strName)
End If
End Sub
Function ParamExists (strName As String, userParams As UserParameters) As Boolean
ParamExists = False
Dim oTemp As UserParameter
For Each oTemp In userParams
If oTemp.name = strName Then
ParamExists = True
Exit For
End If
Next
End Function

Jane Fan
Inventor/Fusion QA Engineer