Something like this? Just tested it on the Schependomlaan.ifc
import ifcopenshell
from blenderbim.bim.ifc import IfcStore
ifc_file = ifcopenshell.open(IfcStore.path)
products = ifc_file.by_type('IfcDoor')
for ifcproduct in products:
if ifcproduct.IsDefinedBy:
for ifcreldefinesbyproperties in ifcproduct.IsDefinedBy:
if (ifcreldefinesbyproperties.is_a()) == 'IfcRelDefinesByProperties':
if ifcreldefinesbyproperties.RelatingPropertyDefinition.is_a() == 'IfcPropertySet':
for ifcproperty in (ifcreldefinesbyproperties.RelatingPropertyDefinition.HasProperties):
print (ifcproduct.Name, ifcreldefinesbyproperties.RelatingPropertyDefinition.Name, ifcproperty)
Section of output:
...
D1L AC_Pset_32_KD_berkvens_BA #978576=IfcPropertySingleValue('openingshoek 2d',$,IfcPlaneAngleMeasure(15.),$)
D1L AC_Pset_32_KD_berkvens_BA #978577=IfcPropertySingleValue('arcering kozijn',$,IfcLabel('000 Ddichte arcering (01)'),$)
D1L AC_Pset_32_KD_berkvens_BA #978578=IfcPropertySingleValue('arcering kozijnachtergrond',$,IfcLabel('Lege arcering (2)'),$)
D1L AC_Pset_32_KD_berkvens_BA #978579=IfcPropertySingleValue('pen contourlijn kozijn',$,IfcLabel('Standaardpen'),$)
D1L AC_Pset_32_KD_berkvens_BA #978580=IfcPropertySingleValue('pen acchergrondarcering',$,IfcLabel('Achtergrond wit - NIET WIJZIGEN'),$)
D1L AC_Pset_32_KD_berkvens_BA #978581=IfcPropertySingleValue('pen acchergrondarcering kozijn',$,IfcLabel('Standaardpen'),$)
D1L AC_Pset_32_KD_berkvens_BA #978582=IfcPropertySingleValue('pen acering deurzijde',$,IfcLabel('Achtergrond wit - NIET WIJZIGEN'),$)
D1L AC_Pset_32_KD_berkvens_BA #978583=IfcPropertySingleValue('pen arcering dorpelzijde',$,IfcLabel('Achtergrond wit - NIET WIJZIGEN'),$)
D1L AC_Pset_32_KD_berkvens_BA #978584=IfcPropertySingleValue('deurarcering',$,IfcLabel('310 naaldhout (01)'),$)
D1L AC_Pset_32_KD_berkvens_BA #978585=IfcPropertySingleValue('pen arcering deur',$,IfcLabel('Standaardpen'),$)
D1L AC_Pset_32_KD_berkvens_BA #978586=IfcPropertySingleValue('openingshoek 3d',$,IfcPlaneAngleMeasure(0.),$)
D1L AC_Pset_32_KD_berkvens_BA #978587=IfcPropertySingleValue('openingslijnen',$,IfcLabel('beiden'),$)
D1L AC_Pset_32_KD_berkvens_BA #978588=IfcPropertySingleValue('deurdorpel',$,IfcBoolean(.F.),$)
D1L AC_Pset_32_KD_berkvens_BA #978589=IfcPropertySingleValue('materiaal dorpel',$,IfcLabel('RAL 9005 '),$)
D1L AC_Pset_32_KD_berkvens_BA #978590=IfcPropertySingleValue('bovenlichttype',$,IfcLabel('glas'),$)
D1L AC_Pset_32_KD_berkvens_BA #978591=IfcPropertySingleValue('materiaal bovenlicht glas',$,IfcLabel('Glas - blauw'),$)
D1L AC_Pset_32_KD_berkvens_BA #978592=IfcPropertySingleValue('materiaal bovenlicht paneel',$,IfcLabel('RAL 9010 '),$)
D1L AC_Pset_32_KD_berkvens_BA #978593=IfcPropertySingleValue('neuslat links (scharnierzijde)',$,IfcBoolean(.F.),$)
D1L AC_Pset_32_KD_berkvens_BA #978594=IfcPropertySingleValue('neuslat rechts (scharnierzijde',$,IfcBoolean(.T.),$)
D1L AC_Pset_32_KD_berkvens_BA #978595=IfcPropertySingleValue('materiaal neuslatten',$,IfcLabel('Verf - wit'),$)
D1L AC_Pset_32_KD_berkvens_BA #978596=IfcPropertySingleValue('kruk en schild',$,IfcBoolean(.T.),$)
D1L AC_Pset_32_KD_berkvens_BA #978597=IfcPropertySingleValue('materiaal kruk en schild',$,IfcLabel('Metaal - Roestvrijstaal'),$)
D1L AC_Pset_32_KD_berkvens_BA #978598=IfcPropertySingleValue('slottype',$,IfcLabel('loopslot'),$)
D1L AC_Pset_32_KD_berkvens_BA #978599=IfcPropertySingleValue('materiaal cilinder',$,IfcLabel('Metaal - Roestvrijstaal'),$)
D1L AC_Pset_32_KD_berkvens_BA #978600=IfcPropertySingleValue('materiaal deur',$,IfcLabel('RAL 9001'),$)
D1L AC_Pset_32_KD_berkvens_BA #978601=IfcPropertySingleValue('materiaal kozijn',$,IfcLabel('RAL 9010 '),$)
D1L AC_Pset_RenovationAndPhasing #978607=IfcPropertySingleValue('Renovation Status',$,IfcLabel('New'),$)
D1L Pset_DoorCommon #978613=IfcPropertySingleValue('IsExternal',$,IfcBoolean(.F.),$)
...