In this same vein, How do I set my building "foundations" to follow the terrain. At the moment I have to set each building foundation's elevations so the building's are level.
To get a foundation shape:
1. Run Align Shapes to Terrain command, and choose Project All, so that each vertex is on the terrain.
2. In your rule's start shape, put alignShapeToAxes(y) to make sure the scope (bounding box for the vertices) is aligned with y axis straight up.
3. At this point, the scope.sy attribute of the shape is the height of your foundation.
Oh, never mind, I just wrote a rule to demonstrate it:
version "2014.1" # For use on non-flat building footprint, # so project footprint to terrain using Align Shapes to Terrain (Project All option). @Hidden attr originalScopeY = 0 @StartRule SlantedBuildingFootprint --> # Align scope to have y axis up. alignScopeToAxes(y) # Save this shape's height. set(originalScopeY, scope.sy) # Flatten footprint by scaling y to zero. s('1,0,'1) extrude(originalScopeY) color(1,0,0) # Make it transparent for demo purpose. set(material.opacity, 0.5) # At this point the top or bottom can be used for floors (basement and upper floors.
Picture of original slanted footprint, with foundation. This shape represents if you build a foundation shape that reaches the highest and lowest points where your shape hits the terrain. Is this what you are looking for? -Chris
This ensures no part of your first floor "sinks" below the ground, but you might choose to lift the top face a bit to get the foundation to show at least a foot or so before starting your ground floor.