I have an autocad drawing which contains surface (ground) information which has been modelled as an autoCAD solid with a thickness; I want to replicate the ground information in Civil 3D as a tin surface.
I am new to Dynamo and I know what I want to do but am getting very stuck at how to ask dynamo to do it. I have read through some of the forums and found some bits useful - others not.
So far I have managed to select the solids on the layer I want, and get the vertices of the faces, however i have points which share the same X and Y but have different Z values and I cannot wrap my head around how to separate the points based on the ones I want. Basically the top plane (plan view, highest points)
solids conversion.dyn (22.8 KB)
Hi @mark.reeveTXANL,
Sounds like what you need to do is somehow filter out the top faces of the solid. “Top” can be a little tricky to define depending on the orientation of the faces, but a quick-and-dirty method that you could try is to filter the faces by the direction of their normal vectors. It might work in your case to assume that all of the “top” faces have a normal vector Z component > 0, and everything else can be ignored. Something like this:
SolidTopFaces.dyn (21.8 KB)
2 Likes
Thanks for the quick reply! Yes; I basically want the top of the solids.
When you say quick and dirty do you mean it would be hard to process a large amount of information - the area is a site wide plan so quite a large area.
The other question is will the normal vector work if both points are above zero?
I have uploaded a very small part of the drawing; I’m happy to be told if there is a better way of doing it; Ideally I want 3D faces so I can make the surface in C3D; I know you can probably create the C3D surface in C3D but I dont really want to over complicate things.
test point extract.dwg (2.0 MB)
What I meant by “quick-and-dirty” is that this way is pretty simple and would (hopefully) work for your use case, but it is not bulletproof. For example, what about this solid? There isn’t a clear answer to what “top” means in this case, and the approach I outlined above wouldn’t work.
I’m not sure I understand your question. Can you clarify?
Hi -So I have tried your method and it has seemed to work.
To clarify the point above, “top” in the context of the information I am using would be the birds eye view of the site, if you viewed the cube from above in plan (obviously depending on how the cube is rotated) I would want points from the faces that you would see in that plan view.
The Z component of the face’s normal being greater than 0 will generally do this, with some exceptions. However if any of those exceptions are present then I believe that Civil would struggle to generate TIN from it as the surfaces which trigger an exception would have vertical faces (or even faces directed down) which I believe are not permitted in a TIN.
1 Like
Hi, I recommend using a workaround to simplify this task. My suggestion is to create a large solid cube and then use your surface solid to divide or separate it. This approach makes it easier to filter face normal vectors, as recommended in the thread above. Using vector filtering to create a TIN surface from a 3D solid worked well for me: Lukas D. on LinkedIn: #dynamo #civil3d #tin #surfaces #graitec #autodesk #platinumpartner…
@mark.reeveTXANL
As Arshad zachri … There is one inverted surface
Thanks all, I managed to get 3D polylines from the top faces of the solids and will look at most of the surface creating within Civil 3D; as while I like learning new things I don’t have much spare time to do so.
@Drbohlav I would appreciate some more guidance - as the clip I saw looked useful!