如何在python中从头开始创建.ifc文件中的三角形网格?



我刚开始用python处理。ifc文件。当我在一个新的。ifc文件中有两个数组(一个带有顶点,一个带有面)时,创建三角形网格的最佳方法是什么?我如何使用python的ifcopenshell包来实现这一点?

我无休止地搜索文档,但没有找到它。如果有人能给我指出正确的方向,我会非常感激。

我想有一个类似的脚本,但不是创建一个墙,我只是想创建一个三角形表面https://blenderbim.org/docs-python/ifcopenshell-python/code_examples.html#create-a-simple-model-from-scratch。然而,我还没有找到合适的。与相应的参数。

如果你的目标是IFC4(及以上),你可以使用IfcTriangulatedFaceSet,这是专门为三角曲面设计的,如:

下面是一个使用Python和IfcOpenShell创建三角形人脸集的示例(来自文档中的示例数据):

ifc = ifcopenshell.file()
ifc.createIfcTriangulatedFaceSet()
tfs.Coordinates = ifc.createIfcCartesianPointList3D( ((0.,0.,0.), (1.,0.,0.), (1.,1.,0.), (0.,1.,0.), (0.,0.,2.), (1.,0.,2.), (1.,1.,2.), (0.,1.,2.)))
tfs.CoordIndex = ((1,6,5), (1,2,6), (6,2,7), (7,2,3), (7,8,6), (6,8,5), (5,8,1), (1,8,4), (4,2,1), (2,4,3), (4,8,7), (7,3,4))
tfs.Closed = True
ifc.write('testTFS.ifc')

如果你需要支持IFC2x3(它没有上述实体),你可能需要IfcShellBasedSurfaceModel -一个更通用的实体,可以执行相同的事情。

相关内容

  • 没有找到相关文章

最新更新