Розмістіть дерева на їх точному місці в InfraWorks

2025-05-19_14-30-50.png

Примітка: Ця стаття написана та опублікована англійською мовою і є перекладеною версією оригіналу, що доступний тут.

 

Ви коли-небудь хотіли розташувати дерева в їх точному місці в InfraWorks? Це просто! Давайте розглянемо, як автоматизувати цю процедуру. У більшості випадків, коли ми отримуємо обстеження, дерева є блоками. Є Lisp-рутина, яку я прикріпив під назвою Blocks2Points. Це створить AutoCAD точку там, де знаходяться блоки. Це те, що я маю зараз...

 

DmytroMukhin_0-1753718081121.png

 

Ці дерева є блоками, і я збираюся перетворити їх на AutoCAD точку за допомогою вищезгаданого Lisp. У вас є можливість видалити блоки або зберегти їх. Я збережу їх. Цей Lisp створить точки в точці вставки блоків дерева. Нижче ви можете побачити точки. Я виділив їх для наочності та полегшення вибору...

 

ToddRogersWPM_1-1747681672848.png

 

Ви можете змінити стиль і розмір цих точок, якщо хочете, ввівши PTYPE.

 

Далі введіть MAPEXPORT. Змініть тип файлу на ESRI Shapefile (*.shp), вкажіть його ім'я та місце збереження файлу. З'явиться діалогове вікно експорту. Для Object Type (Тип об'єкта) перемкніть перемикач для Point. Тепер перемкніть перемикач для Select manualy (Вибрати вручну) та натисніть кнопку вибору...

 

ToddRogersWPM_2-1747681889629.png

 

У вікні вибираємо всі точки. У нижній частині діалогового вікна ви побачите список позначених вами і скільки (якщо такі є) було відфільтровано...

 

ToddRogersWPM_3-1747681968378.png

 

Тепер переходимо до InfraWorks. Відкрийте картку Data Connections (Зв'язки даних). Виберіть SHP зі списку.

 

ToddRogersWPM_4-1747682066699.png

 

Перейдіть до файлу, який ви експортували з Civil 3D. Тепер він з'явиться у списку. Тепер ми можемо двічі клацнути на ньому, щоб налаштувати його. Для типу виберіть Trees (Дерева)...

 

 ToddRogersWPM_5-1747682201736.png

 

Перейдіть на вкладку Source (Джерело) і в розділі Draping Options (Параметри перетягування) встановіть значення Drape (Затягування).  Я написав скрипт, який я вставлю нижче, щоб рандомізувати дерева. Перейдіть на вкладку Script (Сценарій), потім натисніть кнопку Edit (Редагувати) та скопіюйте та вставте наведений нижче код поверх наявного тексту, який відображається на цій вкладці...

 

 

function Process(SOURCE, TREES) {

TREES.EXTERNAL_ID = SOURCE.FeatId;
var scaleFactor = 0.3;
var scaleVariationMax = 0.15;

if (Math.random() > 0.5) {

TREES.RULE_STYLE = "3D Model/Vegetation/Populus Nigra";

//Set baseline scale and randomize by variation
scaleFactor = 2;
scaleVariationMax = 1;
var variation = scaleVariationMax * Math.random() * 2 - scaleVariationMax;
TREES.MODEL_SCALE_X = scaleFactor + variation;
TREES.MODEL_SCALE_Y = scaleFactor + variation;
TREES.MODEL_SCALE_Z = scaleFactor + variation;

} else {

TREES.RULE_STYLE = "3D Model/Vegetation/Adaptive Trees/Beech Tree";

//Set baseline scale and randomize by variation
scaleFactor = 0.8;
scaleVariationMax = 0.3;
var variation = scaleVariationMax * Math.random() * 2 - scaleVariationMax;
TREES.MODEL_SCALE_X = scaleFactor + variation;
TREES.MODEL_SCALE_Y = scaleFactor + variation;
TREES.MODEL_SCALE_Z = scaleFactor + variation;

}
return true;
}

 

 

Тепер натисніть Close and Refresh (Закрити та оновити). Якщо ви використовуєте новішу версію InfraWorks, ви отримаєте попередження про сценарії. Натисніть Continue with Refresh (Продовжити з оновленням). Ось і все. Ваші дерева будуть розташовані в правильному місці. Якщо ви хочете використовувати різні дерева, замініть назву дерева, яке ви хочете використати, у скрипті для TREES.RULE_STYLE.


Примітка: Ця стаття написана та опублікована англійською мовою і є перекладеною версією оригіналу, що доступний
тут.