Форум пользователей ПО АСКОН

Профессиональные вопросы => Программирование приложений => API Renga => Тема начата: DragDen от 23.11.20, 20:48:07

Название: [.Net] Работа с материалами
Отправлено: DragDen от 23.11.20, 20:48:07
Доброго дня!

Возник такой вопрос - есть ли возможность через Renga API модифицировать перечень материалов и стилей, зарегистрированных в проекте? Из изучения интерфейсов, предоставляемых API, вроде есть возможность получения материала по его идентификатору через MaterialManager, однако возможности добавлять новые и вносить изменения в существующие материалы найти не удалось.
Конечно, через графический интерфейс это можно сделать, но интересует возможность реализовать это именно через Renga API.
Или, возможно, подобное можно реализовать каким-либо иным способом?
Заранее благодарен за ответ.
Название: Re: [.Net] Работа с материалами
Отправлено: p3452 от 23.11.20, 21:24:04
API Renga плох тремя "несуразностями".
1. Справка по API на английском языке!? (достаточно странно для "Российской BIM системы").
2. API ориентирован только на ЧТЕНИЕ (не менее "странно", учитывая низкий уровень автоматизации построений в программе).
3. Пастельные тона всего, что связанно с Renga - интерфейс, справка, документация, сайт,..., справка API Renga.
Название: Re: [.Net] Работа с материалами
Отправлено: Tyan Evgeniy от 24.11.20, 08:58:21
Здравствуйте! Сейчас к сожалению нет возможности редактировать материал. Пока что реализовано только редактирование пользовательских свойств.
Опишите пожалуйста вашу задачу, речь о каком-то каталоге?
Название: Re: [.Net] Работа с материалами
Отправлено: p3452 от 24.11.20, 11:21:22
Цитата: Tyan Evgeniy от 24.11.20, 08:58:21Пока что реализовано только редактирование пользовательских свойств.

Прогресс!!!
А вот мне интересно, а добавить программно можно ЭТИ свойства?!
Или, добавь вначале руками ЭТИ свойства (объект с ЭТИМИ свойствами), а потом уже можешь программно их редактировать?
Название: Re: [.Net] Работа с материалами
Отправлено: DragDen от 25.11.20, 13:37:37
Цитата: Tyan Evgeniy от 24.11.20, 08:58:21Здравствуйте! Сейчас к сожалению нет возможности редактировать материал. Пока что реализовано только редактирование пользовательских свойств.
Опишите пожалуйста вашу задачу, речь о каком-то каталоге?

Не только пользовательских свойств, параметры тоже. То есть, например, назначенный стене материал поменять можно. А вот непосредственно перечни...

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

Цитата: p3452 от 24.11.20, 11:21:22Прогресс!!!
А вот мне интересно, а добавить программно можно ЭТИ свойства?!
Или, добавь вначале руками ЭТИ свойства (объект с ЭТИМИ свойствами), а потом уже можешь программно их редактировать?

Да, пользовательские свойства можно добавлять через Renga.IPropertyManager, методы RegisterProperty и затем - AssignPropertyToType.
Пример (на VB.NET):
Private PROP_GUID As Guid = Guid.Parse("ba44d2cc-6d51-42c9-a11a-e4c7416da212")
Private Sub RegisterProperty(app As Renga.Application)
    Dim prj As Renga.IProject = app.Project
    Dim propManager As Renga.IPropertyManager = prj.PropertyManager

    Dim propDesc As New Renga.PropertyDescription() With
        {
            .Name = "Доп.свойства",
            .Type = Renga.PropertyType.PropertyType_String
        }

    propManager.RegisterProperty(PROP_GUID, propDesc)
    propManager.AssignPropertyToType(PROP_GUID, Renga.ObjectTypes.Wall)
End Sub
Название: Re: [.Net] Работа с материалами
Отправлено: Tyan Evgeniy от 25.11.20, 16:37:54
Цитата: DragDen от 25.11.20, 13:37:37Задача по сути весьма простая - на основе полученных из внешнего источника данных автоматически занести параметры материалов и стилей в проект, чтобы этого не приходилось делать вручную.

Спасибо! Уточните о каких стилях речь?
С материалами понятно. Задача такая есть в планах, но о сроках пока ничего сказать не могу(

Название: Re: [.Net] Работа с материалами
Отправлено: p3452 от 25.11.20, 17:10:26
DragDen,  спасибо за ответ и пример!
(Проблемы с английским, не позволяют нормально освоить  API Renga)