Brep Class 
Namespace: Rhino.Geometry
The Brep type exposes the following members.
Name  Description  

Brep  Initializes a new empty brep  
Brep(SerializationInfo, StreamingContext) 
Protected constructor used in serialization.

Name  Description  

Curves2D 
Parameter space trimming curves (used by trims)
 
Curves3D 
Pointers to 3d curves (used by edges)
 
Disposed 
Indicates if this object has been disposed or the
document it originally belonged to has been disposed.
(Inherited from CommonObject.)  
Edges 
Gets the brep edges list accessor.
 
Faces 
Gets the brep faces list accessor.
 
HasBrepForm 
Returns true if the Brep.TryConvertBrep function will be successful for this object
(Inherited from GeometryBase.)  
HasUserData 
Gets true if this class has any custom information attached to it through UserData.
(Inherited from CommonObject.)  
IsDeformable 
true if object can be accurately modified with "squishy" transformations like
projections, shears, and nonuniform scaling.
(Inherited from GeometryBase.)  
IsDocumentControlled 
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.)  
IsManifold 
Gets a value indicating whether or not the Brep is manifold.
NonManifold breps have at least one edge that is shared among three or more faces.
 
IsSolid 
Determines whether this brep is a solid, or a closed oriented manifold.
 
IsSurface 
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.  
IsValid  Tests an object to see if it is valid. (Inherited from CommonObject.)  
Loops 
Gets the brep loop list accessor.
 
ObjectType 
Useful for switch statements that need to differentiate between
basic object types like points, curves, surfaces, and so on.
(Inherited from GeometryBase.)  
SolidOrientation 
Gets the solid orientation state of this Brep.
 
Surfaces  Parametric surfaces used by faces  
Trims 
Gets the brep trims list accessor.
 
UserData 
List of custom information that is attached to this class.
(Inherited from CommonObject.)  
UserDictionary 
Dictionary of custom information attached to this class. The dictionary is actually user
data provided as an easy to use sharable set of information.
(Inherited from CommonObject.)  
UserStringCount 
Gets the amount of user strings.
(Inherited from GeometryBase.)  
Vertices 
Gets the brep vertices list accessor.

Name  Description  

AddEdgeCurve 
Add a 3d curve used by the brep edges
 
AddSurface 
Adds a 3D surface used by BrepFace.
 
AddTrimCurve 
Add a 2d curve used by the brep trims
 
Append 
Appends a copy of another brep to this and updates indices of appended
brep parts. Duplicates are not removed
 
CapPlanarHoles 
Returns a new Brep that is equivalent to this Brep with all planar holes capped.
 
ChangeSeam 
Change the seam of a closed trimmed surface.
 
ClosestPoint(Point3d) 
Finds a point on the brep that is closest to testPoint.
 
ClosestPoint(Point3d, Point3d, ComponentIndex, Double, Double, Double, Vector3d) 
Finds a point on a brep that is closest to testPoint.
 
Compact 
Deletes any unreferenced objects from arrays, reindexes as needed, and
shrinks arrays to minimum required size. Uses CUllUnused* members to
delete any unreferenced objects from arrays.
 
ComponentIndex 
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.)  
ConstructConstObject 
Assigns a parent object and a subobject index to this.
(Inherited from CommonObject.)  
CopyTrimCurves 
Copy all trims from a Brep face onto a surface.
 
CreateBaseballSphere 
Creates a brep representation of the sphere with two similar trimmed NURBS surfaces, and no singularities.
 
CreateBlendShape 
Makes a curve blend between points on two surface edges. The blend will be tangent to the surfaces and perpendicular to the edges.
 
CreateBlendSurface 
Makes a surface blend between two surface edges.
 
CreateBooleanDifference(Brep, Brep, Double) 
Compute the Solid Difference of two Breps.
 
CreateBooleanDifference(IEnumerableBrep, IEnumerableBrep, Double) 
Compute the Solid Difference of two sets of Breps.
 
CreateBooleanDifference(Brep, Brep, Double, Boolean) 
Compute the Solid Difference of two Breps.
 
CreateBooleanDifference(IEnumerableBrep, IEnumerableBrep, Double, Boolean) 
Compute the Solid Difference of two sets of Breps.
 
CreateBooleanIntersection(Brep, Brep, Double) 
Compute the Solid Intersection of two Breps.
 
CreateBooleanIntersection(IEnumerableBrep, IEnumerableBrep, Double) 
Compute the Solid Intersection of two sets of Breps.
 
CreateBooleanIntersection(Brep, Brep, Double, Boolean) 
Compute the Solid Intersection of two Breps.
 
CreateBooleanIntersection(IEnumerableBrep, IEnumerableBrep, Double, Boolean) 
Compute the Solid Intersection of two sets of Breps.
 
CreateBooleanUnion(IEnumerableBrep, Double) 
Compute the Boolean Union of a set of Breps.
 
CreateBooleanUnion(IEnumerableBrep, Double, Boolean) 
Compute the Boolean Union of a set of Breps.
 
CreateChamferSurface(BrepFace, Point2d, Double, BrepFace, Point2d, Double, Boolean, Double) 
Creates a ruled surface as a bevel between two input surface edges.
 
CreateChamferSurface(BrepFace, Point2d, Double, BrepFace, Point2d, Double, Boolean, Boolean, Double, Brep, Brep) 
Creates a ruled surface as a bevel between two input surface edges.
 
CreateContourCurves(Brep, Plane) 
Constructs the contour curves for a brep, using a slicing plane.
 
CreateContourCurves(Brep, Point3d, Point3d, Double) 
Constructs the contour curves for a brep at a specified interval.
 
CreateCurvatureAnalysisMesh 
Create an array of analysis meshes for the brep using the specified settings.
Meshes aren't set on the brep.
 
CreateEdgeSurface 
Constructs a coons patch from 2, 3, or 4 curves.
 
CreateFilletEdges 
Fillets, chamfers, or blends the edges of a brep.
 
CreateFilletSurface(BrepFace, Point2d, BrepFace, Point2d, Double, Boolean, Double) 
Creates a constantradius round surface between two surfaces.
 
CreateFilletSurface(BrepFace, Point2d, BrepFace, Point2d, Double, Boolean, Boolean, Double, Brep, Brep) 
Creates a constantradius round surface between two surfaces.
 
CreateFromBox(BoundingBox) 
Constructs new brep that matches a bounding box.
 
CreateFromBox(Box) 
Constructs new brep that matches an aligned box.
 
CreateFromBox(IEnumerablePoint3d) 
Constructs new brep from 8 corner points.
 
CreateFromCone 
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.
 
CreateFromCornerPoints(Point3d, Point3d, Point3d, Double) 
Makes a brep with one face.
 
CreateFromCornerPoints(Point3d, Point3d, Point3d, Point3d, Double) 
make a Brep with one face.
 
CreateFromCylinder 
Constructs a Brep definition of a cylinder.
 
CreateFromJoinedEdges 
Joins two naked edges, or edges that are coincident or close together, from two Breps.
 
CreateFromLoft 
Constructs one or more Breps by lofting through a set of curves.
 
CreateFromLoftRebuild 
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.
 
CreateFromLoftRefit 
Constructs one or more Breps by lofting through a set of curves. Input for the loft is simplified by
refitting to a specified tolerance.
 
CreateFromMesh 
Create a brep representation of a mesh
 
CreateFromOffsetFace 
Offsets a face including trim information to create a new brep.
 
CreateFromRevSurface 
Constructs a brep form of a surface of revolution.
 
CreateFromSphere 
Constructs a Brep definition of a sphere.
 
CreateFromSurface 
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.
 
CreateFromSweep(Curve, Curve, Boolean, Double) 
General 1 rail sweep. If you are not producing the sweep results that you are after, then
use the SweepOneRail class with options to generate the swept geometry
 
CreateFromSweep(Curve, IEnumerableCurve, Boolean, Double) 
General 1 rail sweep. If you are not producing the sweep results that you are after, then
use the SweepOneRail class with options to generate the swept geometry
 
CreateFromSweep(Curve, Curve, Curve, Boolean, Double) 
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
 
CreateFromSweep(Curve, Curve, IEnumerableCurve, Boolean, Double) 
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
 
CreateFromSweepInParts 
Makes a 2 rail sweep. Like CreateFromSweep but the result is split where parameterization along a rail changes abruptly
 
CreateFromTaperedExtrude(Curve, Double, Vector3d, Point3d, Double, ExtrudeCornerType) 
Extrude a curve to a taper making a brep (potentially more than 1)
 
CreateFromTaperedExtrude(Curve, Double, Vector3d, Point3d, Double, ExtrudeCornerType, Double, Double) 
Extrude a curve to a taper making a brep (potentially more than 1)
 
CreateOffsetBrep 
Offsets a Brep.
 
CreatePatch(IEnumerableGeometryBase, Surface, Double) 
Constructs a brep patch.
This is the simple version of fit that uses a specified starting surface.  
CreatePatch(IEnumerableGeometryBase, Int32, Int32, Double) 
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.  
CreatePatch(IEnumerableGeometryBase, Surface, Int32, Int32, Boolean, Boolean, Double, Double, Double, Boolean, Double) 
Constructs a brep patch using all controls
 
CreatePipe(Curve, Double, Boolean, PipeCapMode, Boolean, Double, Double) 
Creates a single walled pipe
 
CreatePipe(Curve, IEnumerableDouble, IEnumerableDouble, Boolean, PipeCapMode, Boolean, Double, Double) 
Creates a single walled pipe
 
CreatePlanarBreps(Curve) 
Constructs a set of planar breps as outlines by the loops.
 
CreatePlanarBreps(IEnumerableCurve) 
Constructs a set of planar breps as outlines by the loops.
 
CreatePlanarBreps(CurveList) 
Constructs a set of planar Breps as outlines by the loops.
 
CreatePlanarBreps(Curve, Double) 
Constructs a set of planar breps as outlines by the loops.
 
CreatePlanarBreps(IEnumerableCurve, Double) 
Constructs a set of planar breps as outlines by the loops.
 
CreatePlanarBreps(CurveList, Double) 
Constructs a set of planar Breps as outlines by the loops.
 
CreateQuadSphere 
Constructs a Brep definition of a quad sphere.
 
CreateShell 
Creates a hollowed out shell from a solid Brep. Function only operates on simple, solid, manifold Breps.
 
CreateSolid 
Constructs closed polysurfaces from surfaces and polysurfaces that bound a region in space.
 
CreateTrimmedPlane(Plane, Curve) 
Create a Brep trimmed plane.
 
CreateTrimmedPlane(Plane, IEnumerableCurve) 
Create a Brep trimmed plane.
 
CreateTrimmedSurface(BrepFace, Surface)  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.
 
CreateTrimmedSurface(BrepFace, Surface, Double) 
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.
 
CullUnused2dCurves  Culls 3d curves not referenced by an edge.  
CullUnused3dCurves  Culls 2d curves not referenced by a trim.  
CullUnusedEdges  Culls edges with m_edge_index == 1.  
CullUnusedFaces  Culls faces with m_face_index == 1.  
CullUnusedLoops  Culls loops with m_loop_index == 1.  
CullUnusedSurfaces  Culls surfaces not referenced by a face.  
CullUnusedTrims  Culls trims with m_trim_index == 1.  
CullUnusedVertices  Culls vertices with m_vertex_index == 1.  
Dispose 
Actively reclaims unmanaged resources that this instance uses.
(Inherited from CommonObject.)  
Dispose(Boolean) 
For derived class implementers.
(Inherited from CommonObject.)This method is called with argument true when class user calls Dispose(), while with argument false when the Garbage Collector invokes the finalizer, or Finalize() method. You must reclaim all used unmanaged resources in both cases, and can use this chance to call Dispose on disposable fields if the argument is true. Also, you must call the base virtual method within your overriding method. In Rhino for Windows, this member is overridden by Dispose(Boolean).  
Duplicate 
Copies this brep.
(Overrides GeometryBaseDuplicate.)  
DuplicateBrep 
Same as Duplicate, but already performs a cast to a brep.
This cast always succeeds.  
DuplicateEdgeCurves 
Duplicate all the edges of this Brep.
 
DuplicateEdgeCurves(Boolean) 
Duplicate edges of this Brep.
 
DuplicateNakedEdgeCurves 
Duplicate naked edges of this Brep
 
DuplicateShallow 
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.)  
DuplicateSubBrep 
Copy a subset of this Brep into another Brep.
 
DuplicateVertices 
Duplicate all the corner vertices of this Brep.
 
EnsurePrivateCopy 
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.)  
Equals  Determines whether the specified object is equal to the current object. (Inherited from Object.)  
Finalize 
Passively reclaims unmanaged resources when the class user did not explicitly call Dispose().
(Inherited from CommonObject.)  
FindCoincidentBrepComponents 
Find the indices of all brep faces, edges and vertices that are within tolerance of a testpoint.
 
Flip 
Reverses entire brep orientation of all faces.
 
GetArea 
Compute the Area of the Brep. If you want proper Area data with moments
and error information, use the AreaMassProperties class.
 
GetArea(Double, Double) 
Compute the Area of the Brep. If you want proper Area data with moments
and error information, use the AreaMassProperties class.
 
GetBoundingBox(Boolean) 
Boundingbox solver. Gets the world axis aligned boundingbox for the geometry.
(Inherited from GeometryBase.)  
GetBoundingBox(Plane) 
Aligned Boundingbox solver. Gets the plane aligned boundingbox.
(Inherited from GeometryBase.)  
GetBoundingBox(Transform) 
Aligned Boundingbox solver. Gets the world axis aligned boundingbox for the transformed geometry.
(Inherited from GeometryBase.)  
GetBoundingBox(Plane, Box) 
Aligned Boundingbox solver. Gets the plane aligned boundingbox.
(Inherited from GeometryBase.)  
GetHashCode  Serves as the default hash function. (Inherited from Object.)  
GetObjectData 
Populates a System.Runtime.Serialization.SerializationInfo with the data needed to serialize the target object.
(Inherited from CommonObject.)  
GetRegions 
Gets an array containing all regions in this brep.
 
GetType  Gets the Type of the current instance. (Inherited from Object.)  
GetUserString 
Gets user string from this geometry.
(Inherited from GeometryBase.)  
GetUserStrings 
Gets a copy of all (user key string, user value string) pairs attached to this geometry.
(Inherited from GeometryBase.)  
GetVolume 
Compute the Volume of the Brep. If you want proper Volume data with moments
and error information, use the VolumeMassProperties class.
 
GetVolume(Double, Double) 
Compute the Volume of the Brep. If you want proper Volume data with moments
and error information, use the VolumeMassProperties class.
 
GetWireframe 
Constructs all the Wireframe curves for this Brep.
 
IsDuplicate  See if this and other are same brep geometry.  
IsPointInside 
Determines if point is inside Brep. This question only makes sense when
the brep is a closed manifold. This function does not 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.
 
IsValidGeometry 
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.
 
IsValidTolerancesAndFlags 
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.
 
IsValidTopology 
Tests the brep to see if its topology information is valid.
 
IsValidWithLog 
Determines if an object is valid. Also provides a report on errors if this
object happens not to be valid.
(Inherited from CommonObject.)  
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.
 
JoinBreps 
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.
 
JoinEdges 
Joins two naked edges, or edges that are coincident or close together.
 
JoinNakedEdges 
Joins naked edge pairs within the same brep that overlap within tolerance.
 
MakeDeformable 
If possible, converts the object into a form that can be accurately modified
with "squishy" transformations like projections, shears, an nonuniform scaling.
(Inherited from GeometryBase.)  
MakeValidForV2 
No support is available for this function.
Expert user function that converts all geometry in brep to nurbs form.  
MemberwiseClone  Creates a shallow copy of the current Object. (Inherited from Object.)  
MemoryEstimate 
Computes an estimate of the number of bytes that this object is using in memory.
(Inherited from GeometryBase.)  
MergeBreps 
Combines two or more breps into one. A merge is like a boolean union that keeps the inside pieces. This
function creates nonmanifold Breps which in general are unusual in Rhino. You may want to consider using
JoinBreps or CreateBooleanUnion functions instead.
 
MergeCoplanarFaces 
Merges adjacent coplanar faces into single faces.
 
MergeSurfaces(Brep, Brep, Double, Double) 
Merges two surfaces into one surface at untrimmed edges. Both surfaces must be untrimmed and share an edge.
 
MergeSurfaces(Surface, Surface, Double, Double) 
Merges two surfaces into one surface at untrimmed edges.
 
MergeSurfaces(Brep, Brep, Double, Double, Point2d, Point2d, Double, Boolean) 
Merges two surfaces into one surface at untrimmed edges. Both surfaces must be untrimmed and share an edge.
 
NonConstOperation 
For derived classes implementers.
(Inherited from CommonObject.)Defines the necessary implementation to free the instance from being const. In Rhino for Windows, this member is overridden by NonConstOperation.  
OnSwitchToNonConst 
Is called when a nonconst operation occurs.
(Inherited from GeometryBase.)  
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.  
RemoveHoles(Double) 
Remove all inner loops, or holes, in a Brep.
 
RemoveHoles(IEnumerableComponentIndex, Double) 
Removes inner loops, or holes, in a Brep.
 
Repair 
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 requried by Rhino.
 
Rotate 
Rotates the object about the specified axis. A positive rotation
angle results in a counterclockwise rotation about the axis (right hand rule).
(Inherited from GeometryBase.)  
Scale 
Scales the object by the specified factor. The scale is centered at the origin.
(Inherited from GeometryBase.)  
SetTolerancesBoxesAndFlags 
Set tolerances and flags in a Brep.
 
SetTolerancesBoxesAndFlags(Boolean, Boolean, Boolean, Boolean, Boolean, Boolean, Boolean, Boolean) 
Set tolerances and flags in a Brep.
 
SetTrimIsoFlags 
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.
 
SetUserString 
Attach a user string (key,value combination) to this geometry.
(Inherited from GeometryBase.)  
SetVertices 
This function can be used to compute vertex information for a
brep 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.
 
Split(Brep, Double) 
Splits a Brep into pieces.
 
Split(Brep, Double, Boolean) 
Splits a Brep into pieces.
 
Standardize 
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.
 
ToString  Returns a string that represents the current object. (Inherited from Object.)  
Transform 
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.)  
TransformComponent 
Transform an array of Brep components, bend neighbors to match, and leave the rest fixed.
 
Translate(Vector3d)  Translates the object along the specified vector. (Inherited from GeometryBase.)  
Translate(Double, Double, Double)  Translates the object along the specified vector. (Inherited from GeometryBase.)  
Trim(Brep, Double) 
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.
 
Trim(Plane, Double) 
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 halfspace opposite from the plane normal.
 
TryConvertBrep 
Attempts to convert a generic Geometry object into a Brep.
 
UnjoinEdges 
Unjoins, or separates, edges within the Brep. Note, seams in closed surfaces will not separate.
