Bazinga, все-таки я заставил вас создать тему =)
Итак, я код не проверял, но вангую что причина в следующем:
Для переименования вы используете метод
FamilyManager.RenameCurrentType(string typeName). Но если вы внимательно прочитаете описание (
Rename the current family type.) и обратите внимание на то, что метод принимает всего один параметр, то заметите, что чего-то не хватает - метод переименовывает текущий типоразмер и принимает один параметр "новое имя". Ну а текущий типоразмер - это что?
Поэтому, нужно сделать так:
foreach (FamilyType type in fmg.Types)
{
if (type.Name == typeold)
{
fmg.CurrentType = type;
fmg.RenameCurrentType(typenew);
break;
}
}
Т.е. задать текущий типоразмер для FamilyManager