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

13/09/2013

Линия привязки

В статье обсудим небольшую проблему, с которой мы уже давно не сталкивались, но по ней я опять получил несколько вопросов.

Вопрос: Я создаю программку, которая генерирует BIM-модель из чертежа.

В одном из шагов я создаю перекрытие и затем стену. Причем внешняя сторона стены должна находиться именно на краю созданного перекрытия.

В своем приложении я использую линии и дуги для создания перекрытия.  К сожалению, в этом случае, стена, созданная на одной из этих линий располагается так, что половина стены находится на перекрытии, а другая половина висит в воздухе.

 

Как можно это исправить?

 

Ответ: При создании стены всегда учитывается ее центр.

После создания стены, вы можете скорректировать значение параметра Линия привязки присвоив ему одно из следующих значений:

0. Осевая линия стены

1. Осевая линия сердцевины

2. Чистовая поверхность: наружная

3. Чистовая поверхность: внутренняя

4. Поверхность сердцевины: наружная

5. Поверхность сердцевины: внутренняя

После этого стена будет выравнена в соответствии со значением, которое вы указали.

В вашем случае стену следует выровнять по чистовой наружной пеоверхности стены относительно границы перекрытия.

Небольшой комментарий как определить и задать значение параметра Линия привязки.

Значение хранится в виде целочисленного параметра. Вы можете определить это значение, выбрав в интерфейсе интересующее вас положение линии и затем просмотреть значение параметра с помощью утилиты RevitLookup.

Далее вам нужно просто установит значение этого параметра например так:

Код - C#: [Выделить]
  1.   Wall wall = ...
  2.  
  3.   Parameter param = wall.get_Parameter(
  4.     BuiltInParameter.WALL_KEY_REF_PARAM);
  5.  
  6.   param.Set(2); // Finish Face: Exterior
  7.   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