@WCrihfield I very much appreciate your help. I did not however have much luck with the code you wrote. I did a little investigation so see exactly what it was doing in my assembly. Below is your code with some note from myself:
Sub Main
Dim oDoc As Document = ThisDoc.Document
Dim oDict As Dictionary(Of Object, String) = GetAttributedObjects(oDoc)
'-------In my assembly, this returns 0
MsgBox(oDict.Count & " " & "items in dictionary.")
If oDict Is Nothing OrElse oDict.Count = 0 Then Exit Sub
For Each oEntry As KeyValuePair(Of Object, String) In oDict
Dim oEntity As Object = oEntry.Key
Dim sName As String = oEntry.Value
Dim sEntityType As String = TypeName(oEntity)
MsgBox("Entity Type = " & sEntityType & vbCrLf & _
"Entity Name = " & sName, vbInformation, "Named Entity Info")
Next
End Sub
Function GetAttributedObjects(oDoc As Document) As Dictionary(Of Object, String)
If oDoc Is Nothing Then Return Nothing
Dim oFoundObjs As ObjectCollection = oDoc.AttributeManager.FindObjects()
If oFoundObjs Is Nothing OrElse oFoundObjs.Count = 0 Then Return Nothing
Dim oDict As New Dictionary(Of Object, String)
'-------My assembly finds 9 objects
MsgBox(oFoundObjs.Count & " " & "objects found.")
For Each oObj In oFoundObjs
'--------------In my assembly, oObj.TypeName errors on all objects
Try
MsgBox("TypeName " & oObj.TypeName)
Catch
MsgBox("String " & oObj.ToString)
End Try
Select Case TypeName(oObj)
Case "Face", "FaceProxy", "Edge", "EdgeProxy", "Vertex", "VertexProxy"
Dim oAtt As Inventor.Attribute = GetFirstStringTypeAttribute(oObj) 'runs the other custom function
If oAtt Is Nothing Then Continue For
oDict.Add(oObj, oAtt.Value.ToString)
'-------------------------------In my assembly, this message is triggered 0 times
MsgBox("Added object to dictionary")
Case Else
'what to do about other types of entities you may be expecting
End Select
Next 'oObj
Return oDict
End Function
Function GetFirstStringTypeAttribute(oObject As Object) As Inventor.Attribute
'-------My assembly runs this function 9 times
MsgBox("Running 'Get First...Function'")
If oObj Is Nothing Then Return Nothing
Dim oSets As Inventor.AttributeSets = Nothing
Try : oSets = oObj.AttributeSets : Catch : End Try
If oSets Is Nothing OrElse oSets.Count = 0 Then Return Nothing
For Each oSet As Inventor.AttributeSet In oSets
If oSet.Count = 0 Then Continue For
For Each oAtt As Inventor.Attribute In oSet
If oAtt.ValueType = ValueTypeEnum.kStringType Then Return oAtt
'-------------------------------my assembly returns 0 attributes
MsgBox("Returning oAtt")
Next 'oAtt
Next 'oSet
Return Nothing
End Function The 9 objects that it finds seem to be _DocumentClass and the Proxies

All of the proxy values are strings, so I'm not sure why they aren't being picked up by the second function.

Also, as i have been typing this, I have found in my assembly that:
oObj Is Nothing nothing in the second function and so it returns nothing for the 9 objects.
Any thoughts? Again, thank you so much for your help,
Dustin