Delete 'Faces only' the curve-shape, leaving a network of edges
Knife Project the network down onto a plane
Delete away unwanted parts of the plane
X > Limited Dissolve unwanted edges (there may be some minor repair work to do)
Extrude the result, which is then OK for a Boolean.
If you select all and merge vertices by distance (alt + m) to avoid separate faces, you can then use Recalculate Normals function (shift + n outside, or shift + ctrl + n inside). If that does not work, it means there is simply no way for the algorithms to determine what the right direction might be - if for example you had a few separate planes in random ...
Use the Knife Project tool: https://docs.blender.org/manual/en/latest/modeling/meshes/editing/subdividing/knife.html#knife-project Make sure you turn on Cut Through option
.. Or the Knife Tool and hit Z key to make sure to turn on Cut through:
Is there a better way to import the files that will give me a cleaner mesh?
This is less a Blender question at this point than a Sketchup question; The import isn't making all the tris, Sketchup is. Perhaps see if there's a "quads" export option.
Assuming that isn't an option (because if it is, you can stop reading), you have two options;
1: Retopologize ...
To create internal geometry recommend using a boolean as explained here Slicing an object in 4 parts
Code from my answer edited to split the cube into 8. (2 x 2 x 2)
from mathutils import Matrix, Vector
context = bpy.context
ob = context.object
size = 4 * max(ob.dimensions)
mw = ob.matrix_world
If you say the knife does not work for you, as it only cuts the surface, then you may want to use the option Z to Cut Through, for a snapping on angles to ensure a clean cut, you can also use C, so a cut from the front or any orthogonal view can be made in a straight line.
Here the optional functions of the knife tool:
A cut through cube:
Another option ...
If i understand you, you have the airways components as one object and a cube that you placed around it.
If so, then i would believe all you need to do is the following:
Select the airway components and go in edit mode
Press A to select all elements
Press Alt+N and select "Flip" to flip the normals. (the outsides become the insides and vice versa)
Now go ...
Not perfect (but imperfections are like the one we have bevelling or insetting, etc. too far), and that can also be the case with a curve and bevel object.
Start with the first two vertices of the curve, a segment S0 = (V0, V1)
Get the location of the starting position of the // curve P0
Calculate the displacement D0 = (V0, P0)
Maybe, instead of the native curve bevel, you can use Array and Curve modifiers on a profile segment ..(blue section, below)
The array can have 'Start' and 'End' caps (red and yellow). It's easier to use Constant Offset in the array. Adjust (here, in Z,) the positions of the caps in Edit Mode, until the 'Merge' in the array takes, before giving the array ...
Daily Blender Secrets - Fix Overlapping Particles with Blue Noise Particles add-on
Daily Blender Secrets - Fix Overlapping Particles
Daily Blender Secrets - Non-Overlapping Particles (Method 3)
Download the zip file
In Blender, go to Edit; Preferences; Addons; then select install from file and pick the zip. Tick the checkbox to enable the ...
You could make your extrusion mechanically, as you have, but to 0 height, make a vertex group from the extruded vertices, and aim a Displace modifier at it, followed by a Weld to disappear it when you set the displacement to 0.
Advantages over the Boolean given by @person ? Not many.. unless the Boolean is playing up because of necessarily coincident faces
You can add a groove using a boolean modifier.
My process would be as follows:
Duplicate some faces from your original, then separate them into another object.
Scale them down, and extrude out some thickness to get the inverse of the groove you want:
Add a boolean modifier on the first object set to difference, and select the new object as the target:
Assuming you do have a closed, clean, manifold surface, and you're looking for the number of genuine topological holes, you could use the surface's Euler Characteristic? (You'd better get Math SE to check me up on that one) .. anyway...
Object mode, select the object, run this snippet..
ob = bpy.context.object
me = ob.data
v = len(me.vertices)
Downloaded the file, here one solution:
This is only one possible solution but can be applied to both sides of the geometry, you can do other ways, but that depends on what you prefer. That said, it's important to remember that "Face Orientation", picture below lower part, helps to find the problems.
Faces shown as blue represent the outside of the volume ...