В Ревит АПИ есть возможность получить геометрию объектов. Если речь про трехмерные объекты, то обычно это набор солидов — сплошных тел. Вот вся та геометрия, которую рисуем в редакторе, в итоге приходит в виде солидов. Линии он тоже может получить, но обычно интересны именно солиды.
У них есть площадь поверхности и объём.
Сейчас я дописал скрипт для формирования данных на изоляцию трубопроводов. И у меня была та же проблема, что всегда есть у изоляции, — длина и площадь изоляции фитингов. Ну и арматура сюда до кучи, пусть это и более мелкая проблема. Сам Ревит не считает их площади и длины. Справедливости ради, уж площадь он хотя бы примерно посчитать бы мог. Но не считает.
И вот я прикинул формулы площади поверхности трубы и её объём. Везде участвует длина и диаметр трубы. Соответственно, можно вывести, так сказать, эквивалентный радиус и длину из объёма и площади.
Что я и сделал в скрипте. В итоге получается весьма неплохо для объектов простой геометрии. Трубы и имитация гиба трубы отлично посчитались. То есть я не брал диаметр и её длину с трубы, я всё посчитал с геометрии изоляции.
Более сложные объекты тоже считаются, но есть загвоздка с определением диаметра. Для моего скрипта он важен, так как по диаметру подбирается артикул, то есть мне надо знать внутренний диаметр изоляции. И вот аналитически из объема и площади значения не всегда получаются чёткими. Что в целом логично, ведь и сама изоляция строится не всегда гладко, ну и это в общем подгон ведь.
Из этого появляется понимание, почему авторы Ревита решили забить на данные по площади и объему у сложной геометрии. Её нельзя посчитать точно, а значит ну его вообще нафиг. Хотя на мой взгляд, лучше дать значение с погрешностью, чем просто выкидывать кучу элементов из обработки. Так и написать: данные вычисляются примерно, не нравится, идите в жопу.
Чтобы получить эквивалентный диаметр, я беру площадь поверхности, минусую из неё площадь соединителей. Это уже неточно, так как для пластика мы делаем соединители по наружному диаметру и тут всё хорошо, а вот для стали там будут расхождения, ведь условный диаметр стали почти равен внутреннему, а не внешнему.
С трубами в целом это легко решается, можно с изоляции получить трубу-основу, а уже с трубы все данные. А вот с фитингами всё совсем плохо, так как там всё, что можно получить с основы — это условный диаметр подключения, который ровным счётом ничего не говорит о наружном диаметре фитинга. А значит торцы в любом случае будут вычитаться не совсем корректно.
Отсюда и невозможность точно посчитать площадь поверхности фитингов и арматуры. С объёмом похожая беда, это надо брать объём изоляции, вычитать объём основы, всё это будет не особо точно. Вот в Ревите и забили на это, считают только простые элементы предсказуемой геометрии — трубы и воздуховоды.
У них есть площадь поверхности и объём.
Сейчас я дописал скрипт для формирования данных на изоляцию трубопроводов. И у меня была та же проблема, что всегда есть у изоляции, — длина и площадь изоляции фитингов. Ну и арматура сюда до кучи, пусть это и более мелкая проблема. Сам Ревит не считает их площади и длины. Справедливости ради, уж площадь он хотя бы примерно посчитать бы мог. Но не считает.
И вот я прикинул формулы площади поверхности трубы и её объём. Везде участвует длина и диаметр трубы. Соответственно, можно вывести, так сказать, эквивалентный радиус и длину из объёма и площади.
Что я и сделал в скрипте. В итоге получается весьма неплохо для объектов простой геометрии. Трубы и имитация гиба трубы отлично посчитались. То есть я не брал диаметр и её длину с трубы, я всё посчитал с геометрии изоляции.
Более сложные объекты тоже считаются, но есть загвоздка с определением диаметра. Для моего скрипта он важен, так как по диаметру подбирается артикул, то есть мне надо знать внутренний диаметр изоляции. И вот аналитически из объема и площади значения не всегда получаются чёткими. Что в целом логично, ведь и сама изоляция строится не всегда гладко, ну и это в общем подгон ведь.
Из этого появляется понимание, почему авторы Ревита решили забить на данные по площади и объему у сложной геометрии. Её нельзя посчитать точно, а значит ну его вообще нафиг. Хотя на мой взгляд, лучше дать значение с погрешностью, чем просто выкидывать кучу элементов из обработки. Так и написать: данные вычисляются примерно, не нравится, идите в жопу.
Чтобы получить эквивалентный диаметр, я беру площадь поверхности, минусую из неё площадь соединителей. Это уже неточно, так как для пластика мы делаем соединители по наружному диаметру и тут всё хорошо, а вот для стали там будут расхождения, ведь условный диаметр стали почти равен внутреннему, а не внешнему.
С трубами в целом это легко решается, можно с изоляции получить трубу-основу, а уже с трубы все данные. А вот с фитингами всё совсем плохо, так как там всё, что можно получить с основы — это условный диаметр подключения, который ровным счётом ничего не говорит о наружном диаметре фитинга. А значит торцы в любом случае будут вычитаться не совсем корректно.
Отсюда и невозможность точно посчитать площадь поверхности фитингов и арматуры. С объёмом похожая беда, это надо брать объём изоляции, вычитать объём основы, всё это будет не особо точно. Вот в Ревите и забили на это, считают только простые элементы предсказуемой геометрии — трубы и воздуховоды.