ModPlus Blog

Звезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активна

Ранее у нас была заметка про Origin у PlanarFace, где мы писали, что Origin может не находиться в границах контура плоскости PlanarFace. А недавно мы столкнулись с еще одной недокументированной особенностью Revit API, которая в некоторых случаях может привести к неправильной работе задуманного алгоритма. И эта особенность – свойство Origin у отрезка, полученного методом Solid.IntersectWithCurve.

Опишем сразу на примере: создадим в пустом проекте элемент с твердым телом и возьмём его твердое тело:

var uiDoc = commandData.Application.ActiveUIDocument;
var doc = uiDoc.Document;

var element = doc.GetElement(uiDoc.Selection.PickObject(ObjectType.Element));
var solid = (Solid)element
    .get_Geometry(new Options { DetailLevel = ViewDetailLevel.Fine })
    .GetTransformed(Transform.Identity)
    .First(e => e is Solid { Volume: > 0 });

Так как для примера мы использовали колонну, то мы точно знаем, что у неё есть точка вставки. Возьмем эту точку и с ее помощью создадим длинный вспомогательный отрезок:

var pt = ((LocationPoint)element.Location).Point;
var helpLine = Line.CreateBound(
    pt - (XYZ.BasisZ * 1000),
    pt + (XYZ.BasisZ * 1000));

Ну а далее используем метод Solid.IntersectWithCurve и получим отрезок, расположенный внутри твердого тела нашего элемента:

var result = solid.IntersectWithCurve(
    helpLine,
    new SolidCurveIntersectionOptions { ResultType = SolidCurveIntersectionMode.CurveSegmentsInside });
var insideLine = (Line)result.GetCurveSegment(0);

Так вот, если теперь мы посмотрим на свойства этого отрезка, то увидим, что его Origin остался такой-же, как был у исходного вспомогательного отрезка! И если вы возьмете у этого отрезка параметры в начале и в конце, то получите не самые ожидаемые значения:

Blog 1 

И хотя случаев, где это может негативно сказаться на работе алгоритма, не много, они все же есть. Поэтому лучше знать про эту особенность заранее

Рейтинг:  5 / 5

Звезда активнаЗвезда активнаЗвезда активнаЗвезда активнаЗвезда активна

При использовании плагина Квартирография в проекте создается ряд параметров, содержащих результаты работы плагина.

Для того чтобы в марке помещения отображались площади, полученные с помощью плагина Квартирография c использованием параметров ModPlus, необходимо выполнить следующие действия:

  1. В окне плагина на вкладке Параметры открыть список параметров ModPlus в блокноте
  2. Данные параметры можно добавить в существующий файл общих параметров (ФОП), либо создать новый ФОП только с параметрами ModPlus
  3. Далее необходимо открыть семейство марки помещения и для каждой метки заменить существующие параметры на соответствующие параметры ModPlus
  4. Загрузить семейство марки в проект

Рассмотрим вышеперечисленные шаги на примере редактирования марки ADSK_Марка_Помещение_Квартира.

Tags: ,

Рейтинг:  5 / 5

Звезда активнаЗвезда активнаЗвезда активнаЗвезда активнаЗвезда активна

Столкнулся сегодня с задачей, в которой мне необходимо было высчитать производные в точке для дуги. Как и прежде я снова открыл справку и, так как я не обладаю высшим геометрическим образованием, я снова впал в ступор с вопросом «Какое же значение мне нужно?». Поэтому я решил сделать для себя и для всех небольшую шпаргалку-визуализацию.

Суть шпаргалки – получить визуальное представление для векторов класса Transform, получаемых при использовании метода Curve.ComputeDerivatives

Рейтинг:  4 / 5

Звезда активнаЗвезда активнаЗвезда активнаЗвезда активнаЗвезда не активна

Используя API Navisworks, мы можем выполнять раскраску элементов, а также сбрасывать раскраску. При этом можно использовать постоянный или временный цвет. Для этого используются методы OverridePermanentColor, OverrideTemporaryColor, ResetPermanentMaterials, ResetTemporaryMaterials. Про прозрачность не пишу, так как все тоже самое, что и про цвет.

Существуют нюансы с раскраской элементов, которые необходимо учитывать. Причем, получается, что идеального варианта раскраски вообще нет.

Страница 1 из 5

© 2018-2024 modplus.org