Изменить свойства модели Autodesk-Forge - PullRequest
0 голосов
/ 17 октября 2018

Я работаю над приложением, чтобы загрузить модель, затем получить и разрешить пользователю изменять ее свойства через Excel / CSV / JSON.Я вижу здесь , что модели доступны только для чтения и что PATCH не предназначен для прямого изменения свойств объекта модели, но больше ориентирован на документы.

Является ли это понимание правильным?

Если это так, может ли подделать хост JSON?

В настоящее время планируется экспортировать данные, изменить их в Excel, загрузить / преобразовать в JSON,сохраните его (где-нибудь), а затем отобразите в Forge свойства из данных JSON.Но мы ищем простое место для размещения нового внешнего БД.

1 Ответ

0 голосов
/ 17 октября 2018

Да, все извлеченные файлы через API Forge Model Derivative доступны только для чтения!И нет, вы должны сами размещать такой сервер веб-API, Forge не имел возможности размещать веб-сервер клиентов.

Вы можете проверить мою демонстрацию для панели пользовательских процедур здесь иего 'screencast:

View on Youtube

Ключевые понятия:

  1. Создайте веб-API, содержащий данные о вашей собственности, я используюфиктивный сервер JSON API в этой демонстрации, см. forge-au-sample / mock-server .
  2. Извлеките свою собственную службу свойств на панели пользовательских свойств, см. строка 33 свойств / скриптов / AdnPropsPanel.js

    getRemoteProps( dbId ) {
      return new Promise(( resolve, reject ) => {
        const srvUrl = getServerUrl();
        fetch( `${ srvUrl }/api/props?_expand=dataType&dbId=${ dbId }`, {
          method: 'get',
          headers: new Headers({
            'Content-Type': 'application/json'
          })
        })
          .then( ( response ) => {
            if( response.status === 200 ) {
              return response.json();
            } else {
              return reject( new Error( response.statusText ) );
            }
          })
          .then( ( data ) => {
            if( !data ) return reject( new Error( 'Failed to fetch properties from the server' ) );
    
            return resolve( data );
          })
          .catch( ( error ) => reject( new Error( error ) ) );
      });
    } 
    
...