我正在与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;