ID элемента в параметр

Каждый элемент в модели Revit имеет уникальный числовой идентификатор — ID. Revit позволяет показать ID выбранного элемента, а также найти элемент в модели по его ID.

ID много где используется, например, выводится в отчетах об ошибках или пересечениях:

ID элемента недоступен непосредственно в свойствах элемента, но бывает задача, например, вывести его в марку или спецификацию.
Для решения этой задачи написал небольшой макрос:

public void CopyIdToSharedParameter()
{
 string paramName = "Марка";
 Document doc = this.ActiveUIDocument.Document;
 View activeView = this.ActiveUIDocument.ActiveView;
 List<Element> elems = new FilteredElementCollector(doc, activeView.Id)
  .WhereElementIsNotElementType()
  .ToElements()
  .ToList();
 int count = 0, err = 0;
 using(Transaction t = new Transaction(doc))
 {
  t.Start("ID в общий параметр для " + elems.Count.ToString() + " элементов");
  foreach(Element elem in elems)
  {
   if (elem is Group) continue;
   try
   {
    string id = elem.Id.IntegerValue.ToString();
    elem.LookupParameter(paramName).Set(id);
    count++;
   }
   catch {err++ ;}
  }
  t.Commit();
 }
 TaskDialog.Show("Отчет", "Успешно обработано: " + count + ", ошибок: " + err);
}

В начале в кавычках укажите имя параметра, в который будет записан ID.
Параметр должен быть создан через "Параметры проекта", текстовый, по экземпляру, с опцией "может изменяться по экземплярам группы".
Макрос обрабатывает все элементы, видимые на текущем виде.
Как подключить макрос.