[ Error ] PlacesObject does not exist in IfcAxis2Placement3D in BimServer

This forum section is only for IFC-related issues
paullee
Veteran
Posts: 5098
Joined: Wed May 04, 2016 3:58 pm

[ Error ] PlacesObject does not exist in IfcAxis2Placement3D in BimServer

Post by paullee »

Hi, below file export to an ifc.

Ifc++ open the ifc w/o problem.

In BimServer, it refuse to import and return error ' PlacesObject does not exist in IfcAxis2Placement3D '

Any idea ?
Thanks.
Screenshot from 2019-10-30 02-28-53.png
Screenshot from 2019-10-30 02-28-53.png (83.77 KiB) Viewed 2131 times
Screenshot from 2019-10-30 02-29-19.png
Screenshot from 2019-10-30 02-29-19.png (157.88 KiB) Viewed 2131 times
Screenshot from 2019-10-30 02-30-42.png
Screenshot from 2019-10-30 02-30-42.png (223.12 KiB) Viewed 2131 times
Attachments
Test_ Ifc_ PlacesObject_ vs_ IfcAxis2Placement3D_ 6c.ifc
(7.58 KiB) Downloaded 68 times
Test_ Ifc_ PlacesObject_ vs_ IfcAxis2Placement3D_ 6c.FCStd
(208.68 KiB) Downloaded 67 times
User avatar
bernd
Veteran
Posts: 12849
Joined: Sun Sep 08, 2013 8:07 pm
Location: Zürich, Switzerland
Contact:

Re: [ Error ] PlacesObject does not exist in IfcAxis2Placement3D in BimServer

Post by bernd »

Would it be possible to reduce it to just one wall (without a opening, if this is possible)? Debugging would be much more simple than.
User avatar
hlg
Posts: 39
Joined: Fri Jul 12, 2019 10:11 am

Re: [ Error ] PlacesObject does not exist in IfcAxis2Placement3D in BimServer

Post by hlg »

The IFC file is invalid. The same error popped up as BIMserver issue recently: https://github.com/opensourceBIM/BIMser ... -525906646. The issue reduces to these lines:

Code: Select all

#9=IFCAXIS2PLACEMENT3D(#8,#7,#6);
#152=IFCANNOTATION('3yOaSecJ57P9QBcy4qsBvP',#5,'DrOpening__Sk_Dr_950x2200_01','',$,#9,#151);
The 6th attribute in IfcAnnotation should be of type IfcObjectPlacement which would have the inverse attribute PlacesObject. However, IfcAxis2Placement3D is not a subtype of IfcObjectPlacement and thus can not be used in this place. As a side-effect it also does not have the expected inverse attribute.

In order to fix this, you can change #152 to refer to #60 instead of #9, since this happens to be the object placement using the axis placement #9:

Code: Select all

#9=IFCAXIS2PLACEMENT3D(#8,#7,#6);
#60=IFCLOCALPLACEMENT($,#9);
#152=IFCANNOTATION('3yOaSecJ57P9QBcy4qsBvP',#5,'DrOpening__Sk_Dr_950x2200_01','',$,#60,#151);
Inform the person who generated this file or the maintainer of the software which produced the file of the invalidity.
paullee
Veteran
Posts: 5098
Joined: Wed May 04, 2016 3:58 pm

Re: [ Error ] PlacesObject does not exist in IfcAxis2Placement3D in BimServer

Post by paullee »

hlg wrote: Fri Nov 01, 2019 1:44 pm The IFC file is invalid. The same error popped up as BIMserver issue recently: https://github.com/opensourceBIM/BIMser ... -525906646. The issue reduces to these lines:

Code: Select all

#9=IFCAXIS2PLACEMENT3D(#8,#7,#6);
#152=IFCANNOTATION('3yOaSecJ57P9QBcy4qsBvP',#5,'DrOpening__Sk_Dr_950x2200_01','',$,#9,#151);
...

Inform the person who generated this file or the maintainer of the software which produced the file of the invalidity.
Thanks, this looks exactly as @moult reported and you advised in https://github.com/opensourceBIM/BIMserver/issues/1032 :)
paullee
Veteran
Posts: 5098
Joined: Wed May 04, 2016 3:58 pm

Re: [ Error ] PlacesObject does not exist in IfcAxis2Placement3D in BimServer

Post by paullee »

bernd wrote: Wed Oct 30, 2019 1:21 pm Would it be possible to reduce it to just one wall (without a opening, if this is possible)? Debugging would be much more simple than.
Thanks, would try to see if it works.
User avatar
bernd
Veteran
Posts: 12849
Joined: Sun Sep 08, 2013 8:07 pm
Location: Zürich, Switzerland
Contact:

Re: [ Error ] PlacesObject does not exist in IfcAxis2Placement3D in BimServer

Post by bernd »

paullee wrote: Fri Nov 01, 2019 3:39 pm
bernd wrote: Wed Oct 30, 2019 1:21 pm Would it be possible to reduce it to just one wall (without a opening, if this is possible)? Debugging would be much more simple than.
Thanks, would try to see if it works.
great, it would much simpler to find if this is on ifcopenshell or on FreeCAD side.
User avatar
bernd
Veteran
Posts: 12849
Joined: Sun Sep 08, 2013 8:07 pm
Location: Zürich, Switzerland
Contact:

Re: [ Error ] PlacesObject does not exist in IfcAxis2Placement3D in BimServer

Post by bernd »

problem seams on FreeCAD side ...

six position in IfcAnnotation (be aware in one line are two entries ... ) https://github.com/FreeCAD/FreeCAD/blob ... C.py#L1162 ad gpl is a ifcAxis2Placement https://github.com/FreeCAD/FreeCAD/blob ... C.py#L1096 which is aparently wrong.
paullee
Veteran
Posts: 5098
Joined: Wed May 04, 2016 3:58 pm

Re: [ Error ] PlacesObject does not exist in IfcAxis2Placement3D in BimServer

Post by paullee »

Thanks, seem you find the bug even before I further simplify the model, hope it can be fixed.

IfcExport.py seem critical to make FC stand out from others, hope have sometime trying to understand how it works soon :)
User avatar
hlg
Posts: 39
Joined: Fri Jul 12, 2019 10:11 am

Re: [ Error ] PlacesObject does not exist in IfcAxis2Placement3D in BimServer

Post by hlg »

Oh, I did not realize that this was created with FreeCAD / IFCOpenShell. I just had a look at the IFCOpenShell sources and it seems as if the Python wrapper only supports late binding, that is no IFC type checking during creation of the IFC. This makes it very likely for this kind of errors to appear again as the IFC generation code evolves in FreeCAD.
User avatar
yorik
Founder
Posts: 13640
Joined: Tue Feb 17, 2009 9:16 pm
Location: Brussels
Contact:

Re: [ Error ] PlacesObject does not exist in IfcAxis2Placement3D in BimServer

Post by yorik »

This is annoying that sometimes IfcOpenShell allows you to do something, because the schema allows it, but prevents the same thing when re-reading, because it's implemented differently.
I think hlg's suggestion is good, we should add one more line in exportIFC.py where Bernd shows to create a LocalPlacement from the IfcAxis2DPlacement and use that in the IfcAnnotation instead. Mind to do a little PR hlg ? instant fame as an official FreeCAD developer ;)
Post Reply