OpeningDesign / FreeMVD_WorkFlow

This project has been moved/forked to https://gitlab.com/osarch/FreeMVD_WorkFlow
21 stars 5 forks source link

Wrong shared element placement in Revit #5

Open yorikvanhavre opened 5 years ago

yorikvanhavre commented 5 years ago

I'm opening this to register and follow investigations. Below is a simple IFC file containing 4 columns, that share the same representation (mapped representation), with a 1m x 0.5m spacing between them (1m on red axis, 0.5m on green).

screenshot from 2018-08-03 15-28-16

When opening this file in Revit, however, the spacing has doubled size and becomes 2m x 1m. ArchiCAD, FreeCAD and IfcPlusPlus open the file correctly.

When editing the family, one can see that the base column shape is placed at -1m,-0.5m from the origin point, which is likely the source of the problem. In the IFC file, however, I fail to see what could have provoked this problem. The base profile (polyline #33) is correctly drawn around the center point, then extruded in Z axis, using a (0,0,0) placement. Each of the 4 column object uses a mapped representation of this extrusion, and a correct placement: (0,0), (1,0), (1,0.5) and (0,0.5).

ISO-10303-21;
HEADER;
FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1');
FILE_NAME('4 columns from freecad.ifc','2018-07-27T20:05:47',('Yorik van Havre','yorik@uncreated.net'),('uncreated.net'),'IfcOpenShell 0.5.0-dev','IfcOpenShell 0.5.0-dev','');
FILE_SCHEMA(('IFC4'));
ENDSEC;
DATA;
#1=IFCPERSON($,$,'Yorik van Havre',$,$,$,$,$);
#2=IFCORGANIZATION($,'uncreated.net',$,$,$);
#3=IFCPERSONANDORGANIZATION(#1,#2,$);
#4=IFCAPPLICATION(#2,'0.18 build 14159 (Git)','FreeCAD','118df2cf_ed21_438e_a41');
#5=IFCOWNERHISTORY(#3,#4,$,.ADDED.,$,#3,#4,1532721947);
#6=IFCDIRECTION((1.,0.,0.));
#7=IFCDIRECTION((0.,0.,1.));
#8=IFCCARTESIANPOINT((0.,0.,0.));
#9=IFCAXIS2PLACEMENT3D(#8,#7,#6);
#10=IFCDIRECTION((0.,1.,0.));
#11=IFCGEOMETRICREPRESENTATIONCONTEXT('Plan','Model',3,1.E-05,#9,#10);
#12=IFCDIMENSIONALEXPONENTS(0,0,0,0,0,0,0);
#13=IFCSIUNIT(*,.LENGTHUNIT.,$,.METRE.);
#14=IFCSIUNIT(*,.AREAUNIT.,$,.SQUARE_METRE.);
#15=IFCSIUNIT(*,.VOLUMEUNIT.,$,.CUBIC_METRE.);
#16=IFCSIUNIT(*,.PLANEANGLEUNIT.,$,.RADIAN.);
#17=IFCMEASUREWITHUNIT(IFCPLANEANGLEMEASURE(0.017453292519943295),#16);
#18=IFCCONVERSIONBASEDUNIT(#12,.PLANEANGLEUNIT.,'DEGREE',#17);
#19=IFCUNITASSIGNMENT((#13,#14,#15,#18));
#20=IFCPROJECT('c8768ca2_2187_4cb7_9dc',#5,'Unnamed',$,$,$,$,(#11),#19);
#21=IFCCARTESIANPOINT((-0.0275,-0.05));
#22=IFCCARTESIANPOINT((0.0275,-0.05));
#23=IFCCARTESIANPOINT((0.0275,-0.0443));
#24=IFCCARTESIANPOINT((0.00205,-0.0443));
#25=IFCCARTESIANPOINT((0.00205,0.0443));
#26=IFCCARTESIANPOINT((0.0275,0.0443));
#27=IFCCARTESIANPOINT((0.0275,0.05));
#28=IFCCARTESIANPOINT((-0.0275,0.05));
#29=IFCCARTESIANPOINT((-0.0275,0.0443));
#30=IFCCARTESIANPOINT((-0.00205,0.0443));
#31=IFCCARTESIANPOINT((-0.00205,-0.0443));
#32=IFCCARTESIANPOINT((-0.0275,-0.0443));
#33=IFCPOLYLINE((#21,#22,#23,#24,#25,#26,#27,#28,#29,#30,#31,#32,#21));
#34=IFCARBITRARYCLOSEDPROFILEDEF(.AREA.,$,#33);
#35=IFCCARTESIANPOINT((0.,0.,0.));
#36=IFCAXIS2PLACEMENT3D(#35,#7,#6);
#37=IFCEXTRUDEDAREASOLID(#34,#36,#7,2.);
#38=IFCSHAPEREPRESENTATION(#11,'Body','SweptSolid',(#37));
#39=IFCREPRESENTATIONMAP(#9,#38);
#40=IFCCARTESIANTRANSFORMATIONOPERATOR3D(#6,#10,#8,1.,#7);
#41=IFCMAPPEDITEM(#39,#40);
#42=IFCCOLOURRGB($,0.662745118141174,0.709803938865662,0.729411780834198);
#43=IFCSURFACESTYLERENDERING(#42,$,$,$,$,$,$,$,.FLAT.);
#44=IFCSURFACESTYLE($,.BOTH.,(#43));
#45=IFCPRESENTATIONSTYLEASSIGNMENT((#44));
#46=IFCSTYLEDITEM(#41,(#45),$);
#47=IFCLOCALPLACEMENT($,#9);
#48=IFCSHAPEREPRESENTATION(#11,'Body','MappedRepresentation',(#41));
#49=IFCPRODUCTDEFINITIONSHAPE($,$,(#48));
#50=IFCCOLUMN('1px5yyaTWHwBIR093rt3ko',#5,'Structure','',$,#47,#49,$,$);
#51=IFCDIRECTION((0.,1.,0.));
#52=IFCDIRECTION((-1.,0.,0.));
#53=IFCCARTESIANPOINT((0.,0.5,0.));
#54=IFCCARTESIANTRANSFORMATIONOPERATOR3D(#51,#52,#53,1.,#7);
#55=IFCMAPPEDITEM(#39,#54);
#56=IFCSTYLEDITEM(#55,(#45),$);
#57=IFCSHAPEREPRESENTATION(#11,'Body','MappedRepresentation',(#55));
#58=IFCPRODUCTDEFINITIONSHAPE($,$,(#57));
#59=IFCCOLUMN('1pxbVYaTWHwBIR093rt3ko',#5,'Structure003','',$,#47,#58,$,$);
#60=IFCCARTESIANPOINT((1.0,0.,0.));
#61=IFCCARTESIANTRANSFORMATIONOPERATOR3D(#6,#10,#60,1.,#7);
#62=IFCMAPPEDITEM(#39,#61);
#63=IFCSTYLEDITEM(#62,(#45),$);
#64=IFCSHAPEREPRESENTATION(#11,'Body','MappedRepresentation',(#62));
#65=IFCPRODUCTDEFINITIONSHAPE($,$,(#64));
#66=IFCCOLUMN('1pxixeaTWHwBIR093rt3ko',#5,'Structure001','',$,#47,#65,$,$);
#67=IFCCARTESIANPOINT((1.0,0.5,0.));
#68=IFCCARTESIANTRANSFORMATIONOPERATOR3D(#6,#10,#67,1.,#7);
#69=IFCMAPPEDITEM(#39,#68);
#70=IFCSTYLEDITEM(#69,(#45),$);
#71=IFCSHAPEREPRESENTATION(#11,'Body','MappedRepresentation',(#69));
#72=IFCPRODUCTDEFINITIONSHAPE($,$,(#71));
#73=IFCCOLUMN('1pxpZ4aTWHwBIR093rt3ko',#5,'Structure002','',$,#47,#72,$,$);
#74=IFCSITE('1pxzFOaTWHwBIR093rt3ko',#5,'Default Site','',$,$,$,$,.ELEMENT.,$,$,$,$,$);
#75=IFCRELAGGREGATES('1px_20aTWHwBIR093rt3ko',#5,'ProjectLink','',#20,(#74));
#76=IFCBUILDING('1px_vKaTWHwBIR093rt3ko',#5,'Default Building','',$,$,$,$,.ELEMENT.,$,$,$);
#77=IFCRELAGGREGATES('1px$dkaTWHwBIR093rt3ko',#5,'SiteLink','',#74,(#76));
#78=IFCBUILDINGSTOREY('1py1J4aTWHwBIR093rt3ko',#5,'Default Storey','',$,$,$,$,.ELEMENT.,$);
#79=IFCRELAGGREGATES('1py1_2aTWHwBIR093rt3ko',#5,'DefaultStoreyLink','',#76,(#78));
#80=IFCRELCONTAINEDINSPATIALSTRUCTURE('1py2d8aTWHwBIR093rt3ko',#5,'UnassignedObjectsLink','',(#66,#59,#73,#50),#78);
ENDSEC;
END-ISO-10303-21;

4 columns from freecad.ifc.zip