Unable to calculate area of this surface

…and I can’t see the reason.
It looks like a rather simple surface.

200429_MOD_Cant calculate area.3dm (50.5 KB)

There is something odd about the way this surface was trimmed.
When untrimmed it calculated well, with some other custom trims it calculates as well.

After rebuilding it also works fine.

Yeah, I noticed that too, but the question is : what is “odd” about my trimming curves ?

Maybe if you posted with trimmers we’d have some clue.

Sure thing.

200429_MOD_Cant calculate area_With trimmers.3dm (314.3 KB)

Oddly enough, untrimming and re-trimming makes the area measurable…

Indeed. Something went wrong during the first operation but after repeating the trim I get the correct result too. Maybe there is something with order of picking the trimming elements?
Edit: I was able to repeat this error by doing one-by-one trimming.
It trims well until the last operation with two diagonal curves.
When you rebuild those curves the result is also correct so the problem lies inside curves.

Yeah, but they really have nothing special going on…

Hello- I do not see why this fails either, I’ll put it on the pile for a developer to look at, thanks for the example.
Reparamaterize > Automatic sorts it out.

RH-81776 Area fails - example


Do you know how that surface was created? The 2d-trimming curves have a loop. We shouldn’t be making those.

Hi Greg, do you mean that “Loop” ?

What’s wrong with that ?

I guess I should say the 2d trim loop has a self-intersection. It is not a simple closed curve.
RH-81776._MOD_Cant calculate area (detail).3dm (59.7 KB)

The left viewport is zoomed in on the lower right corner. It shows the intersection point of the loop.

If you can document the before and after of making a surface that won’t work with the Area command then we can identify where our code needs to be fixed. That would be very helpful. Surfaces that have the error is what I usually see but that doesn’t help figure out where the error was introduced.

OK, next time, I’ll provide the trim objects right away, sir.

Anyways, the loop in question is 0.00000184 units long while the absolute tolerance in your file is 0.001.
I believe that in my original file, it is 0.01, so perhaps there could be some kind of automatic clean-up added to get rid of the Plank-scale crumbs ?