Option Explicit Sub Main Dim test As Long test = 3 If( test = 1) Then PrintFaceFeatures ElseIf( test = 2) Then changeFaceFeatures ElseIf( test = 3) Then makeFaceFeatures End If End Sub Public Sub PrintFaceFeatures Dim doc As FMDocument Dim feat As FMFeature Dim face As FMFace Dim curve_name As String Dim curve As FMModel Set doc = ActiveDocument For Each feat In doc.Features If( TypeName(feat) = "IFMFace") Then Set face = feat curve_name = "stock boundary" If( Not face.ProfileCurve Is Nothing) Then Set curve = face.ProfileCurve(1) curve_name = curve.Name End If MsgBox face.Name _ + ", curve: " + curve_name _ + ", thickness: " + Format(face.Thickness,"##0.0###") Set face = Nothing End If Next feat End Sub Public Sub changeFaceFeatures Dim doc As FMDocument Dim feat As FMFeature Dim face As FMFace Dim circ As FMModel Set doc = ActiveDocument For Each feat In doc.Features If( TypeName(feat) = "IFMFace") Then Set face = feat face.SetThickness( face.Thickness * 2,,False) If( face.ProfileCurve Is Nothing) Then Set circ = doc.AddCircleCenterRadius( 3,3,-face.Thickness,1) face.SetProfileCurve( circ,,False) Else face.SetProfileCurve( "",,False) End If Set face = Nothing End If Next feat doc.InvalidateAll End Sub Public Sub makeFaceFeatures Dim doc As FMDocument Dim feat As FMFeature Dim face As FMFace Dim circ As FMModel Dim errmsg As String Set doc = ActiveDocument Set face = doc.Features.AddProfileFace(,.25,errmsg,False) Set circ = doc.AddCircleCenterRadius( 2,2,0,1.5) Set face = doc.Features.AddProfileFace(circ,.25,errmsg,False) doc.InvalidateAll End Sub