首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IfcOpenShell(解析)_IFC PropertySet,打印问题

IfcOpenShell(解析)_IFC PropertySet,打印问题
EN

Stack Overflow用户
提问于 2019-11-13 22:11:36
回答 1查看 148关注 0票数 0

嘿,我是编程新手,在打印属性集和值时遇到了问题。

我的IFC中有更多元素,希望解析所有属性集和值。我当前的结果是元素ID(针对每个元素),但它从第一个元素获取属性(属性集和值)。素描:see image

我的代码:

代码语言:javascript
复制
import ifcopenshell

ifc_file = ifcopenshell.open('D:\PZI_9-1_1441_LIN_CES_1-17c-O_M-M3.ifc')
products = ifc_file.by_type('IFCPROPERTYSET')
for product in products:
    print(product.is_a())
    print(product) # Prints  
    Category_Name_1 = ifc_file.by_type('IFCBUILDINGELEMENTPROXY')[0]
    for definition in Category_Name_1.IsDefinedBy:
        property_set = definition.RelatingPropertyDefinition

        headders_list = []
        data_list = []
        max_len = 0

        for property in property_set.HasProperties:
            if property.is_a('IfcPropertySingleValue'):           

                headers = (property.Name)
                data= (property.NominalValue.wrappedValue)
                    #print(headders)
                headders_list.append(headers)
                if len(headers) > max_len: max_len = len(headers)
                    #print(data)               
                data_list.append(data)
                if len(data) > max_len: max_len = len(data)           

    headders_list = [headers.ljust(max_len) for headers in headders_list]
    data_list = [data.ljust(max_len) for data in data_list]

    print(" ".join(headders_list))
    print(" ".join(data_list))

有人有解决方案吗?

谢谢并致以亲切的问候

EN

回答 1

Stack Overflow用户

发布于 2019-11-28 21:16:27

在线:

代码语言:javascript
复制
    Category_Name_1 = ifc_file.by_type('IFCBUILDINGELEMENTPROXY')[0]

您似乎总是引用第一个IfcBuildingElementProxy对象(因为索引为0)。我想,索引应该为每个产品递增。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58839037

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档