Share

Material.Duplicate Method

Duplicates the material


Namespace: Autodesk.Revit.DB
Assembly: RevitAPI (in RevitAPI.dll) Version: 25.3.0.0 (25.3.0.0)

Syntax

C#

public Material Duplicate(
	string name
)

Parameters

name  String
Name of the new material - this name must be correctly structured for Revit use and not duplicate the name of another material in the document.

Return Value

Material
The new material.

Exceptions

ExceptionCondition
ArgumentException name cannot include prohibited characters, such as "{, }, [, ], |, ;, less-than sign, greater-than sign, ?, `, ~". -or- The given value for name is already in use as a material element name.
ArgumentNullException A non-optional argument was null

Remarks

If duplication fails for reasons unrelated to the name, null will be returned.

Example

C#

private bool DuplicateMaterial(Material material)
{
   bool duplicated = false;
   //try to duplicate a new instance of Material class using duplicate method
   //make sure the name of new material is unique in MaterailSet
   string newName = "new" + material.Name;
   Material myMaterial = material.Duplicate(newName);
   if (null == myMaterial)
   {
      TaskDialog.Show("Revit", "Failed to duplicate a material!");
   }
   else
   {
      duplicated = true;
   }

   return duplicated;
}

VB

Private Function DuplicateMaterial(material As Material) As Boolean
    Dim duplicated As Boolean = False
    'try to duplicate a new instance of Material class using duplicate method
    'make sure the name of new material is unique in MaterailSet
    Dim newName As String = "new" & Convert.ToString(material.Name)
    Dim myMaterial As Material = material.Duplicate(newName)
    If myMaterial Is Nothing Then
        TaskDialog.Show("Revit", "Failed to duplicate a material!")
    Else
        duplicated = True
    End If

    Return duplicated
End Function

See Also

Reference

Was this information helpful?