首页 > 解决方案 > 将 BIM 模型导入场景

问题描述

有谁知道如何.ifc使用 SceneKit 将文件转换为场景?我曾尝试使用AssetImportKit,但使用以下代码没有运气:

import UIKit
import SceneKit
import AssetImportKit

class ViewController: UIViewController {

    @IBOutlet weak var sceneView: SCNView!

    override func viewDidLoad() {
        super.viewDidLoad()

        do {
          let assimpScene = try SCNScene.assimpScene(filePath: "AC20-Institute-Var-2.ifc",
                                                      postProcessSteps: [.defaultQuality])
          let modelScene = assimpScene.modelScene
          modelScene.rootNode.childNodes.forEach {
            sceneView.scene?.rootNode.addChildNode($0)
          }
        } catch {
          debugPrint(error.localizedDescription)
        }
    }
}

但得到错误:

" Scene importing failed for filePath AC20-Institute-Var-2.ifc"
" Scene importing failed with error "
""

我觉得可能有更好的方法来做到这一点,而不是将.ifc文件转换为.dae/.obj/.usdz文件,然后将其作为场景加载,而不需要 AssetImportKit。

任何帮助或见解都会非常感谢

标签: iosswiftscenekit

解决方案


对我来说同样的错误,但我实现了AssimpKit,你应该在ViewDidLoad中编写;

let scene=try SCNAssimpScene.assimpScene(with: URL(string: filePath), postProcessFlags: AssimpKitPostProcessSteps(rawValue: AssimpKitPostProcessSteps.process_FlipUVs.rawValue | AssimpKitPostProcessSteps.process_Triangulate.rawValue), error: ())

如果您在 xcode 中下载了 ifc 文件,您也可以从名称中读取它。


推荐阅读