This is really bad… after extruding a simple rectangle, the edge order no longer corresponds to face order…
Surprised to find such basic fundamentals in data managing fail.
Hi Shynn Sup,
this has always been the case — it’s not a data management failure, it’s how breps work. The face and edge lists of a brep are its internal topology arrays, and their order comes from how the brep was assembled, not from your input curve. There is no guaranteed correspondence between edge index and face index, or between either of those and the rectangle’s segment order. If you need a stable order, sort the faces/edges yourself by something geometric (center points work well), or pull the relationships explicitly with the Brep Topology component.
@dale explains what DeBrep actually returns here.. Deconstruct Brep on deconstructed brep Faces returns weird Vertex lists - #10 by dale and there’s an open wish to make it friendlier: https://mcneel.myjetbrains.com/youtrack/issue/RH-89205
Hi Japhy,
I’m not sure I understand the point you’re making.
I believe in fundamental truths but I don’t believe “this is how BREPs work” is one of them.
Even assuming Breps normally behave this way, I don’t see why the Extrude command couldn’t perform some internal reordering to produce a more predictable result. After all, it is software, and part of its purpose should be to make the operation easier and more intuitive for the user.
When I:
Explode Curve → Extrude → Brep Join → Deconstruct Brep
The faces come back in the correct and expected order. Is the joined Brep invalid? No. It is a valid Brep with the desired face order.
So clearly, a Brep can exist with either face ordering, which conflicts with the claim that “this is simply how Breps work.” Two contradictory propositions cannot both be universally true in the same sense and at the same time. If both orderings are valid, then neither can be presented as an inherent or unavoidable truth about Breps.
You can order it however you want - you’re really making a mountain out of a molehill here
If I can order it however I want, then so can Rhino’s developers, which is exactly why “this is just how Breps work” is not a convincing answer.
But it not even about ordering after the operation. In the example I showed, I extruded separate curves and joined the faces, and the order was maintained. Which clearly contradicts “how breps work” That was the point of my example. Not to organize it after. Guess you missed that.
And yes, I’m perfectly entitled to make whatever mountain I want out of whatever molehill I choose, thank you very much.
It is also a little funny to hear that criticism from someone who wrote nearly an essay the other day in response to a guy simply sharing a cool AI workflow.
Alright, continue being completely obnoxious
As noted by the developers, there isn’t a safe way to do this without breaking existing definitions.