[ Error ] PlacesObject does not exist in IfcAxis2Placement3D in BimServer

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

[ Error ] PlacesObject does not exist in IfcAxis2Placement3D in BimServer

Postby paullee » Tue Oct 29, 2019 6:42 pm

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 407 times
Screenshot from 2019-10-30 02-29-19.png
Screenshot from 2019-10-30 02-29-19.png (157.88 KiB) Viewed 407 times
Screenshot from 2019-10-30 02-30-42.png
Screenshot from 2019-10-30 02-30-42.png (223.12 KiB) Viewed 407 times
Attachments
Test_ Ifc_ PlacesObject_ vs_ IfcAxis2Placement3D_ 6c.ifc
(7.58 KiB) Downloaded 9 times
Test_ Ifc_ PlacesObject_ vs_ IfcAxis2Placement3D_ 6c.FCStd
(208.68 KiB) Downloaded 7 times
User avatar
bernd
Posts: 8488
Joined: Sun Sep 08, 2013 8:07 pm
Location: Zürich, Switzerland

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

Postby bernd » 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.
hlg
Posts: 19
Joined: Fri Jul 12, 2019 10:11 am

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

Postby hlg » 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);
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
Posts: 1839
Joined: Wed May 04, 2016 3:58 pm

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

Postby paullee » Fri Nov 01, 2019 3:32 pm

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
Posts: 1839
Joined: Wed May 04, 2016 3:58 pm

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

Postby paullee » 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.
User avatar
bernd
Posts: 8488
Joined: Sun Sep 08, 2013 8:07 pm
Location: Zürich, Switzerland

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

Postby bernd » Fri Nov 01, 2019 3:49 pm

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
Posts: 8488
Joined: Sun Sep 08, 2013 8:07 pm
Location: Zürich, Switzerland

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

Postby bernd » Fri Nov 01, 2019 3:54 pm

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
Posts: 1839
Joined: Wed May 04, 2016 3:58 pm

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

Postby paullee » Sat Nov 02, 2019 1:56 pm

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 :)
hlg
Posts: 19
Joined: Fri Jul 12, 2019 10:11 am

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

Postby hlg » Mon Nov 04, 2019 8:21 am

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
Site Admin
Posts: 11584
Joined: Tue Feb 17, 2009 9:16 pm
Location: São Paulo, Brazil
Contact:

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

Postby yorik » Mon Nov 04, 2019 7:03 pm

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 ;)