Порядок действий и особенности процедуры экспорта в среду Pilot BIM рабочих моделей
Процедура экспорта сборки в Pilot BIM отличается той особенность, что во-первых, мы формируем её только из IFC-файлов, и во-вторых, в качестве координат в ней выступают урезанные общие координаты - за “ноль” принимается абстрактное место в геометрическом центре моделируемой Выставки.
Зафиксируем далее это абстрактное место как координаты в метрах:
X = 2211632; Y = 528629
<aside>
⚠️ В миллиметрах, соответственно, это выражение будет равно:
X = 2211632000; Y = 528629000
</aside>
Это приблизительные координаты центра здания №40 или центрального сквера внутри здания №39, округленные до целого значения.
У IFC файла, который предполагается загрузить в среду Pilot BIM, задается так называемый, “глобальный сдвиг” в виде Ifc-класса IFCAXIS2PLACEMENT3D, находящегося в параметрах у IFCSITE. Другой вопрос, что эти действия могут выполняться вручную или программой.
Другой вариант развития событий, что в настройках экспорта задается координатный базис, и от него рассчиытвается вся геометрия файла, этот способ более надёжен, но и более сложен для реализации, и вручную его повторить невозможно из-за высокой трудоемкости правки геометрии всех элементов.
Рассмотрим далее 2 способа — полностью ручной через правку IFC файла и полу-автоматический через выгрузку из CADLib с правкой файла на стороне платформы nanoCAD.
Вне зависимости от того, откуда выгружается IFC (Revit, Renga, ArchiCAD), придерживаемся следующей схемы:
ENDSEC;
, это число после символа #
, например для строки#214= IFCRELDEFINESBYPROPERTIES('00GQ4qPI95oPOWqW$Fc2vO',#42,$,$,(#138),#201);
это число 214.
ENDSEC;
новую строку вида:#215= IFCCARTESIANPOINT((-2211632000.0,-528629000.0,0.0));
, где 215 - это её номер, больший на 1 или более единиц от найденного значения в пункте 2 выше.
<aside>
⚠️ Насчет домножения представленных координат X = 2211632; Y = 528629
в метрах на 1000: это осуществляется из принципа, что длина элементов в IFC также в мм. В общем случае, длину рекомендуется сперва уточнить, глянув на строку IFC где-то в начале файла, содержащую слово “LENGTHUNIT”.
Например - она может выглядеть так:
#9=IFCSIUNIT(*,.LENGTHUNIT.,$,.METRE.);
Это сигнализирует, что единицы файла в метрах, и координаты точки сдвига можно не увеличивать в 1000 раз.
</aside>
IFCSITE
(он обычно бывает либо в “первой сотне” элементов в начале файла, либо в его самом конце). В указанном атрибуте смотрим на значение в скобках и обращаем внимание на шестой параметр со знаком #
. Например, для Revit это будет строка #4= IFCSITE('0uyE9IjjT15P5fuVKHHP_D',#10,'civil_site',$,$,#3,$,$,.ELEMENT.,$,$,$,$,$);
и будет позиция #3
.#3
и смотрим, каким IFC классом выражена позиция: если это IFCLOCALPLACEMENT, то переходим ко второму аргументу в ней (ссылке на IFCAXIS2PLACEMENT3D); в противном случае, если это уже элемент IFCAXIS2PLACEMENT3D то изменяем в нем первый элемент на новый созданный в пункте 3, в моем случае на #215
. Тогда исходная и измененная строка будет выглядеть следующим образом: