CompoundStructureLayerMaterialId Property |
Id of the material assigned to this layer.
Namespace: Autodesk.Revit.DBAssembly: RevitAPI (in RevitAPI.dll) Version: 25.0.0.0 (25.0.0.0)
Syntaxpublic ElementId MaterialId { get; set; }
Public Property MaterialId As ElementId
Get
Set
public:
property ElementId^ MaterialId {
ElementId^ get ();
void set (ElementId^ value);
}
member MaterialId : ElementId with get, set
Property Value
ElementId
The default is InvalidElementId.
Exceptions
Examplepublic void GetWallLayerMaterial(Autodesk.Revit.DB.Document document, Wall wall)
{
WallType aWallType = wall.WallType;
if (WallKind.Basic == aWallType.Kind)
{
CompoundStructure comStruct = aWallType.GetCompoundStructure();
Categories allCategories = document.Settings.Categories;
Category wallCategory = allCategories.get_Item(BuiltInCategory.OST_Walls);
Autodesk.Revit.DB.Material wallMaterial = wallCategory.Material;
foreach (CompoundStructureLayer structLayer in comStruct.GetLayers())
{
Autodesk.Revit.DB.Material layerMaterial = document.GetElement(structLayer.MaterialId) as Material;
if (null == layerMaterial)
{
switch (structLayer.Function)
{
case MaterialFunctionAssignment.Finish1:
layerMaterial =
allCategories.get_Item(BuiltInCategory.OST_WallsFinish1).Material;
break;
case MaterialFunctionAssignment.Finish2:
layerMaterial =
allCategories.get_Item(BuiltInCategory.OST_WallsFinish2).Material;
break;
case MaterialFunctionAssignment.Membrane:
layerMaterial =
allCategories.get_Item(BuiltInCategory.OST_WallsMembrane).Material;
break;
case MaterialFunctionAssignment.Structure:
layerMaterial =
allCategories.get_Item(BuiltInCategory.OST_WallsStructure).Material;
break;
case MaterialFunctionAssignment.Substrate:
layerMaterial =
allCategories.get_Item(BuiltInCategory.OST_WallsSubstrate).Material;
break;
case MaterialFunctionAssignment.Insulation:
layerMaterial =
allCategories.get_Item(BuiltInCategory.OST_WallsInsulation).Material;
break;
default:
break;
}
if (null == layerMaterial)
{
layerMaterial = wallMaterial;
}
}
TaskDialog.Show("Revit","Layer Material: " + layerMaterial);
}
}
}
Public Sub GetWallLayerMaterial(document As Autodesk.Revit.DB.Document, wall As Wall)
Dim aWallType As WallType = wall.WallType
If WallKind.Basic = aWallType.Kind Then
Dim comStruct As CompoundStructure = aWallType.GetCompoundStructure()
Dim allCategories As Categories = document.Settings.Categories
Dim wallCategory As Category = allCategories.Item(BuiltInCategory.OST_Walls)
Dim wallMaterial As Autodesk.Revit.DB.Material = wallCategory.Material
For Each structLayer As CompoundStructureLayer In comStruct.GetLayers()
Dim layerMaterial As Autodesk.Revit.DB.Material = TryCast(document.GetElement(structLayer.MaterialId), Material)
If layerMaterial Is Nothing Then
Select Case structLayer.[Function]
Case MaterialFunctionAssignment.Finish1
layerMaterial = allCategories.Item(BuiltInCategory.OST_WallsFinish1).Material
Exit Select
Case MaterialFunctionAssignment.Finish2
layerMaterial = allCategories.Item(BuiltInCategory.OST_WallsFinish2).Material
Exit Select
Case MaterialFunctionAssignment.Membrane
layerMaterial = allCategories.Item(BuiltInCategory.OST_WallsMembrane).Material
Exit Select
Case MaterialFunctionAssignment.[Structure]
layerMaterial = allCategories.Item(BuiltInCategory.OST_WallsStructure).Material
Exit Select
Case MaterialFunctionAssignment.Substrate
layerMaterial = allCategories.Item(BuiltInCategory.OST_WallsSubstrate).Material
Exit Select
Case MaterialFunctionAssignment.Insulation
layerMaterial = allCategories.Item(BuiltInCategory.OST_WallsInsulation).Material
Exit Select
Case Else
Exit Select
End Select
If layerMaterial Is Nothing Then
layerMaterial = wallMaterial
End If
End If
TaskDialog.Show("Revit", "Layer Material: " & layerMaterial.ToString())
Next
End If
End Sub
No code example is currently available or this language may not be supported.
No code example is currently available or this language may not be supported.
See Also