Я работаю с 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;