Используй метод Parameter.Set взамен.
Здесь не очень ясно отображено в документации, исходим из логики, представленной API в классе Parameter. У него есть методы .AsString() и .AsValueString(), если тип параметра строковой, то AsString вернёт значение параметра, .AsValueString() - вернёт null. Если, например, параметр типа "Да/Нет", то результат AsString() будет null, AsValueString(), например, "Да", (AsInteger() == 1)
Таким образом, например, для параметра типа "Да/Нет" будет рабочим код parameter.SetValueString("Да") (ну, пока пользователь не запустит Revit на английском языке, по этой же причине не рекомендую использовать метод LookupParameter). Возможно, американцам он удобен с их имперскими "1 1/2 дюйма", но лучше пользоваться одним из overload-ов метода Parameter.Set