public void DoBinding(MaterialInfo materialParams, MaterialLayerDescription layerDescription, Autodesk.Revit.DB.DisplayUnit?unitSystem) { if (layerDescription != null) { string unitThicknessName = "LayerThickness"; string unitOffsetName = "LayerOffset"; string unitThickness; string unitOffset; if (null == unitSystem) { unitThickness = UnitsAssignment.GetUnitSymbol(unitThicknessName, ElementInfoUnits.Assignments); unitOffset = UnitsAssignment.GetUnitSymbol(unitOffsetName, ElementInfoUnits.Assignments); } else { unitThickness = UnitsAssignment.GetUnitSymbol(unitThicknessName, ElementInfoUnits.Assignments, (Autodesk.Revit.DB.DisplayUnit)unitSystem); unitOffset = UnitsAssignment.GetUnitSymbol(unitOffsetName, ElementInfoUnits.Assignments, (Autodesk.Revit.DB.DisplayUnit)unitSystem); } string stringThicknessValue = layerDescription.LayerThickness.ToString(); string stringOffsetValue = layerDescription.LayerOffset.ToString(); if (null == unitSystem) { stringThicknessValue = UnitsAssignment.FormatToRevitUI(unitThicknessName, layerDescription.LayerThickness, ElementInfoUnits.Assignments); stringOffsetValue = UnitsAssignment.FormatToRevitUI(unitOffsetName, layerDescription.LayerOffset, ElementInfoUnits.Assignments); } LayerThickness.Content = stringThicknessValue + " " + unitThickness; LayerOffset.Content = stringOffsetValue + " " + unitOffset; LayerDescription.Visibility = System.Windows.Visibility.Visible; } else { LayerDescription.Visibility = System.Windows.Visibility.Collapsed; } List <MaterialParameterDescription> matParDescrList = new List <MaterialParameterDescription>(); if (materialParams.Category != MaterialCategory.Undefined) { MaterialName.Content = materialParams.Properties.Name; MaterialDescription.Content = materialParams.Properties.Description; MaterialCharacteristics materialCharacteristics = materialParams.Characteristics; foreach (object o in materialCharacteristics) { List <MaterialParameterDescription> matParDescr = ParameterBinding(o, materialCharacteristics, MaterialCharacteristicsUnits.Assignments, unitSystem); if (null == matParDescr) { continue; } matParDescrList.AddRange(matParDescr); } } switch (materialParams.Category) { case MaterialCategory.Concrete: MaterialConcreteCharacteristics concrete = (MaterialConcreteCharacteristics)materialParams.Characteristics.Specific; foreach (object o in concrete) { List <MaterialParameterDescription> matParDescr = ParameterBinding(o, concrete, MaterialConcreteCharacteristicsUnits.Assignments, unitSystem); if (matParDescr != null) { matParDescrList.AddRange(matParDescr); } } break; case MaterialCategory.Metal: MaterialMetalCharacteristics metal = (MaterialMetalCharacteristics)materialParams.Characteristics.Specific; foreach (object o in metal) { List <MaterialParameterDescription> matParDescr = ParameterBinding(o, metal, MaterialMetalCharacteristicsUnits.Assignments, unitSystem); if (matParDescr != null) { matParDescrList.AddRange(matParDescr); } } break; case MaterialCategory.Timber: MaterialTimberCharacteristics timber = (MaterialTimberCharacteristics)materialParams.Characteristics.Specific; foreach (object o in timber) { List <MaterialParameterDescription> matParDescr = ParameterBinding(o, timber, MaterialTimberCharacteristicsUnits.Assignments, unitSystem); if (matParDescr != null) { matParDescrList.AddRange(matParDescr); } } break; } materialParameters.ItemsSource = matParDescrList; }
public void DoBinding(MaterialInfo materialParams, Autodesk.Revit.DB.DisplayUnit?unitSystem) { List <MaterialParameterDescription> matParDescrList = new List <MaterialParameterDescription>(); if (materialParams.Category != MaterialCategory.Undefined) { MaterialName.Content = materialParams.Properties.Name; MaterialDescription.Content = materialParams.Properties.Description; MaterialCharacteristics materialCharacteristics = materialParams.Characteristics; foreach (object o in materialCharacteristics) { List <MaterialParameterDescription> matParDescr = ParameterBinding(o, materialCharacteristics, MaterialCharacteristicsUnits.Assignments, unitSystem); if (null == matParDescr) { continue; } matParDescrList.AddRange(matParDescr); } } switch (materialParams.Category) { case MaterialCategory.Concrete: MaterialConcreteCharacteristics concrete = (MaterialConcreteCharacteristics)materialParams.Characteristics.Specific; foreach (object o in concrete) { List <MaterialParameterDescription> matParDescr = ParameterBinding(o, concrete, MaterialConcreteCharacteristicsUnits.Assignments, unitSystem); if (matParDescr != null) { matParDescrList.AddRange(matParDescr); } } break; case MaterialCategory.Metal: MaterialMetalCharacteristics metal = (MaterialMetalCharacteristics)materialParams.Characteristics.Specific; foreach (object o in metal) { List <MaterialParameterDescription> matParDescr = ParameterBinding(o, metal, MaterialMetalCharacteristicsUnits.Assignments, unitSystem); if (matParDescr != null) { matParDescrList.AddRange(matParDescr); } } break; case MaterialCategory.Timber: MaterialTimberCharacteristics timber = (MaterialTimberCharacteristics)materialParams.Characteristics.Specific; foreach (object o in timber) { List <MaterialParameterDescription> matParDescr = ParameterBinding(o, timber, MaterialTimberCharacteristicsUnits.Assignments, unitSystem); if (matParDescr != null) { matParDescrList.AddRange(matParDescr); } } break; } materialParameters.ItemsSource = matParDescrList; }