Гуру, вы знаете как это сделать программно? Спасибо...
Сначала, следует разобраться, как это сделать руками :-) Подскажу, отредактировать семейство, создать параметр, загрузить семейство обратно в проект. Собственно, программно это делается ровно так же.
Дальше твой вопрос разбивается на несколько:
1. Как отредактировать? - методом Document.EditFamily получаем документ семейства
2. Как создать общий параметр семейства? - методом Document.FamilyManager.AddParameter:
public FamilyParameter AddParameter(
ExternalDefinition familyDefinition,
BuiltInParameterGroup parameterGroup,
bool isInstance
)
Здесь, напомню, работаем с документом именно семейства (из п.1), естественно, не забываем о транзакциях. Определение общего параметра получаем из файла общих параметров. Методом Application.OpenSharedParameterFile получаем DefinitionFile, дальше структура повторяет то, что ты видишь в UI, группы, сами параметры и т.д.
3. Как загрузить семейство в проект обратно? - метод Document.LoadFamily -
public Family LoadFamily(
Document targetDocument,
IFamilyLoadOptions familyLoadOptions
)
Второй параметр - либо сам реализуешь интерфейс, либо можешь воспользоваться UIDocument.GetRevitUIFamilyLoadOptions - стандартный диалог при замене семейства.
Ну и в конце, желательно закрыть документ семейства, открытый в п.1