IFC实体提取twi

2024-10-02 14:24:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在与IfcOpenShell和Python合作提取IFC实体。我已经开发了一个Python代码,我想用它从架构模型中提取结构模型。但有一个问题,我不能理解和解决,因为我是一个初学者。你知道吗

当我试图提取不包含任何括号中实体的实体时,代码会准确地运行。你知道吗

for example:- 
#1=IFCPERSON($,$,'',$,$,$,$,$);
#2=IFCORGANIZATION($,'',$,$,$);

但是,当我想用括号中前面的实体提取实体时,出现了这个问题

for example:- 
#3=IFCPERSONANDORGANIZATION(#1,#2,$);

问题是,当我尝试提取实体(例如“IFCPERSONANDORGANIZATION”)时,如果我已经按照下面给出的代码提取了这两个实体,那么代码将提取“IFCPERSON”和“IFCORGANIZATION”两次。 请帮我解决这个问题。你知道吗

import ifcopenshell

f = ifcopenshell.open("C:\Users\GURBHEJ SINGH\Desktop\IFC\ModelFull.ifc")
f2 = ifcopenshell.file()

persons = f.by_type("IFCPERSON")
for person in persons:
    f2.add(person)

organizations = f.by_type("IFCORGANIZATION")
for organization in organizations:
    f2.add(organization)

personorganizations = f.by_type("IFCPERSONANDORGANIZATION")
for personorganization in personorganizations:
    f2.add(personorganization)

f2.write("test222.ifc")

预期的结果是,它们不应该是实体的任何重复例如:你知道吗

ISO-10303-21;
HEADER;
FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1');
FILE_NAME('','2019-04-11T13:41:16',(),(),'IfcOpenShell 0.5.0-dev','IfcOpenShell 0.5.0-dev','');
FILE_SCHEMA(('IFC2X3'));
ENDSEC;
DATA;
#1=IFCPERSON($,$,'',$,$,$,$,$);
#2=IFCORGANIZATION($,'',$,$,$);
#3=IFCPERSONANDORGANIZATION(#1,#2,$);
ENDSEC;
END-ISO-10303-21;

Tags: 代码in实体addforbytypefile