pythonocc基础使用:导入模型——ifc格式(ifcopenshell)
发布日期:2021-05-18 09:40:30 浏览次数:26 分类:精选文章

本文共 1217 字,大约阅读时间需要 4 分钟。

借助Pythonocc强大的内核功能,我们同样可以读取建筑CAD信息,特别是IFC格式的建筑模型。如果你之前已经安装了Pythonocc环境,可以直接在此基础上安装ifcopenshell进行使用。

要在Conda环境中安装Pythonocc和Ifcopenshell,可以执行以下命令:

conda create -n pythonocc -c conda-forge -c tpaviot -c 3dhubs -c pythonocc -c ifcopenshell -c dlr-sc -c oce pythonocc-core=0.18.2 ifcopenshell python=3.5

如果你使用Jupyter Notebook,还需要安装pythreejs:

conda install -c conda-forge pythreejs

在使用过程中,可能会出现提示“无法在Linux 64位上编译”的错误,但具体原因并不清楚。这是需要进一步调试的问题。

以下是一些常用的操作示例:

import ifcopenshell
f = ifcopenshell.open("Duplex_A_20110907_optimized.ifc")
# 获取实体实例
f_by_type = f.by_type("ifcwall")[:2]
wall = f_by_type[0]
# 获取属性
wall.GlobalId
wall.Name = "My wall"
# 创建新实体
f.create_ifc_cartesian_point((1.0, 1.5, 2.0)) # 创建坐标系点实体
# 压缩全局唯一标识符
import uuid
import ifcopenshell.guid
new_guid = ifcopenshell.guid.compress(uuid.uuid1().hex)
# 创建新墙物件
owner_history = f.by_type("IfcOwnerHistory")[0]
new_wall = f.create_ifc_wall_standard_case(new_guid, owner_history, None, None, "my_tag")
new_wall.ObjectType = ''
new_wall.ObjectPlacement = None
new_wall.Representation = None
# 通过实例ID或全局ID访问实体
# 通过实例ID访问
f[92]
# 通过全局ID访问
f["2O2Fr$t4X7Zf8NOew3FLIE"]

要将模型写入文件,使用以下命令:

f.write("out.ifc")

特别注意某些属性可能无法直接设置,需要使用适当的方法进行操作。如果遇到问题,请参考ifcopenshell的官方文档或社区获取帮助。

上一篇:threejs: buffergeometry/gltf的模型导入及格式解析(json后缀)
下一篇:PythonOCC基础使用:曲面建模

发表评论

最新留言

不错!
[***.144.177.141]2025年04月15日 06时02分34秒