Skip to content

Brep

Public Class

/// Boundary Representation. A surface or polysurface along with trim curve information.

Inheritance Hierarchy

System.Object
Rhino.Runtime.CommonObject
Rhino.Geometry.GeometryBase
Rhino.Geometry.Brep

Namespace: Rhino.Geometry

Assembly: RhinoCommon (in RhinoCommon.dll)

Syntax

[SerializableAttribute]
public class Brep : GeometryBase

The Brep type exposes the following members.

Constructors

Name

Description


Public Method

Initializes a new empty brep


Protected Method

Protected constructor used in serialization.


Properties

Name

Description


Public Property

Parameter space trimming curves (used by trims)


Public Property

Pointers to 3d curves (used by edges)


Public Property

Indicates if this object has been disposed or the document it originally belonged to has been disposed.

(Inherited from CommonObject.)


Public Property

Gets the brep edges list accessor.


Public Property

Gets the brep faces list accessor.


Public Property

Returns true if the Brep.TryConvertBrep function will be successful for this object

(Inherited from GeometryBase.)


Public Property

Returns true if the Brep has region topology information, false otherwise.


Public Property

Gets true if this class has any custom information attached to it through UserData.

(Inherited from CommonObject.)


Public Property

true if object can be accurately modified with “squishy” transformations like projections, shears, and non-uniform scaling.

(Inherited from GeometryBase.)


Public Property

If true this object may not be modified. Any properties or functions that attempt to modify this object when it is set to “IsReadOnly” will throw a NotSupportedException.

(Inherited from GeometryBase.)


Public Property

Gets a value indicating whether or not the Brep is manifold. Non-Manifold breps have at least one edge that is shared among three or more faces.


Public Property
Code Example

Determines whether this brep is a solid, or a closed oriented manifold.


Public Property

Returns true if the Brep has a single face and that face is geometrically the same as the underlying surface. I.e., the face has trivial trimming.

In this case, the surface is the first face surface. The flag Brep.Faces[0].OrientationIsReversed records the correspondence between the surface’s natural parametric orientation and the orientation of the Brep.

trivial trimming here means that there is only one loop curve in the brep and that loop curve is the same as the underlying surface boundary.


Public Property

Tests an object to see if it is valid.

(Inherited from CommonObject.)


Public Property

Gets the brep loop list accessor.


Public Property

Useful for switch statements that need to differentiate between basic object types like points, curves, surfaces, and so on.

(Inherited from GeometryBase.)


Public Property

Gets the solid orientation state of this Brep.


Public Property

Parametric surfaces used by faces


Public Property

Gets the brep trims list accessor.


Public Property

List of custom information that is attached to this class.

(Inherited from CommonObject.)


Public Property

Dictionary of custom information attached to this class. The dictionary is actually user data provided as an easy to use shareable set of information.

(Inherited from CommonObject.)


Public Property

Gets the amount of user strings.

(Inherited from GeometryBase.)


Public Property

Gets the brep vertices list accessor.


Methods

Name

Description


Public Method

Add a 3d curve used by the brep edges


Public Method

Adds a 3D surface used by BrepFace.


Public Method

Add a 2d curve used by the brep trims


Public Method

Appends a copy of another brep to this and updates indices of appended brep parts. Duplicates are not removed


Public Method

Returns a new Brep that is equivalent to this Brep with all planar holes capped.


Public Method
Static Member

Change the seam of a closed trimmed surface.


Public Method

Finds a point on the brep that is closest to testPoint.


Public Method

Finds a point on the Brep that is closest to testPoint. The method searches all Brep faces looking for the one closest to testPoint. When found, if the closest point falls on the inactive region of the face, then the method finds the face’s edge that is closest to testPoint.


Public Method

Deletes any unreferenced objects from arrays, re-indexes as needed, and shrinks arrays to minimum required size. Uses CUllUnused* members to delete any unreferenced objects from arrays.


Public Method

If this piece of geometry is a component in something larger, like a BrepEdge in a Brep, then this function returns the component index.

(Inherited from GeometryBase.)


Protected Method

Assigns a parent object and a sub-object index to this.

(Inherited from CommonObject.)


Public Method
Static Member

Copy all trims from a Brep face onto a surface.


Public Method
Static Member

Creates a brep representation of the sphere with two similar trimmed NURBS surfaces, and no singularities.


Public Method
Static Member

Makes a curve blend between points on two surface edges. The blend will be tangent to the surfaces and perpendicular to the edges.


Public Method
Static Member

Makes a surface blend between two surface edges.


Public Method
Static Member
CreateBooleanDifference(Brep, Brep, Double)

Compute the Solid Difference of two Breps.


Public Method
Static Member
Code Example
CreateBooleanDifference(IEnumerable.Brep., IEnumerable.Brep., Double)

Compute the Solid Difference of two sets of Breps.


Public Method
Static Member
CreateBooleanDifference(Brep, Brep, Double, Boolean)

Compute the Solid Difference of two Breps.


Public Method
Static Member
Code Example
CreateBooleanDifference(IEnumerable.Brep., IEnumerable.Brep., Double, Boolean)

Compute the Solid Difference of two sets of Breps.


Public Method
Static Member

Compute the solid difference between two sets of Breps.


Public Method
Static Member
CreateBooleanIntersection(Brep, Brep, Double)

Compute the Solid Intersection of two Breps.


Public Method
Static Member
CreateBooleanIntersection(IEnumerable.Brep., IEnumerable.Brep., Double)

Compute the Solid Intersection of two sets of Breps.


Public Method
Static Member
CreateBooleanIntersection(Brep, Brep, Double, Boolean)

Compute the Solid Intersection of two Breps.


Public Method
Static Member
CreateBooleanIntersection(IEnumerable.Brep., IEnumerable.Brep., Double, Boolean)

Compute the Solid Intersection of two sets of Breps.


Public Method
Static Member

Splits shared areas of Breps and creates separate Breps from the shared and unshared parts.


Public Method
Static Member

Splits shared areas of Breps and creates separate Breps from the shared and unshared parts.


Public Method
Static Member

Compute the Boolean Union of a set of Breps.


Public Method
Static Member

Compute the Boolean Union of a set of Breps.


Public Method
Static Member

Compute the Boolean Union of a set of Breps.


Public Method
Static Member

Creates a ruled surface as a bevel between two input surface edges.


Public Method
Static Member

Creates a ruled surface as a bevel between two input surface edges.


Public Method
Static Member

Constructs the contour curves for a brep, using a slicing plane.


Public Method
Static Member
Code Example

Constructs the contour curves for a brep at a specified interval.


Public Method
Static Member

Create an array of analysis meshes for the brep using the specified settings. Meshes aren’t set on the brep.


Public Method
Static Member

Creates a single developable surface between two curves.


Public Method
Static Member

Creates a single developable surface between two curves.


Public Method
Static Member
Code Example

Constructs a coons patch from 2, 3, or 4 curves.


Public Method
Static Member

Fillets, chamfers, or blends the edges of a brep.


Public Method
Static Member

Fillets, chamfers, or blends the edges of a brep.


Public Method
Static Member

Fillets, chamfers, or blends the edges of a brep.


Public Method
Static Member

Creates a constant-radius round surface between two surfaces.


Public Method
Static Member

Creates a constant-radius round surface between two surfaces.


Public Method
Static Member
Code Example

Constructs new brep that matches a bounding box.


Public Method
Static Member

Constructs new brep that matches an aligned box.


Public Method
Static Member

Constructs new brep from 8 corner points.


Public Method
Static Member

Constructs a Brep representation of the cone with a single face for the cone, an edge along the cone seam, and vertices at the base and apex ends of this seam edge. The optional cap is a single face with one circular edge starting and ending at the base vertex.


Public Method
Static Member

Makes a Brep with one face from three corner points.


Public Method
Static Member

Makes a Brep with one face from four corner points.


Public Method
Static Member

Constructs a Brep definition of a cylinder.


Public Method
Static Member

Joins two naked edges, or edges that are coincident or close together, from two Breps.


Public Method
Static Member
Code Example

Constructs one or more Breps by lofting through a set of curves.


Public Method
Static Member

Constructs one or more Breps by lofting through a set of curves, optionally matching start and end tangents of surfaces when first and/or last loft curves are surface edges


Public Method
Static Member

Constructs one or more Breps by lofting through a set of curves. Input for the loft is simplified by rebuilding to a specified number of control points.


Public Method
Static Member

Constructs one or more Breps by lofting through a set of curves. Input for the loft is simplified by refitting to a specified tolerance.


Public Method
Static Member

Create a brep representation of a mesh


Public Method
Static Member

Offsets a face including trim information to create a new brep.


Public Method
Static Member
Code Example

Constructs a brep form of a surface of revolution.


Public Method
Static Member

Constructs a Brep definition of a sphere.


Public Method
Static Member

Constructs a Brep from a surface. The resulting Brep has an outer boundary made from four trims. The trims are ordered so that they run along the south, east, north, and then west side of the surface’s parameter space.


Public Method
Static Member

Sweep1 function that fits a surface through a profile curve that define the surface cross-sections and one curve that defines a surface edge.


Public Method
Static Member

Sweep1 function that fits a surface through profile curves that define the surface cross-sections and one curve that defines a surface edge.


Public Method
Static Member

General 2 rail sweep. If you are not producing the sweep results that you are after, then use the SweepTwoRail class with options to generate the swept geometry.


Public Method
Static Member

General 2 rail sweep. If you are not producing the sweep results that you are after, then use the SweepTwoRail class with options to generate the swept geometry.


Public Method
Static Member

Sweep2 function that fits a surface through profile curves that define the surface cross-sections and two curves that defines the surface edges.


Public Method
Static Member

Sweep2 function that fits a surface through profile curves that define the surface cross-sections and two curves that defines the surface edges.


Public Method
Static Member

Sweep1 function that fits a surface through a series of profile curves that define the surface cross-sections and one curve that defines a surface edge.


Public Method
Static Member

Makes a 2 rail sweep. Like CreateFromSweep but the result is split where parameterization along a rail changes abruptly.


Public Method
Static Member

Sweep1 function that fits a surface through a profile curve that define the surface cross-sections and one curve that defines a surface edge. The Segmented version breaks the rail at curvature kinks and sweeps each piece separately, then put the results together into a Brep.


Public Method
Static Member

Sweep1 function that fits a surface through a series of profile curves that define the surface cross-sections and one curve that defines a surface edge. The Segmented version breaks the rail at curvature kinks and sweeps each piece separately, then put the results together into a Brep.


Public Method
Static Member

Sweep1 function that fits a surface through a series of profile curves that define the surface cross-sections and one curve that defines a surface edge. The Segmented version breaks the rail at curvature kinks and sweeps each piece separately, then put the results together into a Brep.


Public Method
Static Member
CreateFromTaperedExtrude(Curve, Double, Vector3d, Point3d, Double, ExtrudeCornerType)

Obsolete.

Extrude a curve to a taper making a brep (potentially more than 1)


Public Method
Static Member

Extrude a curve to a taper making a brep (potentially more than 1)


Public Method
Static Member

Creates one or more Breps by extruding a curve a distance along an axis with draft angle.


Public Method
Static Member

Constructs a Brep definition of a torus.


Public Method
Static Member

Offsets a Brep.


Public Method
Static Member

Offsets a Brep.


Public Method
Static Member

Constructs a brep patch.

This is the simple version of fit that uses a specified starting surface.


Public Method
Static Member

Constructs a brep patch.

This is the simple version of fit that uses a plane with u x v spans. It makes a plane by fitting to the points from the input geometry to use as the starting surface. The surface has the specified u and v span count.


Public Method
Static Member

Constructs a brep patch using all controls


Public Method
Static Member

Creates a single walled pipe.


Public Method
Static Member

Creates a single walled pipe.


Public Method
Static Member

Obsolete.

Constructs a set of planar breps as outlines by the loops.


Public Method
Static Member

Obsolete.

Constructs a set of planar Breps as outlines by the loops.


Public Method
Static Member

Obsolete.

Constructs a set of planar breps as outlines by the loops.


Public Method
Static Member

Constructs a set of planar breps as outlines by the loops.


Public Method
Static Member

Constructs a set of planar Breps as outlines by the loops.


Public Method
Static Member

Constructs a set of planar breps as outlines by the loops.


Public Method
Static Member

CreatePlanarDifference


Public Method
Static Member

CreatePlanarIntersection


Public Method
Static Member

CreatePlanarUnion


Public Method
Static Member

CreatePlanarUnion


Public Method
Static Member

Constructs a Brep definition of a quad sphere.


Public Method
Static Member

Creates a hollowed out shell from a solid Brep. Function only operates on simple, solid, manifold Breps.


Public Method
Static Member

Constructs closed polysurfaces from surfaces and polysurfaces that bound a region in space.


Public Method
Static Member

Creates a double-walled pipe.


Public Method
Static Member

Creates a double-walled pipe.


Public Method
Static Member

Create a Brep trimmed plane.


Public Method
Static Member

Create a Brep trimmed plane.


Public Method
Static Member

Obsolete.

Constructs a Brep using the trimming information of a brep face and a surface. Surface must be roughly the same shape and in the same location as the trimming brep face.


Public Method
Static Member

Constructs a Brep using the trimming information of a brep face and a surface. Surface must be roughly the same shape and in the same location as the trimming brep face.


Public Method

Culls 3d curves not referenced by an edge.


Public Method

Culls 2d curves not referenced by a trim.


Public Method

Culls edges with m_edge_index == -1.


Public Method

Culls faces with m_face_index == -1.


Public Method

Culls loops with m_loop_index == -1.


Public Method

Culls surfaces not referenced by a face.


Public Method

Culls trims with m_trim_index == -1.


Public Method

Culls vertices with m_vertex_index == -1.


Public Method
Static Member
CutUpSurface(Surface, IEnumerable.Curve., Boolean, Double)

Takes a surface and a set of all 3D curves that define a single trimmed surface, and splits the surface with the curves, keeping the piece that uses all of the curves.


Public Method
Static Member

Splits, or cuts up, a surface. Designed to split the underlying surface of a Brep face with edge curves.


Public Method

Returns a CRC calculated from the information that defines the object. This CRC can be used as a quick way to see if two objects are not identical.

(Inherited from GeometryBase.)


Public Method

(Inherited from GeometryBase.)


Public Method

(Inherited from GeometryBase.)


Public Method

Destroys a Brep’s region topology information.


Public Method

Actively reclaims unmanaged resources that this instance uses.

(Inherited from CommonObject.)


Protected Method

Overridden in order to destroy local display cache information

(Inherited from GeometryBase.)


Public Method

Copies this brep.

(Overrides

.)


Public Method

Same as

, but already performs a cast to a brep.

This cast always succeeds.


Public Method

Duplicate all the edges of this Brep.


Public Method
Code Example

Duplicate edges of this Brep.


Public Method

Duplicate naked edges of this Brep.


Public Method

Constructs a light copy of this object. By “light”, it is meant that the same underlying data is used until something is done to attempt to change it. For example, you could have a shallow copy of a very heavy mesh object and the same underlying data will be used when doing things like inspecting the number of faces on the mesh. If you modify the location of one of the mesh vertices, the shallow copy will create a full duplicate of the underlying mesh data and the shallow copy will become a deep copy.

(Inherited from GeometryBase.)


Public Method

Copy a subset of this Brep into another Brep.


Public Method

Duplicate all the corner vertices of this Brep.


Public Method

If you want to keep a copy of this class around by holding onto it in a variable after a command completes, call EnsurePrivateCopy to make sure that this class is not tied to the document. You can call this function as many times as you want.

(Inherited from CommonObject.)


Public Method

Equals

Determines whether the specified object is equal to the current object.

(Inherited from Object.)


Public Method
Static Member

Extends Faces to meet and trims the faces to each other. If input faces intersect without extending, the selection point indicates the side to keep


Public Method
Static Member

Extends Faces to meet and trims the faces to each other. If input faces intersect without extending, the selection point indicates the side to keep


Protected Method

Passively reclaims unmanaged resources when the class user did not explicitly call Dispose().

(Inherited from CommonObject.)


Public Method

Find the indices of all brep faces, edges and vertices that are within tolerance of a test-point.


Public Method

Reverses entire brep orientation of all faces.


Public Method

Compute the Area of the Brep. If you want proper Area data with moments and error information, use the AreaMassProperties class.


Public Method

Compute the Area of the Brep. If you want proper Area data with moments and error information, use the AreaMassProperties class.


Public Method
Code Example

Bounding box solver. Gets the world axis aligned bounding box for the geometry.

(Inherited from GeometryBase.)


Public Method
Code Example

Aligned Bounding box solver. Gets the plane aligned bounding box.

(Inherited from GeometryBase.)


Public Method

Aligned Bounding box solver. Gets the world axis aligned bounding box for the transformed geometry.

(Inherited from GeometryBase.)


Public Method

Aligned Bounding box solver. Gets the plane aligned bounding box.

(Inherited from GeometryBase.)


Public Method

If this Brep has two or more connected components, then duplicates of the connected components are returned.


Public Method

GetHashCode

Serves as the default hash function.

(Inherited from Object.)


Public Method

Populates a System.Runtime.Serialization.SerializationInfo with the data needed to serialize the target object.

(Inherited from CommonObject.)


Public Method

Finds a point inside of a solid Brep.


Public Method

Gets an array containing all regions in this brep.


Public Method

If this Brep has two or more components connected by tangent edges, then duplicates of the connected components are returned.


Public Method

GetType

Gets the Type of the current instance.

(Inherited from Object.)


Public Method

Gets user string from this geometry.

(Inherited from GeometryBase.)


Public Method

Gets a copy of all (user key string, user value string) pairs attached to this geometry.

(Inherited from GeometryBase.)


Public Method

Compute the Volume of the Brep. If you want proper Volume data with moments and error information, use the VolumeMassProperties class.


Public Method

Compute the Volume of the Brep. If you want proper Volume data with moments and error information, use the VolumeMassProperties class.


Public Method

Constructs all the Wireframe curves for this Brep.


Public Method

Individually insets faces of a brep by offsetting the faces outer edges inward and inner edges out then splitting the face with the offset curves.


Public Method

Verifies a Brep is in the form of a solid box.


Public Method

Verifies a Brep is in the form of a solid box.


Public Method

See if this and other are same brep geometry.


Public Method

Determines if point is inside a Brep. This question only makes sense when the brep is a closed and manifold. This function does not check for closed or manifold, so result is not valid in those cases. Intersects a line through point with brep, finds the intersection point Q closest to point, and looks at face normal at Q. If the point Q is on an edge or the intersection is not transverse at Q, then another line is used.


Public Method

Expert user function that tests the brep to see if its geometry information is valid. The value of brep.IsValidTopology() must be true before brep.IsValidGeometry() can be safely called.


Public Method

Expert user function that tests the brep to see if its tolerances and flags are valid. The values of brep.IsValidTopology() and brep.IsValidGeometry() must be true before brep.IsValidTolerancesAndFlags() can be safely called.


Public Method

Tests the brep to see if its topology information is valid.


Public Method

Determines if an object is valid. Also provides a report on errors if this object happens not to be valid.

(Inherited from CommonObject.)


Public Method
Join

If any edges of this brep overlap edges of otherBrep, merge a copy of otherBrep into this brep joining all edges that overlap within tolerance.


Public Method
Static Member

Joins the breps in the input array at any overlapping edges to form as few as possible resulting breps. There may be more than one brep in the result array.


Public Method
Static Member

Joins the breps in the input array at any overlapping edges to form as few as possible resulting breps. There may be more than one brep in the result array.


Public Method
Static Member

Joins the breps in the input array at any overlapping edges to form as few as possible resulting breps. There may be more than one brep in the result array.


Public Method

Joins two naked edges, or edges that are coincident or close together.


Public Method

Joins naked edge pairs within the same brep that overlap within tolerance.


Public Method

If possible, converts the object into a form that can be accurately modified with “squishy” transformations like projections, shears, an non-uniform scaling.

(Inherited from GeometryBase.)


Public Method
MakeValidForV2

No support is available for this function.

Expert user function that converts all geometry in Brep to NURB form.


Protected Method

MemberwiseClone

Creates a shallow copy of the current Object.

(Inherited from Object.)


Public Method

Computes an estimate of the number of bytes that this object is using in memory.

(Inherited from GeometryBase.)


Public Method
Static Member

Combines two or more breps into one. A merge is like a boolean union that keeps the inside pieces. This function creates non-manifold Breps which in general are unusual in Rhino. You may want to consider using JoinBreps or CreateBooleanUnion functions instead.


Public Method

Merges adjacent coplanar faces into single faces.


Public Method

Merges adjacent coplanar faces into single faces.


Public Method

Merges coplanar faces adjacent to Brep face into a single face.


Public Method

Merges two coplanar, adjacent Brep faces into a single face.


Public Method
Static Member

Merges two surfaces into one surface at untrimmed edges. Both surfaces must be untrimmed and share an edge.


Public Method
Static Member

Merges two surfaces into one surface at untrimmed edges.


Public Method
Static Member

Merges two surfaces into one surface at untrimmed edges. Both surfaces must be untrimmed and share an edge.


Protected Method

Destroy cache handle

(Inherited from GeometryBase.)


Protected Method

Is called when a non-constant operation occurs.

(Inherited from GeometryBase.)


Public Method
RebuildTrimsForV2

No support is available for this function.

Expert user function used by MakeValidForV2 to convert trim curves from one surface to its NURBS form. After calling this function, you need to change the surface of the face to a NurbsSurface.


Public Method

Recursively removes any Brep face with a naked edge. This function is only useful for non-manifold Breps.


Public Method

Remove all inner loops, or holes, in a Brep.


Public Method

Removes inner loops, or holes, in a Brep.


Public Method

Fills in missing or fixes incorrect component information from a Brep. Useful when reading Brep information from other file formats that do not provide as complete of a Brep definition as required by Rhino.


Public Method

Rotates the object about the specified axis. A positive rotation angle results in a counter-clockwise rotation about the axis (right hand rule).

(Inherited from GeometryBase.)


Public Method

Scales the object by the specified factor. The scale is centered at the origin.

(Inherited from GeometryBase.)


Public Method

Set tolerances and flags in a Brep.


Public Method

Set tolerances and flags in a Brep.


Public Method

This function can be used to set the BrepTrim::m_iso flag. It is intended to be used when creating a Brep from a definition that does not include compatible parameter space type information.


Public Method

Attach a user string (key,value combination) to this geometry.

(Inherited from GeometryBase.)


Public Method

This function can be used to compute vertex information for a b-rep when everything but the Vertices array is properly filled in. It is intended to be used when creating a Brep from a definition that does not include explicit vertex information.


Public Method

Splits a Brep into pieces using a Brep as a cutter.


Public Method

Splits a Brep into pieces using Breps as cutters.


Public Method

Splits a Brep into pieces using curves, at least partially on the Brep, as cutters.


Public Method

Splits a Brep into pieces using a Brep as a cutter.


Public Method
Split(IEnumerable.GeometryBase., Vector3d, Boolean, Double)

Splits a Brep into pieces using a combination of curves, to be extruded, and Breps as cutters.


Public Method

Standardizes all trims, edges, and faces in the brep. After standardizing, there may be unused curves and surfaces in the brep. Call Brep.Compact to remove these unused curves and surfaces.


Public Method

Create a JSON string representation of this object

(Inherited from CommonObject.)


Public Method

ToString

Returns a string that represents the current object.

(Inherited from Object.)


Public Method

Transforms the geometry. If the input Transform has a SimilarityType of OrientationReversing, you may want to consider flipping the transformed geometry after calling this function when it makes sense. For example, you may want to call Flip() on a Brep after transforming it.

(Inherited from GeometryBase.)


Public Method

Transform an array of Brep components, bend neighbors to match, and leave the rest fixed.


Public Method

Translates the object along the specified vector.

(Inherited from GeometryBase.)


Public Method

Translates the object along the specified vector.

(Inherited from GeometryBase.)


Public Method

Trims a brep with an oriented cutter. The parts of the brep that lie inside (opposite the normal) of the cutter are retained while the parts to the outside (in the direction of the normal) are discarded. If the Cutter is closed, then a connected component of the Brep that does not intersect the cutter is kept if and only if it is contained in the inside of cutter. That is the region bounded by cutter opposite from the normal of cutter, If cutter is not closed all these components are kept.


Public Method

Trims a Brep with an oriented cutter. The parts of Brep that lie inside (opposite the normal) of the cutter are retained while the parts to the outside ( in the direction of the normal ) are discarded. A connected component of Brep that does not intersect the cutter is kept if and only if it is contained in the inside of Cutter. That is the region bounded by cutter opposite from the normal of cutter, or in the case of a Plane cutter the half space opposite from the plane normal.


Public Method
Static Member

Attempts to convert a generic Geometry object into a Brep.


Public Method

Un-joins, or separates, edges within the Brep. Note, seams in closed surfaces will not separate.