Расчеты объема комнат - странное поведение и какой самый точный способ получить твердые тела комнат? - PullRequest
0 голосов
/ 28 октября 2019

Интересное поведение, которое я обнаружил, пытаясь получить наиболее точные объемы тела в комнатах, заключалось в том, что: при включении вычислений громкости комнат, похоже, что Revit даст вам только ограничивающую форму комнаты на «Неограниченной высоте комнаты». .. !!

Здесь находится комната с неограниченной высотой 15 м + Включены вычисления объема:

15 м несвязанной высоты

... вот несвязаннаявысота с включенными 6m + вычислениями объема:

6 м несвязанной высоты

... вот несвязанная высота с 3m + вычислениями объема, включенными:

3 м высотой без привязки

Получение тела комнаты:

private static Solid _FirstSolid (Element elem)
{
    Options op = new Options();
    Solid roomSolid = (elem.get_Geometry(op) as GeometryElement).FirstOrDefault() as Solid;
    return roomSolid;   
}

Выпечка с DirectShapes:

using (Transaction t = new Transaction(doc,"bake Room Geometry"))
{
    t.Start();
    DirectShape ds = DirectShape.CreateElement(doc,new ElementId(BuiltInCategory.OST_GenericModel));
    ds.SetShape((new List<GeometryObject> {transSolid as GeometryObject}));
    t.Commit();
    t.Dispose();
}

Не уверен, если этоявляется предполагаемым поведением вычислений объема! Но это также меняет вычисленное значение объема, когда мы изменяем неограниченную высоту!

Каким наилучшим образом кто-либо сталкивался, чтобы получить самые точные объемные твердые частицы комнаты? API анализа энергии - более надежный способ обойти это? какие-либо другие предложения?

1 Ответ

0 голосов
/ 29 октября 2019

Вы обязательно должны взглянуть на метод Room.GetClosedShell , ср. my Комнатная закрытая оболочка DirectShape для Forge Viewer , а также RoomVolumeDirectShape на GitHub .

Если вы хотите использовать API анализа энергии, имейте в виду, что Настройки EnergyAnalysisDetailModelOptions влияют на вычисления, ср. Два разных типа моделей энергии .

...