# Brep.CreateFromLoft examples

Examples for [CreateFromLoft](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.brep/createfromloft.md) in Rhino.Geometry.Brep.

## C#

```cs
using System.Linq;
using Rhino;
using Rhino.Input.Custom;
using Rhino.DocObjects;
using Rhino.Commands;
using Rhino.Geometry;

namespace examples_cs
{
  public class LoftCommand : Command
  {
    public override string EnglishName { get { return "csLoft"; } }

    protected override Result RunCommand(RhinoDoc doc, RunMode mode)
    {
      // select curves to loft
      var gs = new GetObject();
      gs.SetCommandPrompt("select curves to loft");
      gs.GeometryFilter = ObjectType.Curve;
      gs.DisablePreSelect();
      gs.SubObjectSelect = false;
      gs.GetMultiple(2, 0);
      if (gs.CommandResult() != Result.Success)
        return gs.CommandResult();

      var curves = gs.Objects().Select(obj => obj.Curve()).ToList();

      var breps = Brep.CreateFromLoft(curves, Point3d.Unset, Point3d.Unset, LoftType.Tight, false);
      foreach (var brep in breps)
        doc.Objects.AddBrep(brep);

      doc.Views.Redraw();
      return Result.Success;
    }
  }
}
```

## Python

```py
import rhinoscriptsyntax as rs

def RunCommand():
  crvids = rs.GetObjects(message="select curves to loft", filter=rs.filter.curve, minimum_count=2)
  if not crvids: return

  rs.AddLoftSrf(object_ids=crvids, loft_type = 3) #3 = tight

if __name__ == "__main__":
  RunCommand()
```

## VB.NET

```vbnet
Imports Rhino
Imports Rhino.Input.Custom
Imports Rhino.DocObjects
Imports Rhino.Commands
Imports System.Collections.Generic
Imports Rhino.Geometry

Namespace examples_vb
  Public Class LoftCommand
    Inherits Command
    Public Overrides ReadOnly Property EnglishName() As String
      Get
        Return "vbLoft"
      End Get
    End Property

    Protected Overrides Function RunCommand(doc As RhinoDoc, mode As Rhino.Commands.RunMode) As Result
      ' select curves to loft
      Dim gs = New GetObject()
      gs.SetCommandPrompt("select curves to loft")
      gs.GeometryFilter = ObjectType.Curve
      gs.DisablePreSelect()
      gs.SubObjectSelect = False
      gs.GetMultiple(2, 0)
      If gs.CommandResult() <> Result.Success Then
        Return gs.CommandResult()
      End If

      Dim curves = New List(Of Curve)()
      For Each obj As ObjRef In gs.Objects()
        curves.Add(obj.Curve())
      Next

      Dim breps = Rhino.Geometry.Brep.CreateFromLoft(curves, Point3d.Unset, Point3d.Unset, LoftType.Tight, False)
      For Each brep As Brep In breps
        doc.Objects.AddBrep(brep)
      Next

      doc.Views.Redraw()
      Return Result.Success
    End Function
  End Class
End Namespace
```
