DynamoVisualProgramming.ZeroTouchLibrary by Autodesk

<PackageReference Include="DynamoVisualProgramming.ZeroTouchLibrary" Version="2.0.0-beta2884" />

 TSplineSurface

public bool IsClosed { get; }

Whether t-spline is is open.

public bool IsExtractable { get; }

Whether t-spline is extractable (Could be displayed in smooth mode)

public bool IsInBoxMode { get; }

Whether t-spline in box or smooth mode

public bool IsStandard { get; }

Check all guarantees required for standardization to determine if the t-spline is standard

public bool IsWaterTight { get; }

All closed surfaces are watertight, but some watertight surfaces are open.

public TSplineReflection[] Reflections { get; }

A list of reflections applied to the t-spline

public static TSplineSurface BuildFromLines(IEnumerable<Curve> lines, int maxFaceValence = 4, double snappingTolerance = 1E-05, bool creaseOuterVertices = true, bool inSmoothMode = false)

Create a T-Spline Surface from the list of lines. Accepts curves, but takes only start and end points from them.

public static TSplineSurface BuildPipes(IEnumerable<Curve> curves, double defaultRadius, double snappingTolerance, IEnumerable<int> segmentsCount, IEnumerable<double> endRotations, IEnumerable<double> endRadii, IEnumerable<double> endPercentage, bool inSmoothMode)

Make a piped surface out of a network of curves or lines. A smooth joint is created at each curve intersection. Some parameter take single value or list - two valies per curve.

public static TSplineSurface ByBoxCorners(Point lowPoint, Point highPoint, int xSpans, int ySpans, int zSpans, TSplineInitialSymmetry symmetry, bool inSmoothMode)

Create an T-Spline Box spanning from low Point to high Point.

public static TSplineSurface ByBoxLengths(double width, double length, double height, int xSpans, int ySpans, int zSpans, TSplineInitialSymmetry symmetry, bool inSmoothMode)

Create a T-Spline Box centered at WCS origin, with width, length, and height.

public static TSplineSurface ByBoxLengths(Point origin, double width, double length, double height, int xSpans, int ySpans, int zSpans, TSplineInitialSymmetry symmetry, bool inSmoothMode)

Create a T-Spline Box centered at input Point, with specified width, length, and height.

public static TSplineSurface ByBoxLengths(CoordinateSystem cs, double width, double length, double height, int xSpans, int ySpans, int zSpans, TSplineInitialSymmetry symmetry, bool inSmoothMode)

Create a T-Spline Box centered and oriented to input CoordinateSystem, with specified width, length, and height.

Combine given T-Spline Surfaces into single one. Surface can be not connected to each other. If at least one surface is in box mode - output surface will be in box mode as well.

public static TSplineSurface ByConeCoordinateSystemHeightRadii(CoordinateSystem cs, double height, double startRadius, double endRadius, int radiusSpans, int heightSpans, TSplineInitialSymmetry symmetry, bool inSmoothMode)

Create a T-Splines Cone with base Point at CoordinateSystem origin, extending in the direction of CoordinateSystem Z-axis, with its circular base in the CoordinateSystem XY Plane.

public static TSplineSurface ByConeCoordinateSystemHeightRadius(CoordinateSystem cs, double height, double radius, int radiusSpans, int heightSpans, TSplineInitialSymmetry symmetry, bool inSmoothMode)

Create a T-Splines Cone with base Point at CoordinateSystem origin, extending in the direction of CoordinateSystem's Z-axis, with a circular base in the CoordinateSystem XY Plane.

public static TSplineSurface ByConePointsRadii(Point startPoint, Point endPoint, double startRadius, double endRadius, int radiusSpans, int heightSpans, TSplineInitialSymmetry symmetry, bool inSmoothMode)

Create a T-Splines Cone with axis from start Point to end Point, with given radii at start and end. This object does not have an apex, and is in the shape of a frustum.

public static TSplineSurface ByConePointsRadius(Point startPoint, Point endPoint, double radius, int radiusSpans, int heightSpans, TSplineInitialSymmetry symmetry, bool inSmoothMode)

Create a T-Splines Cone with given base radius at start Point, extending to an apex at end Point.

public static TSplineSurface ByCylinderPointsRadius(Point startPoint, Point endPoint, double radius, int radiusSpans, int heightSpans, TSplineInitialSymmetry symmetry, bool inSmoothMode)

Construct a T-Splines Cylinder given the bottom and top center point of the Cylinder.

public static TSplineSurface ByCylinderRadiusHeight(CoordinateSystem cs, double radius, double height, int radiusSpans, int heightSpans, TSplineInitialSymmetry symmetry, bool inSmoothMode)

Construct a T-Spline Cylinder defined by a parent CoordinateSystem, the radius, and the height of the cylinder

public static TSplineSurface ByExtrude(Curve curve, Vector direction, double frontDistance = 1, double backDistance = 1, int frontSpans = 1, int backSpans = 0, int profileSpans = 0, bool uniform = true, bool inSmoothMode = false)

Construct a T-Spline by extruding a curve along the given vector.

public static TSplineSurface ByNurbsSurfaceCurvature(NurbsSurface nurbsSurface, bool inSmoothMode = false)

Construct T-Spline surface from NURBS Surface using curvature subdivision strategy. Input NURBS surface is rebuilt to degree 3. Output T-Spline has span counts and positions in each direction detected automatically depending on curvature.

public static TSplineSurface ByNurbsSurfaceUniform(NurbsSurface nurbsSurface, int uSpans, int vSpans, bool uUseArcLen, bool vUseArcLen, bool inSmoothMode)

Construct T-Spline surface from NURBS Surface using uniform strategy. Input NURBS surface is rebuilt with uniform knots placed at equal parametric or arc length intervals depending on corresponding useArcLen flag, and approximated by degree 3 NURBS surface. Output T-Spline is divided by given span counts in u and v directions.

public static TSplineSurface ByPlaneBestFitThroughPoints(IEnumerable<Point> points, Point minCorner, Point maxCorner, int xSpans, int ySpans, TSplineInitialSymmetry symmetry, bool inSmoothMode)

Fit a T-Spline Plane to the input Points; basically a 3D scatterplot fit.

public static TSplineSurface ByPlaneLineAndPoint(Line line, Point point, Point minCorner, Point maxCorner, int xSpans, int ySpans, TSplineInitialSymmetry symmetry, bool inSmoothMode)

Create the T-Spline Plane containing the input Line and external Point. Point cannot lie on the Line or anywhere on the axis of the Line.

public static TSplineSurface ByPlaneOriginNormal(Point origin, Vector normal, Point minCorner, Point maxCorner, int xSpans, int ySpans, TSplineInitialSymmetry symmetry, bool inSmoothMode)

Create a T-Spline Plane centered at root Point, with input normal Vector.

public static TSplineSurface ByPlaneOriginNormalXAxis(Point origin, Vector normal, Vector xAxis, Point minCorner, Point maxCorner, int xSpans, int ySpans, TSplineInitialSymmetry symmetry, bool inSmoothMode)

Create an "oriented" T-Spline Plane, positioned at Point origin with Vector normal, but with a specific X-axis orientation. This has no impact to splitting, intersect, project, etc. operations, it only specifies the orientation of the input CoordinateSystem.

public static TSplineSurface ByPlaneOriginXAxisYAxis(Point origin, Vector xAxis, Vector yAxis, Point minCorner, Point maxCorner, int xSpans, int ySpans, TSplineInitialSymmetry symmetry, bool inSmoothMode)

Create a Plane by origin and X, Y axis. The Z axis is the cross product of the two Vectors.

public static TSplineSurface ByPlaneThreePoints(Point p1, Point p2, Point p3, Point minCorner, Point maxCorner, int xSpans, int ySpans, TSplineInitialSymmetry symmetry, bool inSmoothMode)

Create a T-Spline Plane containing the three input Points. The Points cannot lie on a straight line

public static TSplineSurface ByQuadballCenterRadius(Point center, double radius, int spans, TSplineInitialSymmetry symmetry, bool inSmoothMode)

Create a T-Splines Quadball with given center and radius, aligned with default World XY plane

public static TSplineSurface ByQuadballCoordinateSystemRadius(CoordinateSystem cs, double radius, int spans, TSplineInitialSymmetry symmetry, bool inSmoothMode)

Create a T-Splines Quadball with center at CoordinateSystem origin and given radius

public static TSplineSurface ByRevolve(Curve profile, Point axisOrigin, Vector axisDirection, double startAngle, double sweepAngle, int radialSpans, int axialSpans, bool uniform, TSplineInitialSymmetry symmetry, bool inSmoothMode)

Create a T-Spline Surface by sweeping the profile Curve around the axis formed by the axis origin and axis direction, starting at start_angle in degrees, and sweeping by sweep_angle in degrees.

public static TSplineSurface BySphereBestFit(IEnumerable<Point> points, int radiusSpans, int heightSpans, TSplineInitialSymmetry symmetry, bool inSmoothMode)

Fit a T-Spline Sphere as close as possible to the input Points.

public static TSplineSurface BySphereCenterPointRadius(Point centerPoint, double radius, int radiusSpans, int heightSpans, TSplineInitialSymmetry symmetry, bool inSmoothMode)

Create a T-Spline Sphere cetered at the input Point, with given radius.

public static TSplineSurface BySphereFourPoints(IEnumerable<Point> points, int radiusSpans, int heightSpans, TSplineInitialSymmetry symmetry, bool inSmoothMode)

Create a T-Spline Sphere containing four input Points on the surface.

public static TSplineSurface BySweep(Curve profile, Curve path, bool parallel = true, int pathSpans = 1, int profileSpans = 0, bool pathUniform = true, bool profileUniform = true, bool inSmoothMode = false)

Construct a T-Spline by sweeping a cross section Curve along a path.

public static TSplineSurface ByTorusCenterRadii(Point center, double innerRadius, double outerRadius, int innerRadiusSpans, int outerRadiusSpans, TSplineInitialSymmetry symmetry, bool inSmoothMode)

Create a T-Splines Torus with given center and radii, aligned with default World XY plane

public static TSplineSurface ByTorusCoordinateSystemRadii(CoordinateSystem cs, double innerRadius, double outerRadius, int innerRadiusSpans, int outerRadiusSpans, TSplineInitialSymmetry symmetry, bool inSmoothMode)

Create a T-Splines Torus with center at CoordinateSystem origin and given radii

public static TSplineSurface[] DeserializeFromTSM(string content, bool inSmoothMode = false)

public static string ExportToTSM(TSplineSurface tSplineSurface, string filePath)

Export given T-Spline surface to T-Spline Mesh file

public static string ExportToTSS(IEnumerable<TSplineSurface> tSplineSurfaces, string filePath)

Export given set of T-Spline surfaces to T-Spline Scene file

public static TSplineSurface[] ImportFromTSM(string filePath, bool inSmoothMode = false)

Load a T-Spline Surface from given T-Spline Mesh file

public static TSplineSurface[] ImportFromTSM(FileInfo file, bool inSmoothMode = false)

Load a T-Spline Surface from given T-Spline Mesh file

public static TSplineSurface[] ImportFromTSS(string filePath, bool inSmoothMode = false)

Load set of a T-Spline surfaces from given T-Spline Scene file

public static TSplineSurface[] ImportFromTSS(FileInfo file, bool inSmoothMode = false)

Load set of a T-Spline surfaces from given T-Spline Scene file

public static string SerializeAsTSM(TSplineSurface tSplineSurface)

Write T-Spline Surface into a string in T-Spline Mesh format.

public TSplineSurface AddReflections(IEnumerable<TSplineReflection> reflections, bool weldSymmetricPortions = false, double weldTolerance = 1E-05)

Append given list of reflections to the t-spline

public TSplineSurface BevelEdges(IEnumerable<TSplineEdge> edges, double percentage = 0.5, int segments = 3, bool keepOnFace = false, double roundness = 0)

Replace given edges with a channel of faces.

public TSplineSurface BridgeEdgesToEdges(IEnumerable<TSplineEdge> firstGroup, IEnumerable<TSplineEdge> secondGroup, IEnumerable<Curve> followCurves, IEnumerable<int> frameRotations, IEnumerable<int> spansCounts, bool cleanBorderBridges, bool keepSubdCreases, IEnumerable<TSplineVertex> firstAlignVertices, IEnumerable<TSplineVertex> secondAlignVertices, IEnumerable<bool> flipAlignmentFlags)

Build bridge between two sets of edges. Items of the first group are considered as children of this surface. Items of the second group can either be children of this surface or belong to a different surface. Topology within each group might not be adjacent but should create the same count of distinct loops.

public TSplineSurface BridgeEdgesToFaces(IEnumerable<TSplineEdge> firstGroup, IEnumerable<TSplineFace> secondGroup, IEnumerable<Curve> followCurves, IEnumerable<int> frameRotations, IEnumerable<int> spansCounts, bool cleanBorderBridges, bool keepSubdCreases, IEnumerable<TSplineVertex> firstAlignVertices, IEnumerable<TSplineVertex> secondAlignVertices, IEnumerable<bool> flipAlignmentFlags)

Build bridge between set of edges and set of faces. Items of the first group are considered as children of this surface. Items of the second group can be either children of this surface or belong to a different surface. Topology within each group might not be adjacent, but should create the same count of distinct loops.

public TSplineSurface BridgeFacesToEdges(IEnumerable<TSplineFace> firstGroup, IEnumerable<TSplineEdge> secondGroup, IEnumerable<Curve> followCurves, IEnumerable<int> frameRotations, IEnumerable<int> spansCounts, bool cleanBorderBridges, bool keepSubdCreases, IEnumerable<TSplineVertex> firstAlignVertices, IEnumerable<TSplineVertex> secondAlignVertices, IEnumerable<bool> flipAlignmentFlags)

Build bridge between set of faces and set of edges. Items of the first group are considered as children of this surface. Items of the second group can be either children of this surface or belong to a different surface. Topology within each group might not be adjacent, but should create the same count of distinct loops.

public TSplineSurface BridgeFacesToFaces(IEnumerable<TSplineFace> firstGroup, IEnumerable<TSplineFace> secondGroup, IEnumerable<Curve> followCurves, IEnumerable<int> frameRotations, IEnumerable<int> spansCounts, bool cleanBorderBridges, bool keepSubdCreases, IEnumerable<TSplineVertex> firstAlignVertices, IEnumerable<TSplineVertex> secondAlignVertices, IEnumerable<bool> flipAlignmentFlags)

Build bridge between two sets of faces. Items of the first group are considered as children of this surface. Items of the second group can be either children of this surface or belong to a different surface. Topology within each group might not be adjacent, but should create the same count of distinct loops.

Compress all topology on the surface and make the indices contiguous. This function maintains the relative order of the indices.

Perform crease on given set of edges

Perform crease on given set of vertices

public TSplineSurface CreateMatch(IEnumerable<TSplineEdge> tsEdges, IEnumerable<Curve> curves, int continuity, bool useArclength, bool useRefinement, int numRefinementSteps, double refinementTolerance, bool usePropagation, double widthOfPropagation, double tangentScale, double curvParamWeight, bool flipSourceTargetAlignment)

Create match with T-Spline and closed loop of curves

public TSplineSurface CreateMatch(IEnumerable<TSplineEdge> tsEdges, IEnumerable<Edge> brepEdges, int continuity, bool useArclength, bool useRefinement, int numRefinementSteps, double refinementTolerance, bool usePropagation, double widthOfPropagation, double tangentScale, double curvParamWeight, bool flipSourceTargetAlignment)

Create match with T-Spline and closed loop of BRep edges. First, edge loop is converted to curve loop and then match is performed

Remove edges from t-spline topology

Remove faces from t-spline topology

Remove vertices from t-spline topology

Copy chosen faces to the new surface. New surface has no symmetry

public TSplineSurface EnableSmoothMode(bool enable = true)

Change visualization style of t-spline. Smooth visualization if true passed, box otherwise.

public TSplineSurface ExtrudeEdges(IEnumerable<TSplineEdge> edges, Vector direction, int spans = 1)

Perform a single or multiple symmetric extrudes on a set of edges and move new edges by given vector.

public TSplineSurface ExtrudeEdgesAlongCurve(IEnumerable<TSplineEdge> edges, Curve curve, int spans = 1)

Perform a single or multiple symmetric extrudes on a set of edges and move new edges by the path of given curve.

public TSplineSurface ExtrudeFaces(IEnumerable<TSplineFace> faces, Vector direction, int spans = 1)

Perform a single or multiple symmetric extrudes on a set of faces and move new edges by given vector.

public TSplineSurface ExtrudeFacesAlongCurve(IEnumerable<TSplineFace> faces, Curve curve, int spans = 1)

Perform a single or multiple symmetric extrudes on a set of faces and move new edges by the path of given curve.

public TSplineSurface FillHole(IEnumerable<TSplineEdge> edges, int fillMethod = 0, bool keepSubdCreases = false)

Fill holes in a T-spline

Flatten control points of given vertices to a single plane. This command requires an input of at least four vertices

Flatten control points of given vertices to a single plane which will be parallel with the given plane. This command requires an input of at least four vertices

Inverts the normals of all faces in the mesh.

public TSplineSurface Interpolate(bool reverse = false)

Forward interpolation moves control points to their parametric locations on the surface. Reverse interpolation generates a point on the surface for each original control point and moves this control point to its corresponding surface point.

Set all knot intervals uniform.

public TSplineSurface MergeEdges(IEnumerable<TSplineEdge> firstGroup, IEnumerable<TSplineEdge> secondGroup, bool insertCreases = false)

Merge given edges. Edges in each groups should create equal counts of continuous sets. Edges from the first group are considered as edges of this surface. Edges from the second group can be either from this surface or any other surface. In case of different surfaces, combine is performed before merge

public TSplineSurface MoveVertices(IEnumerable<TSplineVertex> vertices, Vector vector, bool onSurface = false)

Move given vertices along given vector

public TSplineSurface PullVertices(IEnumerable<TSplineVertex> vertices, IEnumerable<Geometry> geometries, bool surfacePoints = true)

Take every given t-spline vertex and pull it towards the closest point on the target geometries. If surfacePoints is true then surface point of the vertex is pulled, control grip otherwise

Remove all reflections from the t-spline

public TSplineSurface SlideEdges(IEnumerable<TSplineEdge> edges, double amount = 0.5, double roundness = 0)

Slide given edges along neighboring edges

Standardize the t-spline to the point where exact insertion can be performed. If it cannot be standardized, exception is thrown with the reason

public TSplineSurface SubdivideFaces(IEnumerable<TSplineFace> faces, bool exact = true)

Subdivide given faces into four faces each in exact or simple mode depending on given flag value.

public TSplineSurface Thicken(double distance, bool softEdges = true)

Thicken TSpline surface by given distance in the direction of its face normals

public TSplineSurface Thicken(Vector vector, bool softEdges = true)

Thicken TSpline surface by given vector.

public Topology[] ToBRep(bool matchTopology = true)

Convert TSpline surface to Solid or Surface depending on shape

public Mesh ToMesh(int minSegments = 1, double tolerance = 0.01)

Convert t-spline surface to mesh. Mesh can have both triangles and quads.

Perform uncrease on given set of edges

Perform uncrease on given set of vertices

Unweld all the given edges, It will unweld each vertex on all the edges.

Unweld all the specified vertices. All edges on every vertex will be unwelded.

public TSplineSurface WeldCoincidentVertices(double tolerance = 1E-05)

Find all coincident vertices and weld them together.

public TSplineSurface WeldVertices(IEnumerable<TSplineVertex> vertices, Point newPosition, bool keepSubdCreases)

Weld given list of vertices into a single vertex.

public TSplineSurface WeldVertices(IEnumerable<TSplineVertex> firstGroup, IEnumerable<TSplineVertex> secondGroup, bool keepSubdCreases = false)

Weld vertices of first and second groups pairwise. First group is considered as vertices of this t-spline. Second group vertices can be either from this surface or from any other. In case of different t-splines combine is performed before the weld operation