Сообщество программистов Autodesk в СНГ

ADN Club => Revit API => Тема начата: Art от 14-10-2018, 02:18:20

Название: Floor = Arc + Line
Отправлено: Art от 14-10-2018, 02:18:20
Пытаюсь создать floor через массив Curves. Если все делать с помощью "чертежа" через NewModelCurve, все прекрасно. Но как только стараюсь создать объект floor, мне выдает ошибку, что луп не замыкается.
Ладно, подумал я, и решил тупо создать лишнюю линию между первой точкой первого элемента и первой точкой последнего. Но ревит толерантен, поэтому мне всучил ошибку Revit Tolerance, мол линия слишком мала.
Ладно, подумал я, и стал пробовать заменить последнюю точку на первую. Но если последний arc, то этого у меня сделать не выйдет, я так понимаю. Через Tesselate? Или может у кого есть готовая наработка?
Название: Re: Floor = Arc + Line
Отправлено: Александр Пекшев aka Modis от 14-10-2018, 07:28:21
На самом деле все просто: контур, который вы подаете Ревиту при создании перекрытия, должен не просто замыкаться - он должен быть однонаправленным. Т.е. начало каждой следующей кривой должно быть в конце предыдущей кривой.
Вы можете правильно создавать кривые, а можете просто взять готовый код сортировки кривых у Таммика - Sort and Orient Curves to Form a Contiguous Loop (http://thebuildingcoder.typepad.com/blog/2013/03/sort-and-orient-curves-to-form-a-contiguous-loop.html)
Название: Re: Floor = Arc + Line
Отправлено: Александр Игнатович от 14-10-2018, 19:12:05
+1 к ответу Александра насчет направленности контура. Кстати, это правило достаточно общее для API Revit-а, практически во всех методах, принимающих контур(ы) оно должно соблюдаться.

Ну, и, если, все равно, не получается, кидайте код сюда, попробуем разобраться.
Название: Re: Floor = Arc + Line
Отправлено: Art от 14-10-2018, 19:16:16
Нет, нет. Все отлично работает! Я не нашел кнопки аля "ответ помог/ответ рабочий".
//А нет, проглядел. Вроде есть.
Название: Re: Floor = Arc + Line
Отправлено: Александр Игнатович от 14-10-2018, 19:18:28
Так решение Александр дал, а не я, его пост отметьте как "решение"
Название: Re: Floor = Arc + Line
Отправлено: Art от 15-10-2018, 23:44:59
Я просто запутался, занервничал и перепутал к какому посту относится кнопка решения :)