I am having some difficulty with selecting an object in a drawing, and passing the object from the created selection set to another function that uses the selected object to retrieve the object data. You'll note below, I've created a selection set object call objSS, and passed that. It does not see the SS object though. If I change the code in the Object data retreival portion to acadObj (an autocad object), it retreives the OD for every object in the drawing. I need just the seleted entities OD not everything 'Hide the form 'Me.Hide UserForm1.Hide Dim SSetName As String Dim objSSet As AcadSelectionSet 'Define sset as a SelectionSet object On Error Resume Next ' Delete the Selection Set if it Exists If Not IsNull(ThisDrawing.SelectionSets.Item("SS2")) Then Set objSSet = ThisDrawing.SelectionSets.Item("SS2") objSSet.Delete End If 'Set sset to a new selection set named SS2 (the name doesn't matter here) Set objSSet = ThisDrawing.SelectionSets.Add("SS2") objSSet.SelectOnScreen 'Prompt user to select objects ' Selection Set Name SSetName = "testList" 'This is a test box to see if the correct objects were selected 'Shut off during normal operation MsgBox ("Selection set " & objSSet.Name & " contains " & _ objSSet.count & " items") 'Get object data of selected object Dim acadApp As Object Dim amap As AcadMap Set acadApp = ThisDrawing.Application Set amap = acadApp.GetInterfaceObject("AutoCADMap.Application.2") Dim odTables As odTables Dim odTable As odTable Dim RecordIterator As ODRecords Dim odRecord As odRecord Dim odValue As ODFieldValue Dim msg As String Dim acadObj As AcadObject Dim i As Integer Dim count As Integer For Each objSSet In ThisDrawing.ModelSpace msg = "" ' get the selected object data table and iterator Set odTables = amap.Projects(ThisDrawing).odTables For i = 0 To odTables.count - 1 Set odTable = odTables.Item(i) Set RecordIterator = odTables.GetODRecords Next ' initilize iterator on entity If RecordIterator.Init(objSSet, False, False) = True Then '' oops, that entity has no od attached to specified table If RecordIterator.IsDone Then msg = msg & "Entity has no data from Object Data Table: " & odTable.Name End If '' loop through all attached records from specified table 'Setup a collection to dump the data into. Dim colDbaseValues As New Collection Do Until RecordIterator.IsDone '' get record data Set odRecord = RecordIterator.Record '' initialize field counter count = 0 '' loop through each od field For Each odValue In odRecord '' get field name from defs msg = msg & odTable.ODFieldDefs.Item(count).Name '' and show field value Select Case odValue.Type Case 0, 1, 2, 3 msg = msg & " = " & CStr(odValue.Value) & Chr(10) Case 4 msg = msg & " = " & CStr(odValue.Value.X) & "," & CStr(odValue.Value.Y) & "," & CStr(odValue.Value.X) & Chr(10) End Select count = count + 1 colDbaseValues.Add odValue.Value Next '' there may be more records attached RecordIterator.Next Loop '' error getting iterator Else '' report the bad news msg = "Error iterating Object Data Table: " & odTable.Name End If '' update text box MsgBox msg Next 'This is where is calls the other function to populate the database 'Currenlty used in conjunction with function AddODToDbase Set amap = Nothing Set acadApp = Nothing