You need to specify what is the coordinates of workpoint. Here is the sample how to obtain them
Sub Main
Dim drawingDocument As DrawingDocument = ThisDoc.Document
oSheet = drawingDocument.Sheets(1)
oDrawingView = oSheet.DrawingViews(1)
Dim asm As AssemblyDocument = oDrawingView.ReferencedDocumentDescriptor.ReferencedDocument
'Get WorkPoints in assembly context
ProcessOccurrences(asm.ComponentDefinition.Occurrences.OfType(Of ComponentOccurrence))
End Sub
Private oSheet As Sheet
Private oDrawingView As DrawingView
Sub ProcessOccurrences(occurrences As IEnumerable(Of ComponentOccurrence))
For Each occ As ComponentOccurrence In occurrences
Dim occWorkPoints As WorkPoints = GetWorkPoints(occ)
If occWorkPoints Is Nothing Then Continue For
Logger.Debug(occ.Name)
For Each occWorkPoint As WorkPoint In occWorkPoints
Logger.Debug(" {0}", occWorkPoint.Name)
'Occurrence local coordinate system
Logger.Debug("{1}Local coords: {0}", PointCoords(occWorkPoint.Point), " ")
'Assembly coordinate system
Dim occWorkPointProxyObj As Object
occ.CreateGeometryProxy(occWorkPoint, occWorkPointProxyObj)
Dim occWorkPointProxy = TryCast(occWorkPointProxyObj, WorkPointProxy)
Logger.Debug("{1}Assembly coords: {0}", PointCoords(occWorkPointProxy.Point), " ")
'Drawing sheet coordinate system
Dim sheetPoint = oDrawingView.ModelToSheetSpace(occWorkPointProxy.Point)
Logger.Debug("{1}Sheet coords: {0}", PointCoords(sheetPoint), " ")
'Drawing sheet coordinate system
Dim drawingViewPoint = oDrawingView.ModelToDrawingViewSpace(occWorkPointProxy.Point)
Logger.Debug("{1}View coords: {0}", PointCoords(drawingViewPoint), " ")
Next
If occ.SubOccurrences.Count > 0 Then
ProcessOccurrences(occ.SubOccurrences.OfType(Of ComponentOccurrence))
End If
Next
End Sub
Function GetWorkPoints(occ As ComponentOccurrence) As WorkPoints
Dim asmDef As AssemblyComponentDefinition = TryCast(occ.Definition, AssemblyComponentDefinition)
If Not asmDef Is Nothing Then Return asmDef.WorkPoints
Dim prtDef As PartComponentDefinition = TryCast(occ.Definition, PartComponentDefinition)
If Not prtDef Is Nothing Then Return prtDef.WorkPoints
Return Nothing
End Function
Function PointCoords(pt As Point) As String
Return String.Format("[{0:N2}, {1:N2}, {2:N2}]", pt.X, pt.Y, pt.Z)
End Function
Function PointCoords(pt As Point2d) As String
Return String.Format("[{0:N2}, {1:N2}]", pt.X, pt.Y)
End Function