DynamoVisualProgramming.ZeroTouchLibrary by Autodesk

<PackageReference Include="DynamoVisualProgramming.ZeroTouchLibrary" Version="4.1.1.4860" />

 Helix

public class Helix : Curve
using Autodesk.DesignScript.Interfaces; using Autodesk.DesignScript.Runtime; using ProtoGeometryGenerator; using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Autodesk.DesignScript.Geometry { [GenerateFromInterface(typeof(IHelixEntity), typeof(IGeometryFactory), new Type[] { })] public class Helix : Curve { internal IHelixEntity HelixEntity => HostImpl as IHelixEntity; public double Angle => HelixEntity.get_Angle(); [Scaling()] public double Pitch { get { return HelixEntity.get_Pitch() * DesignScriptEntity.scaleFactor; } } [Scaling()] public double Radius { get { return HelixEntity.get_Radius() * DesignScriptEntity.scaleFactor; } } [Scaling()] public Vector AxisDirection { get { return Vector.Wrap(HelixEntity.get_AxisDirection().Scale(1 / DesignScriptEntity.scaleFactor)); } } public Point AxisPoint => Point.Wrap(HelixEntity.get_AxisPoint()); internal Helix(IHelixEntity host) : base(host) { } internal new static void InitType() { Geometry.RegisterHostType(typeof(IHelixEntity), (IGeometryEntity host) => new Helix(host as IHelixEntity)); } public static Helix ByAxis([DefaultArgument("Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0)")] Point axisPoint, [DefaultArgument("Autodesk.DesignScript.Geometry.Vector.ByCoordinates(0, 0, 1)")] Vector axisDirection, [DefaultArgument("Autodesk.DesignScript.Geometry.Point.ByCoordinates(1, 0, 0)")] Point startPoint, [Scaling()] double pitch = 1, double angleTurns = 360) { DesignScriptEntity.CheckArgsForAsmExtents(pitch); return Wrap(HostFactory.Factory.HelixByAxis(Point.Unwrap(axisPoint), Vector.Unwrap(axisDirection), Point.Unwrap(startPoint), pitch / DesignScriptEntity.scaleFactor, angleTurns)); } internal static Helix Wrap(IHelixEntity host) { if (host != null) return new Helix(host); return null; } internal static Helix[] Wrap(IHelixEntity[] hosts) { return hosts.Select(Wrap).ToArray(); } internal static Helix[][] Wrap(IHelixEntity[][] hosts) { return hosts.Select(Wrap).ToArray(); } internal static IHelixEntity Unwrap(Helix o) { return o.HelixEntity; } internal static IHelixEntity[] Unwrap(IEnumerable<Helix> o) { return o.Select(Unwrap).ToArray(); } internal static IHelixEntity[] Unwrap(Helix[] o) { return o.Select(Unwrap).ToArray(); } internal static IHelixEntity[][] Unwrap(Helix[][] o) { return o.Select(Unwrap).ToArray(); } public override string ToString() { StringBuilder builder = DesignScriptEntity.GetBuilder(); AppendTo(builder); return builder.ToString(); } internal override void AppendTo(StringBuilder builder) { builder.Add("Helix(Angle = ", Angle).Add(", Pitch = ", Pitch).Add(", Radius = ", Radius) .Add(", AxisDirection = ", AxisDirection) .Add(", AxisPoint = ", AxisPoint) .Append(")"); } } }