cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
Showing results for 
Search instead for 
Did you mean: 

2024 Technology Preview Program:
Master powerful new features and shape the latest BIM-enabled innovations

Modeling
About Archicad's design tools, element connections, modeling concepts, etc.

How to find the bad node of a complex polygon or mesh?

Anonymous
Not applicable
Hello all - Any tips out there for easily locating or correcting the bad node of an extensive mesh deployed as topography?

The proverbial needle in a haystack! Thanks in advance!
12 REPLIES 12
Anonymous
Not applicable
How do you know you have a "bad node" ?
What are the symptoms ?
Peter Devlin
Anonymous
Not applicable
Hi Peter,

"Invalid polygon, self-intersection, or hole intersects boundary. (M01)"

That's the dialog I see when opening a 3D view. "M01" is the user ID of my mesh.

I also get an error "Internal error occured in the OpenGL 3D engine." report in the little 3D window report window.

We try to do a lot with our meshes - and like to apply lots of user ridges to mark pathways, roads, and etc on the ground surface. However, sometimes it seems when a hole is cut in the mesh, something goes awry and it loses integrity.

Usually you can click right through the "invalid plygon" error message - but it is not an infrequent occurance that with continuing editing all of a sudden ALL the mesh data (ridges & points) will disappear so when possible we like to fix the problem early. However - with a large-ish landscape I have neither the time nor patience to manually check each of several thousand nodes!
Anonymous
Not applicable
leporello,
If you haven't saved yet do "undos" until the problem stops occurring.
Luckily, it sounds like the problem is with the edges of the mesh
or edges of holes.
Peter Devlin
Anonymous
Not applicable
Self intersection points are usually not that hard to find. It should not be necessary to check all the nodes just the ones in particularly tight spots or complex intersections. One such error I have run into is a straight edge joining a tangent arc such that the angle at the intersection point is effectively zero (this was on a driveway at a curb radius).

One reasonably quick way to find the problem is to make a copy of the mesh (check that the copy still has the problem - stranger things have happened). Split the copy in half and see which side breaks. Split the bad half again and so on until you have narrowed the search to a small area. The trick with this is splitting the mesh in ways that do not fix or exacerbate the problem - you need clean, simple axes to split it on.

You may also want to consider splitting up the terrain meshes anyway. In some urban planning work I've done I've found it much easier to work with a collection of smaller meshes than ones that span many blocks. (It was the road/street mesh that I had to split up the blocks were each modeled as separate meshes already.)

The other thing to look into if you are doing a lot of this is ArchiTerra which gives you more specific terrain modeling tools than the generic mesh does.
Anonymous
Not applicable
leporello,
I would like to add some observations.
One, in the case of the mesh tool I would never "click through"
an error message like a self intersection error.
The mesh tool is much more complicated than the fill or slab tool.
Two, I never use the "create hole" command but always use
the "subtract" pet pallet method because the "create hole" is
unreliable and unpredictable.
Three, again in the case of the mesh tool, If you get an error message,
don't always believe that the error is of the type reported.
The self intersection message may appear when there is no self intersection
but some other problem.
To answer your question, there is no easy way to find a bad node in a mesh.
Peter Devlin
Anonymous
Not applicable
Peter,

Good points. Especially the pet palette subtraction and the questionable accuracy of error messages.

What you say reinforces my opinion that meshes should be split into manageable chunks.
Anonymous
Not applicable
Matthew,
I remember you recommending splitting the mesh into manageable chunks
several times in the past and it made sense in any number of situations.
One thing I always wondered about was how do you hide the joints
between the chunks ?
Thanks,
Peter Devlin
Anonymous
Not applicable
Peter,

I split them wherever it is least intrusive or along lines that are natural to the context. It is really a case by case thing. Since the splits will not make a smooth edge in rendering they need to be placed where they will not be seen or where the edge is to be expressed anyway, such as along a contour line.

In the urban planning example I split up the streets at crosswalks and/or between areas of primary interest. The blocks were each a separate mesh (or collection of meshes - depending on the buildings) bounded by sidewalks and curbs.

Another trick I use is to retain the original overall terrain mesh and all the layout lines on a hidden layer so I can quickly reconstitute things from the source. This helps not just to replace broken meshes (of which I haven't had too many) but also to make design changes, since it is often easier to make a new mesh for the altered conditions than to edit a heavily edited one. Spacebar clicking on some slabs is usually a lot faster than stretching edges and nodes around, and the stretching is one of the things that tends to lead to troublesome meshes.
Anonymous
Not applicable
Matthew,
Thank you for clearing that up for me.
I can see that it is particularly practical in the urban design context
Peter Devlin