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.
[ Error ] PlacesObject does not exist in IfcAxis2Placement3D in BimServer
[ Error ] PlacesObject does not exist in IfcAxis2Placement3D in BimServer
- Attachments
-
- Test_ Ifc_ PlacesObject_ vs_ IfcAxis2Placement3D_ 6c.ifc
- (7.58 KiB) Downloaded 69 times
-
- Test_ Ifc_ PlacesObject_ vs_ IfcAxis2Placement3D_ 6c.FCStd
- (208.68 KiB) Downloaded 70 times
Re: [ Error ] PlacesObject does not exist in IfcAxis2Placement3D in BimServer
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.
Re: [ Error ] PlacesObject does not exist in IfcAxis2Placement3D in BimServer
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:
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:
Inform the person who generated this file or the maintainer of the software which produced the file of the invalidity.
Code: Select all
#9=IFCAXIS2PLACEMENT3D(#8,#7,#6);
#152=IFCANNOTATION('3yOaSecJ57P9QBcy4qsBvP',#5,'DrOpening__Sk_Dr_950x2200_01','',$,#9,#151);
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);
Re: [ Error ] PlacesObject does not exist in IfcAxis2Placement3D in BimServer
Thanks, this looks exactly as @moult reported and you advised in https://github.com/opensourceBIM/BIMserver/issues/1032hlg 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.
Re: [ Error ] PlacesObject does not exist in IfcAxis2Placement3D in BimServer
great, it would much simpler to find if this is on ifcopenshell or on FreeCAD side.
Re: [ Error ] PlacesObject does not exist in IfcAxis2Placement3D in BimServer
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.
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.
Re: [ Error ] PlacesObject does not exist in IfcAxis2Placement3D in BimServer
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
IfcExport.py seem critical to make FC stand out from others, hope have sometime trying to understand how it works soon
Re: [ Error ] PlacesObject does not exist in IfcAxis2Placement3D in BimServer
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.
Re: [ Error ] PlacesObject does not exist in IfcAxis2Placement3D in BimServer
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
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