It's working !!
Thank you very much donyoung, I've looked at your program and I've adapted it at my problem.
In fact I didn't use the function GetParamExtents to have dmin and dmax to use them in the function GetLengthAtParam. But now it's perfect !
666vito, if it can help you, this is my program to have the length of an edge in a part :
Dim dMin As Double
Dim dMAx As Double
Dim dLength As Double
Call ObjDocPart.Models.Item(1).Body.Edges(EdgeType:=1).Item(i).GetParamExtents(dMin, dMAx)
Call ObjDocPart.Models.Item(1).Body.Edges(EdgeType:=1).Item(i).GetLengthAtParam(dMin, dMAx, dLength)
You have to know what is the number of the edge than you recuperate. My part was complicated, so I've used :
Dim i As Variant
For i = 0 To ObjDocPart.Models.Item(1).Body.Edges(EdgeType:=1).Count
Call ObjDocPart.Models.Item(1).Body.Edges(EdgeType:=1).Item(i).GetParamExtents(dMin, dMAx)
Call ObjDocPart.Models.Item(1).Body.Edges(EdgeType:=1).Item(i).GetLengthAtParam(dMin, dMAx, dLength)
P = dLength * 1000
Range("K" & i + 1) = P 'Pour le 1er périmètre
Range("N" & i + 1) = P 'Pour le 2e périmètre
Next i
With that I can identifiy all length of edges and after use the two first function just on edges I want...
Tks,
Bye