Hi,
I am working on a workspace that makes 3D Citymodels. My input is 3d polygons in a geodatabase. The output can be either 3ds or CityGML (prefer both).
I Encounter a couple of issues while making the workspace.
- Extrude to a value from an attribute, is not possible. My workaround for this includes the use of the Clipper transformer. But..
- For some unknown reason the clipper terminates (or gets stuck) at some random point.
- The clipper rejects some 3d objects, but some are fine (seems random?)
- When comparing the Extruded 3d objects to objects from the SolidBuilder, there is a diffrence in the format. I have been unable to transform from Extrusion to Solids objects or visa versa. How do i do that?
The Clipper workaround can handle my smaller dataset whitout any issue. I tried my best to format the clipper and clippee input, but, this had no effect what so ever for the real big data. It always gets stuck or terminates without a message why it did. This is also the reason why i cannot inspect the rejected features.
Changing the settings of the clipper has had no effect either. I feel like, i tried any possible combination of settings at this point.
About the issue between solids and extrusions: The output from the SolidBuilder is not accepted by the custom transformer 'SolidDissolver'. That is why i think that i need to change the solids to another type that is accepted (extrusions seem to work). The normal dissolver does not seem to work with 3d at all, but i havent experimented to the full extend yet so i cant say for sure though. The only way to that enables me to use the solid builder with my input that is if i use the other custom transform 'BRepSolidBoundaryCreator.Beta'.
The use of the solid builder combined with the BRepSolidBoundaryCreator can replace the clipper entirely for this part. but i am afriad that later on i still need to implement some clippers to create a valid topology between layers. This is the reason why i like to keep both options open and tackle both their issues.
I have been googling like a mad man for the past two days and can say for sure that i've read (almost any) post that relates to my issue. Non of those really solved my issue.
My input data consicts of 3d polyogons: (some are flat and some are complex)
- The flat 3d polygons can be easily extruded with the extrude transformer. i calculate the delta between the Z of the flat 3d polygon and the value in the attribute and simply extrude it negatively.
- The Complex Polygons however are a little harder. My clipper workaround works like this:
- i create the create that the 3d polygon needs to be extruded towards to (flatten to attribute)
- I extrude the groundplane negatively with a distance of the delta between Z-min and Zmax (this is my clipper)
- I extrude the 3d complex polygons based on the delta between groundplane and Z-max (negatively). The complex shape of the original polygon is also the shape of the bottom of the object, this is not what i want, therefore it has to be clipped by the clipper
- I clip groundplane and extruded complex polygons, the outside-port of the clipper is the output i need.
This works, but for some reason, as i mentioned earlier, the clipper gets stuck when handling my big dataset and i dont know why.
(see picture)
The other method is using the solidbuilder. the output from the SolidBuilder is not accapted by the SolidDissolver. why? And how to work around this?
(see picture)
My input looks like this:
From what i can tell is that there is a lot of people in the same possition as where i am now. 3D tranformations are lacking, slow and prone to bugs. I recommend safe software to improve on this. But until then, is there anyone that has a good idea that i can try?
Nick Janse