- Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
- Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
- Не надо писать свой вопрос в первую попавшуюся тему - всегда лучше создать новую тему.
- За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения. Непонятно? - Читать здесь.
- Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
- Перед тем как что-то написать - читать здесь, а затем здесь и здесь.
- Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.
SelectionSet самому задать
Модератор: специалисты Eplan
-
- здесь недавно
- Сообщения: 19
- Зарегистрирован: 11 апр 2019, 06:55
- Имя: Марат
- Благодарил (а): 1 раз
- Поблагодарили: 1 раз
SelectionSet самому задать
я могу задать объект который должен быть выделен сам, через api ? То есть чтобы в SelectionSet положить свой список объектов, через api динамически, если да, то как это сделать можно? Пример маломальский бы желательно.
-
- здесь недавно
- Сообщения: 19
- Зарегистрирован: 11 апр 2019, 06:55
- Имя: Марат
- Благодарил (а): 1 раз
- Поблагодарили: 1 раз
SelectionSet самому задать
выделить и получить к нему доступ
Можно пример в пару строк как выделить?
-
- знаток Eplan
- Сообщения: 1457
- Зарегистрирован: 17 окт 2012, 11:24
- Имя: Виталий
- Страна: Беларусь
- город/регион: Минск
- Благодарил (а): 61 раз
- Поблагодарили: 182 раза
SelectionSet самому задать
Код: Выделить всё
StringCollection scFuncIds = new StringCollection();
foreach (Function oFunction in arrFunctions)
{
//get object id
string objectId = oFunction.Properties.PROPUSER_DBOBJECTID;
//get index of first separator
int idxOfSlash = objectId.IndexOf("/", 1, objectId.Length - 1, StringComparison.InvariantCultureIgnoreCase);
//cut off value before first separator together with this separator
string objectIdWithoutProjectId = objectId.Substring(idxOfSlash + 1, (objectId.Length - idxOfSlash - 1));
//add value to array
scFuncIds.Add(objectIdWithoutProjectId);
}
//remove selection from all object and then select objects passed as in a list
new Edit().SelectObjects(m_TestProject.ProjectLinkFilePath, scFuncIds, true);
strFullLinkFileName: Full link file name of the project. The already selected objects will be deselected.
objectIds: List of Ids of objects to be selected. Note that an object Id MUST have three parts separated with slash: Type/Id/transient flag. Transient flag can have 2 values, 0 means object is persistent, 1 means object is transient. e.g.: 17/142/0. When you get the object Id from Properties.PROPUSER_DBOBJECTID, you have to remove the first number (project id) and the first '/' from this string (see example).
bDeselectAll: Deselect all objects which were already selected.
-
- знаток Eplan
- Сообщения: 1136
- Зарегистрирован: 21 сен 2012, 22:45
- Имя: aranea
- Благодарил (а): 30 раз
- Поблагодарили: 165 раз
SelectionSet самому задать
Madwolf, мне кажется, автор не знает, что есть DMObjectsFinder, поэтому пытается выделить нужные объекты, чтобы получить к ним доступ, вместо того, чтобы найти их