Сообщество программистов Autodesk в СНГ
ADN Club => Revit API => Тема начата: enot от 16-08-2020, 19:40:20
-
возможна ли сортировка элементов в порядке их создания? пример: собираем все элементы определенной категории и сортируем в порядке их создания
-
Я не нашел свойств и методов, которые бы явно указывали на порядок создания. Думаю, что таких нет. Можешь попробовать сортировать по свойствам UniqueId и/или Id
-
В режиме совместной работы - нет, в однопользовательском режиме - как посоветовал Александр по Id
-
Спасибо за ответы.
В чем разница UniqueId и Id ?
-
В чем разница UniqueId и Id ?
Это даже я в документации нашел...
Подробное описание здесь: https://thebuildingcoder.typepad.com/blog/2015/02/understanding-the-use-of-the-uniqueid.html
-
ээээ...Id - представляет собой код, по которому можно найти элемент, вкладка управление, команда "выбрать по коду". Можно использовать для идентификации элементов в рамках одного запуска команды, хранить в сторонней базе (в каком бы то ни было варианте) не стоит, поскольку в режиме совместной работы может измениться после синхронизации с центральным файлом. UniqueId - строка, часть строки идентифицирует файл, вторая - guid, не меняется после синхронизации, условно уникальный, пока файл не был физически скопирован
-
поскольку в режиме совместной работы может измениться после синхронизации с центральным файлом.
Ого, я думал Id неизменно. По какой причине в режиме совместной работы такое просходит ?
-
enot,
Из документации:
Remarks
The Value within the ElementId is only unique with a single project. It is not unique across several projects. The Id can be used to retrieve a specific element from the database when needed. However ids are subject to change during an Autodesk Revit session and as such should not be retained and used across repeated calls to external commands. If a manner is needed to uniquely identify an element beyond this limitation then a shared parameter should be added to the element containing a unique identifier managed by the external application.
-
Ого, я думал Id неизменно. По какой причине в режиме совместной работы такое просходит ?
Самый простой и понятный случай - пользователь А создает новый элемент с id = 13578, пользователь B создает элемент с id = 13578, нужно как-то объединить данные, остальные - под покровом тьмы, мало ли в каких случаях движок, возможно, с целью оптимизации, захочет поменять элементы местами.
В любом случае
However ids are subject to change during an Autodesk Revit session and as such should not be retained and used across repeated calls to external commands
-
хочу разобрать на примерах чтобы понимать (что из написанного ниже верно, что нет)
допустим есть общий файл
Пример 1. в локальном файле пользователя 1 семейство имеет id =123
в локальном файле пользователя 2 это же семейство имеет id =123 либо может иметь другое ( id =234)
Пример 2. я работаю в локальном файле у семейства id = 123 но после синхронизации оно может измениться ( id =234)
-
Пример 1 - сильно вряд ли, пример 2 - вполне реален
-
пример 2 - вполне реален
(https://i.postimg.cc/rz2fWwcS/cat.jpg) (https://postimg.cc/rz2fWwcS)