Hi @havmoejbv,
You can extract the top faces of the solid by converting to a brep solid, then extracting the faces from the brep and looking for those whose face normal points up. You can use the following transformers:
I have attached a sample workspace to illustrate the process
Oh, this is nice, and should take me a bit closer to the goal. Thanks @daveatsafe!
The example I show above is a manhole, consisting of four elements - two concrete rings at the bottom, a concrete top and the opening cover.
Running the workbench above I now get one surface on top of each of these solids :
The next task would be to get rid of the lower rings (in this case). Ideally, I would want to end up with the two upper surfaces, the top circumference of the manhole and the top circumference of the manhole cover.
I tried using the solid dissolver. This merged the manhole solids and the cover into one object. The extraction above gives the two surfaces I wanted as parts in an IFMEMultiArea , and I'm sure those can be separateed. But, there is some cluttering data at the bottom of some of them. I guess this is due to minor gaps/misalignments between the element solids:
Example data attached, containing a manhole and two types of ducts. The ducts do not come through as nice as the manhole, unfortunately...
Oh, this is nice, and should take me a bit closer to the goal. Thanks @daveatsafe!
The example I show above is a manhole, consisting of four elements - two concrete rings at the bottom, a concrete top and the opening cover.
Running the workbench above I now get one surface on top of each of these solids :
The next task would be to get rid of the lower rings (in this case). Ideally, I would want to end up with the two upper surfaces, the top circumference of the manhole and the top circumference of the manhole cover.
I tried using the solid dissolver. This merged the manhole solids and the cover into one object. The extraction above gives the two surfaces I wanted as parts in an IFMEMultiArea , and I'm sure those can be separateed. But, there is some cluttering data at the bottom of some of them. I guess this is due to minor gaps/misalignments between the element solids:
Adjusting the normal z component cutoff in the Tester might help eliminating the small pieces. Right now the value is 0.001, which will keep surfaces pointing up even slightly.
This process is really dependent of the source data being proper solids, since that ensures the surface normals point out from the center of the solid. If the source is just a MultiSurface, then we can no longer rely on the orientation of the surface normals.
Adjusting the normal z component cutoff in the Tester might help eliminating the small pieces. Right now the value is 0.001, which will keep surfaces pointing up even slightly.
This process is really dependent of the source data being proper solids, since that ensures the surface normals point out from the center of the solid. If the source is just a MultiSurface, then we can no longer rely on the orientation of the surface normals.
I think the small pieces are from tiny misalignements of the different solids - the circular base is not a true circle, but made out of many triangles. I did a test where I used CoordinateRounder before the Solid Dissolver, and it seemed to get rid of most of it.