BRep (Boundary Representation)

Print Friendly, PDF & Email

BRep (Boundary Representation)

Within the CAD System there are two main constructs, the object and the elements that make up the object. Lets imagine a Surface Object, it is comprised of nine elements Four Vertex’s, Four Edge’s and a Face.

Surface BRep Elements

The BRep elements have an internal assigned address that is based on the parental elements. For example a Point has a single BRep Vertex, so if a line is constructed between two points, using their vertices the resulting Line will be comprised of three BRep elements two vertices and an Edge. The addresses of the line’s vertices will be {Point1.Vertex} and {Point2.Vertex}. Likewise the lines BRep Edge will be addressed {{Point1.Vertex,Point2.Vertex},Line1.Edge}. This will vary from CAD system to CAD system but they all have a similar problem, how and when to re-reroute.

BRep Reroute

If we were to delete Point1, the child object, the line will still reference the BRep Vertex address related to the deleted point. If we were to update the CAD model, it would fail to update since it cannot find the Point Object and its Vertex. Many CAD systems will require you to edit the line and select a new vertex to fully define the line before allowing it to update.

There are occasions where the CAD system will try to be smart, looking for a BRep element, that is of the same type within a specific distance of the original BRep element, that was related to the original BRep element, either as a direct parent or grand parent and automatically reroute the broken BRep address to this found BRep element.

An example of this would be a point (Point2) that was create from another point (Point1) which is then used to construct a line (Line1) to a third point (Point3). If we would look at the lines BRep Edge address, it might look like this {{{Point1.Vertex}Point2.vertex,Point3.Vertex},Line1.Edge}. We can see that Point2 is constructed from the Vertex of Point1 and so on. If we were to delete Point2, the CAD system would reroute the line automatically back to the vertex belonging to Point1, and the lines BRep Edge address would update to the following {{Point1.Vertex,Point3.Vertex},Line1.Edge}.

But why would we let the CAD system reroute for us explicitly, were better off using an implicit method, so we get what we intended not what the CAD system took best guess at. This is typically achieved by either manually repointing an element or using a function like replace.