Лучший подход к цветовым объектам в Autodesk Forge Viewer - PullRequest
0 голосов
/ 14 июля 2020

Я делаю проект BIM с помощью программы просмотра autodesk forge (я использую программу просмотра версии 6 *).

Я хочу, чтобы разные объекты были окрашены в разные цвета в зависимости от состояния завершения.

Проверьте изображение ниже.

Объекты уже окрашены. Я пробовал использовать setThemingColor, но это не сработало. Я не хочу использовать setSelectionColor, поскольку мой объект должен отображать цвет без выбора определенного c объекта.

например: на изображении ниже я хочу раскрасить обведенные объекты соответствующим цветом.

sample_image

update:

вот фрагмент кода, который я использую

function changeObjectColor(modelId, status){
 
  var color ;
  switch (status) {
    case 'Green':
      color =  new THREE.Vector4(0, 0.5, 0, 0.5);
      break;
    case 'Red':
      color =  new THREE.Vector4(1, 0, 0, 0.5);
      break;
  }

  viewerApp.getCurrentViewer().setThemingColor(modelId,color);
}

результат результат после установка цвета

Я также использую методы изолирования и выбора, но даже после удаления этих двух вызовов методов цвет не изменится для указанного c объекта

новые пробные варианты:

Итак, мне удалось установить / скрыть текстуру объекта (только серый цвет), следуя этому руководству . Но затем я попытался использовать метод setThemingColor, но все равно объекты не показывают ожидаемого цвета.

  viewerApp.getCurrentViewer().setThemingColor(modelId, color, null, true);
  viewerApp.getCurrentViewer().impl.invalidate(true, true, false);

Что мне здесь не хватает?

1 Ответ

0 голосов
/ 14 июля 2020

Метод setThemingColor доступен в v6 и должен работать нормально. Рассмотрите возможность публикации фрагмента кода, который отвечает за настройку цвета.

Вот пример того, как этот метод используется в демонстрации Forge Digital Twin .

...