Core Structural Layer

Question: How can I identify the core structural layer in a Revit host element such as a floor or a wall?

Answer: A heuristic method for this might be searching for the thickest layer. Here is a VB example of searching for the thickest layer of a given floor type and identifying its material, using its CompoundStructureLayerArray layers:

Dim m As Material = Nothing 
Dim layers as CompoundStructureLayerArray = floorType.CompoundStructure.Layers
Dim thicknesses(layers.Size) As Single 
For i As Integer = 1 To layers.Size 
  thicknesses(i) = layers.Item(i - 1).Thickness 
Next 
Dim maxIndex As Integer 
Dim maxV As Single 
MaxValOfIntArray(thicknesses, maxIndex, maxV) 
m = layers.Item(maxIndex - 1).Material 

Unfortunately, the core structure layer may not always be the thickest. Sometimes some other layer such as an insulation of type ThermalOrAir or similar may be thicker.

A more reliable method is to use the CompoundStructureLayer.Function property, which indicates the actual usage of the layer. The core structure layer’s property value is CompoundStructureLayerFunction.Structure. You can go through the wall type or floor type layers as in the example above and determine the layer whose CompoundStructureLayer.Function equals CompoundStructureLayerFunction.Structure.