МФК дважды - PullRequest
       66

МФК дважды

0 голосов
/ 11 апреля 2019

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