Я пытаюсь сделать как написано в API Guidlines - ну просто учусь как файл создавать и т.п. )))
Вот что я делаю по пунктам:
1. Заранее создаю файл общих параметров и засовываю его в ресурсы сборки
2. Добавляю путь к ресурсам и потом говорю что этот путь - путь к файлу параметров.
3. Далее открываю этот файл чтобы получить к нему доступ.
4. Уже далее, как я понимаю, все действия производятся для того, чтобы создать определения параметра для некоторого объекта - контейнера который потом будет вставляться в "Параметры проекта"
Вот код который я пытаюсь реализовать:
//путь к файлу в сборке
string path = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "SharedFile.txt");
//определение пути для ФОП(файла общих параметров)
app.SharedParametersFilename = path;
//Открытие ФОП
var defifnitionFile = app.OpenSharedParameterFile();
//Новая группа для объекта контейнера
DefinitionGroups myGroups = defifnitionFile.Groups;
DefinitionGroup myGroup = defifnitionFile.Groups.get_Item("Общая группа");
Definition myDefinition_Parameter1 = myGroup.Definitions.Create("Параметр1", ParameterType.Text);
//Новая набор категорий для объекта контейнера
CategorySet myCategories = uiapp.Application.Create.NewCategorySet();
// use BuiltInCategory to get category of Wall
Category myCategory = uiapp.ActiveUIDocument.Document.Settings.Categories.get_Item(BuiltInCategory.OST_Walls);
//Вставка в созданный набор категорий категорию стены
myCategories.Insert(myCategory);
InstanceBinding instanceBinding = uiapp.Application.Create.NewInstanceBinding(myCategories);
BindingMap bindingMap = uiapp.ActiveUIDocument.Document.ParameterBindings;
bool instanceBindOK = bindingMap.Insert(myDefinition_Parameter1,instanceBinding, BuiltInParameterGroup.PG_TEXT);
В этой связи не понятно, во первых постоянно вылетает сообщение об исключении.
Кстати, этот код я делаю в транзакции - ее просто не указал.
Вот эта строка присваивает имя параметру.
Definition myDefinition_Parameter1 = myGroup.Definitions.Create("Параметр1", ParameterType.Text);
Так а зачем мне присваивать имя, если я его уже создал в файле. Как вот из файла все достать что уже создано заранее и имя и идентификатор и группу?
Как проверить
instanceBindOK ?