Поиск инстанса в точке
Главная › Форумы › Python › Помогите с питон кодом › Поиск инстанса в точке
- В этой теме 6 ответов, 6 участников, последнее обновление 6 лет, 1 месяц назад сделано Анатолий.
-
АвторСообщения
-
Здравствуйте.
Задача:
Есть Семейство1 и Семейство2. Поверх Семейства1 надо вставить Семейства2.
Для избежания дублирования, провожу проверку, а есть ли уже в точке Семейства1 Семейство2.
Если семейство уже есть, то ещё раз вставлять туда семейство Семейство 2 не нужно.Питоновским кодом сравниваю точки, но они не хотят сравниваться (они ВСЕГДА разные, поскольку сравниваются не общие координаты, а объекты). Я полагаю, что точки взятые из разных семейств, действительно разные, как объекты, несмотря на то, что у них общие координаты. Тогда надо сравнивать по координатам точек.
Добраться до координат точек пока не удалось. В РевитАпи есть “Propertie” – Coord (Returns the coordinates of the point). Как добраться до этого свойства и сравнить координаты точек?а это не подходит?
UnwrapElement(IN[0]).Location.Point.X
(X можно заменить на Y или Z) и сравнивать уже значения по каждой из осей координат (и лучше не буквально ==, а с зазором “if (a>b+зазор and a < с – зазор):”).
работает с элементами имеющими Location.Point
например, стена не имеет Location.Point, а имеет Location.Curve (тогда нужно вычислять середину или какую другую точку)
p.s. про какие семейства идет речь?
И можно округлять в нужную сторону. Т.е. мол за запасом в 10мм сравнивать положение точек.
Спасибо. Сейчас сяду писать код сравнения.
Как можно судить по предидущим постам, я инженер-электрик. Семейства меня интересуют самые обычные: розетки и выключатели (на основе рабочей плоскости). Точка вставки там присутствует.
Наши рассуждения меня натолкнули на следущую задачу: автоматически расставлять семейства крепления лотка вдоль “кривой” лотка.К сожалению, из-за основных задач по проектированию, на решение вопросов по программированию у меня мало времени, да и я не программист совсем. Поэтому буду обращаться с вопросами, а также выкладывать результаты разработок.
Спасибо за подсказки.
Мы тут все такие программисты) так что добро пожаловать. С точками, получаемыми из Ревит в Питон есть такая беда, даже если две точки в Ревит априори совпадают, то скорей всего Питон воспримет их как две разные точки и точное сравнение координат даст отрицательный результат. Поэтому нужно предпринимать спецмеры, я например написал функцию округлитель.
владимирУчастникWarning: IronPythonEvaluator.EvaluateIronPythonScript operation failed.
Traceback (most recent call last):
File “<string>”, line 9, in <module>
IndexError: index out of range: 1“index out of range: 1” – на вход ничего не подано, а нужно в IN[0] – ForceChildrensEval, в IN[1] – список точек.
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.