How Gh classifies curves

If you must know…

If (data Is Nothing) Then Return String.Format("Null {0}", name)
If (Not data.IsValid()) Then Return String.Format("Invalid {0}", name)

If (data.IsArc()) Then
  If (data.IsClosed()) Then Return String.Format("{0}Circular {1}", prefix, name)
    Return String.Format("{0}Arc-like {1}", prefix, name)
End If

If (data.IsEllipse()) Then
  Return String.Format("{0}Elliptical {1}", prefix, name)
End If

If (data.IsLinear()) Then
  Dim pts As Polyline = Nothing
  If (data.TryGetPolyline(pts)) Then
    If (pts.Count = 2) Then
      Return String.Format("{0}Line-like {1}", prefix, name)
    End If
  End If

  Return String.Format("{0}Linear {1}", prefix, name)
End If
If (data.IsPolyline) Then Return String.Format("{0}Polyline {1}", prefix, name)

Dim closed As String = String.Empty
Dim planar As String = String.Empty

If (data.IsClosed()) Then closed = "Closed "
If (data.IsPeriodic()) Then closed = "Periodic "
If (data.IsPlanar(0.001)) Then planar = "Planar "

Return String.Format("{0}{1}{2}{3}", prefix, closed, planar, name)

name can be either "Curve" or "Edge", and the prefix is either an empty string or "Referenced".

3 Likes