ios - 将 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。
任何帮助或见解都会非常感谢
解决方案
对我来说同样的错误,但我实现了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 文件,您也可以从名称中读取它。
推荐阅读
- postgresql - Knex.js for PostgreSQL 中具有不同 WHERE 子句的完全外连接
- javascript - 我在尝试检索表单时不断得到空结果
- vba - VBA:选择具有特定值的单元格下方的行
- javascript - 具有动态高度的 React Material-Ui 粘性表格标题
- javascript - For 循环影响递归变量
- html - 如何阻止 Safari 提供翻译页面?
- osmnx - OSMnx:创建矩形建筑足迹
- python - 无法在 Ubuntu Server 16.04 中运行 Django 测试服务器
- java - Kafka 提交无法完成,因为该组已经重新平衡并将分区分配给另一个成员
- python - 如何删除字符串中的所有非数值?