Message 1 of 22
Not applicable
04-08-2019
12:09 PM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
Hi All,
I'm trying to compute the intersection volume of the collision of beams, columns, walls, floor slabs, and foundations. Searching the forum I found this topic:
#region #### Se prueba la intersección de geometrias - TEMPORAL ####
List<Solid> solids = new List<Solid>();
foreach (Element e in elementos)
{
solids.Add(get_solid(e));
}
Solid col_solid = solids[0]; // Column
Solid beam_solid = solids[1]; // Beam
Solid fslab_solid = solids[2]; // Floor Slab
Solid interSolid = BooleanOperationsUtils.ExecuteBooleanOperation(col_solid, fslab_solid, BooleanOperationsType.Intersect);
if (Math.Abs(interSolid.Volume) > 0.000001)
{
TaskDialog.Show("debug", "intersecting");
return;
}
Solid unionSolid = BooleanOperationsUtils.ExecuteBooleanOperation(col_solid, fslab_solid, BooleanOperationsType.Union);
double dArea = Math.Abs(col_solid.SurfaceArea + fslab_solid.SurfaceArea - unionSolid.SurfaceArea);
if (dArea < 0.00001 && col_solid.Edges.Size + fslab_solid.Edges.Size == unionSolid.Edges.Size)
{ TaskDialog.Show("debug", "not intersecting, not touching"); }
else { TaskDialog.Show("debug", "touching"); }
#endregion
I implemented this on my code, but for the "interSolid" I get Volume = 0, and I'm intersecting the floor slab with the column. The results for the "intersection" between Column/Beam throws the same result.
What am I missing here? Has someone managed to compute the intersection volume between elements?
Any tip of advice will be very well received!
Regards!
Solved! Go to Solution.