在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/云計(jì)算/ 如何修改屬性面板中的某一條屬性的屬性名

如何修改屬性面板中的某一條屬性的屬性名

上傳模型轉(zhuǎn)換后下載到本地,在本地上用view api瀏覽時(shí),屬性面板中的幾條屬性出現(xiàn)錯(cuò)誤(屬性名出錯(cuò)),請(qǐng)問如何修改這些出錯(cuò)的屬性名?

clipboard.png

回答
編輯回答
半心人

修改屬性面板有幾種方法,

  1. 最簡(jiǎn)單的就是直接操作當(dāng)前的屬性面板,比如:
  var propertyPanel = _viewer.getPropertyPanel(true)
  propertyPanel.setTitle('My Panel')
  propertyPanel.addProperty('test', 'john', 'new cat', null)
  propertyPanel.setVisible(true)
  1. 如果需要對(duì)屬性面板整體來做調(diào)整,那么常見的方法是重載默認(rèn)的屬性面板,比如:
AutodeskNamespace('Viewing.ClassroomTrainning')

Viewing.ClassroomTrainning.AdnPropertyPanel = function (viewer) {
  var _panel = this
  var _viewer = viewer
  var _selectedNodeId = ''

  Autodesk.Viewing.Extensions.ViewerPropertyPanel.call(
    _panel,
    _viewer)

  _panel.setNodeProperties = function (nodeId) {
    Autodesk.Viewing.Extensions.ViewerPropertyPanel.prototype.setNodeProperties.call(
      _panel,
      nodeId)

    _selectedNodeId = nodeId
  }

  _panel.setProperties = function (properties) {
    Autodesk.Viewing.Extensions.ViewerPropertyPanel.prototype.setProperties.call(
      _panel, properties);

      var insTree = _viewer.model.getInstanceTree();
      var nodeName = insTree.getNodeName(_selectedNodeId);

    $.ajax({
      url: '/db/price/'+nodeName,
      type: 'GET',
      success: function (data) {
        console.log('successfull get price: ' + data)
        _panel.addProperty(
          'Node Price', // property name
          data, // property value
          'Database Information') // group name
      }
    })
  }
}

Viewing.ClassroomTrainning.AdnPropertyPanel.prototype =
  Object.create(
    Autodesk.Viewing.Extensions.ViewerPropertyPanel.prototype)

Viewing.ClassroomTrainning.AdnPropertyPanel.prototype.constructor =
  Viewing.ClassroomTrainning.AdnPropertyPanel

然后,將重載后的屬性面板設(shè)置為當(dāng)前的屬性面板,修改模型結(jié)構(gòu)的點(diǎn)擊事件來使用自定義的屬性面板:

Viewing.ClassroomTrainning.Extension.prototype.onGeometryLoaded = function () {
  var panel = new Viewing.ClassroomTrainning.AdnPropertyPanel(_viewer)
  _viewer.setPropertyPanel(panel)

  // Add onClick event for Model Structure Panel
  var structruePanel = _viewer.modelstructure
  structruePanel.onClick = _self.onModelStructureClick
}

Viewing.ClassroomTrainning.Extension.prototype.onModelStructureClick = function (node, e) {
  var propertyPanel = _viewer.getPropertyPanel(true)
  if (propertyPanel && propertyPanel.isVisible()) {
    propertyPanel.setNodeProperties(node)
  }
}

詳細(xì)可參考代碼 https://github.com/JohnOnSoft...

2017年1月25日 07:22