Линия привязки
В статье обсудим небольшую проблему, с которой мы уже давно не сталкивались, но по ней я опять получил несколько вопросов.
Вопрос: Я создаю программку, которая генерирует BIM-модель из чертежа.
В одном из шагов я создаю перекрытие и затем стену. Причем внешняя сторона стены должна находиться именно на краю созданного перекрытия.
В своем приложении я использую линии и дуги для создания перекрытия. К сожалению, в этом случае, стена, созданная на одной из этих линий располагается так, что половина стены находится на перекрытии, а другая половина висит в воздухе.
Как можно это исправить?
Ответ: При создании стены всегда учитывается ее центр.
После создания стены, вы можете скорректировать значение параметра Линия привязки присвоив ему одно из следующих значений:
0. Осевая линия стены
1. Осевая линия сердцевины
2. Чистовая поверхность: наружная
3. Чистовая поверхность: внутренняя
4. Поверхность сердцевины: наружная
5. Поверхность сердцевины: внутренняя
После этого стена будет выравнена в соответствии со значением, которое вы указали.
В вашем случае стену следует выровнять по чистовой наружной пеоверхности стены относительно границы перекрытия.
Небольшой комментарий как определить и задать значение параметра Линия привязки.
Значение хранится в виде целочисленного параметра. Вы можете определить это значение, выбрав в интерфейсе интересующее вас положение линии и затем просмотреть значение параметра с помощью утилиты RevitLookup.
Далее вам нужно просто установит значение этого параметра например так:
- Wall wall = ...
- Parameter param = wall.get_Parameter(
- BuiltInParameter.WALL_KEY_REF_PARAM);
- param.Set(2); // Finish Face: Exterior
- param.Set(1); // Core Centerline
Вопрос: Как я могу точно определить, что параметр Линия привязки для стены установлен в значении Чистовая поверхность: наружная?
Ответ: Вы должны быть точно уверены, что вы понимаете под термином Линия привязки. Как я упоминал ранее, есть разница между свойством Wall.LocationLine которое вы видите в API и «Линией привязки», которую вы видите в интерфейсе. И если значение первого вы изменить не можете, то значение второго свойства можно изменить используя встроенный параметр WALL_KEY_REF_PARAM.
Вопрос: Я все пытаюсь понять как установить свойство «Линия привязки» для стены программно. Я хочу, чтобы те координаты, которые я задаю, соответствовали внутренней поверхности стены, а не центру.
Ответ: Создайте новую стену и посмотрите на ее параметры, например, с помощью RevitLookup или BiPChecker. Обратите внимание на параметр WALL_KEY_REF_PARAM – Линия привязки – int – read-write
Изначально значение этого параметра равно 0. Взгляните на свойства стены в интерфейсе и увидите, что значение линии привязки равно «Осевая линия стены». Если вы измените это значение на Чистовая поверхность: внутренняя, затем посмотрите снова на значение параметра, то увидите, что значение параметра стало равным 3.
Таким образом, для того чтобы изменить значение линии привязки вам нужно изменить значение параметра WALL_KEY_REF_PARAM.
Источник: http://thebuildingcoder.typepad.com/blog/2013/09/creating-an-offset-wall.html
Обсуждение: http://adn-cis.org/forum/index.php?topic=209
Опубликовано 13.09.2013Отредактировано 13.09.2013 в 10:56:17