嘿,我是编程新手,在打印属性集和值时遇到了问题。
我的IFC中有更多元素,希望解析所有属性集和值。我当前的结果是元素ID(针对每个元素),但它从第一个元素获取属性(属性集和值)。素描:see image
我的代码:
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))有人有解决方案吗?
谢谢并致以亲切的问候
发布于 2019-11-28 21:16:27
在线:
Category_Name_1 = ifc_file.by_type('IFCBUILDINGELEMENTPROXY')[0]您似乎总是引用第一个IfcBuildingElementProxy对象(因为索引为0)。我想,索引应该为每个产品递增。
https://stackoverflow.com/questions/58839037
复制相似问题