I’ve read in the specification that I can have two geometric representation sub-contexts, one for 3d ‘body’ shapes and one for 2d ‘plan’ shapes.
I’m creating a new IFC authoring tool, and I’ve tried to set this up and I’m struggling to get it to work using Revit as my desired viewer.
I set up one main GeometricRepresentationContext of type ‘Model’, with the two subcontexts mentioned above, but I can never get my 2d shape to show up in the plan view unless I also put my 3d shape in that plan subcontext as well.
I’m trying to have door swings appear in 2d (with a basic open door shape) but in 3d have the door closed with full 3d geometry.
Here is what I have so far. I’m using a rectangle for my temporary swing representation but it doesn’t seem to be working.
Any suggestions?
ISO-10303-21;
HEADER;
FILE_DESCRIPTION((‘ViewDefinition[CoordinationView]’),‘2;1’);
FILE_NAME(‘Test.ifc’,‘2019-11-25T15:38:47’,(‘Test Author’,‘testAuthor@test.com’),(‘Test Organization’),’ IFC Object Library’,‘Automated Test Suite’,‘Test Authorizer’);
FILE_SCHEMA((‘IFC2X3’));
ENDSEC;
DATA;
#1=IFCORGANIZATION(’’,‘Test Organization’,$,$,$);
#2=IFCAPPLICATION(#1,‘Test Version’,‘Automated Test Suite’,‘IFC Tests’);
#3=IFCPERSON($,‘Person’,‘Test’,$,$,$,$,$);
#4=IFCPERSONANDORGANIZATION(#3,#1,$);
#5=IFCOWNERHISTORY(#4,#2,$,.NOCHANGE.,$,$,$,1574696328);
#6=IFCCARTESIANPOINT((0.,0.,0.));
#7=IFCDIRECTION((1.,0.,0.));
#8=IFCDIRECTION((0.,1.,0.));
#9=IFCDIRECTION((0.,0.,1.));
#10=IFCDIRECTION((1.,0.));
#11=IFCAXIS2PLACEMENT3D(#6,#9,#7);
#12=IFCAXIS2PLACEMENT2D(#6,#10);
#13=IFCGEOMETRICREPRESENTATIONCONTEXT($,‘Model’,3,0.,#11,#8);
#14=IFCGEOMETRICREPRESENTATIONSUBCONTEXT(‘Body’,‘Model’,,,,,#13,$,.MODEL_VIEW.,$);
#15=IFCGEOMETRICREPRESENTATIONCONTEXT(‘FootPrint’,‘Plan’,2,0.00001,#12,#10);
#16=IFCGEOMETRICREPRESENTATIONSUBCONTEXT(‘FootPrint’,‘Plan’,,,,,#15,$,.PLAN_VIEW.,$);
#17=IFCDIMENSIONALEXPONENTS(0,0,0,0,0,0,0);
#18=IFCDIMENSIONALEXPONENTS(1,0,0,0,0,0,0);
#19=IFCDIMENSIONALEXPONENTS(2,0,0,0,0,0,0);
#20=IFCDIMENSIONALEXPONENTS(3,0,0,0,0,0,0);
#21=IFCSIUNIT(,.AREAUNIT.,.MILLI.,.SQUARE_METRE.);
#22=IFCSIUNIT(,.VOLUMEUNIT.,.MILLI.,.CUBIC_METRE.);
#23=IFCSIUNIT(,.PLANEANGLEUNIT.,$,.RADIAN.);
#24=IFCSIUNIT(,.LENGTHUNIT.,.MILLI.,.METRE.);
#25=IFCMEASUREWITHUNIT(IFCREAL(25.4),#24);
#26=IFCCONVERSIONBASEDUNIT(#18,.LENGTHUNIT.,‘inch’,#25);
#27=IFCMEASUREWITHUNIT(IFCREAL(92903.039062),#21);
#28=IFCCONVERSIONBASEDUNIT(#19,.AREAUNIT.,‘square foot’,#27);
#29=IFCMEASUREWITHUNIT(IFCREAL(28316846.),#22);
#30=IFCCONVERSIONBASEDUNIT(#20,.VOLUMEUNIT.,‘cubic foot’,#29);
#31=IFCMEASUREWITHUNIT(IFCREAL(0.017453),#23);
#32=IFCCONVERSIONBASEDUNIT(#17,.PLANEANGLEUNIT.,‘DEGREE’,#31);
#33=IFCSIUNIT(,.SOLIDANGLEUNIT.,$,.STERADIAN.);
#34=IFCSIUNIT(,.MASSUNIT.,$,.GRAM.);
#35=IFCSIUNIT(,.TIMEUNIT.,$,.SECOND.);
#36=IFCSIUNIT(,.THERMODYNAMICTEMPERATUREUNIT.,$,.DEGREE_CELSIUS.);
#37=IFCSIUNIT(*,.LUMINOUSINTENSITYUNIT.,$,.LUMEN.);
#38=IFCUNITASSIGNMENT((#26,#28,#30,#32,#33,#34,#35,#36,#37));
#39=IFCPROJECT(‘3pH5OaQE93ph$izSLtkju3’,#5,’’,’’,’’,’’,’’,(#13,#15),#38);
#40=IFCLOCALPLACEMENT($,#11);
#41=IFCSITE(‘3JXWKp$eX4BA$uXDKAd0Kh’,#5,‘Default Site’,‘Description of Default Site’,$,#40,$,$,.ELEMENT.,(50,59,25),(113,57,40),0.,$,$);
#42=IFCRELAGGREGATES(‘1kDfIGlpz938lWVTQasHQX’,#5,$,$,#39,(#41));
#43=IFCLOCALPLACEMENT(#40,#11);
#44=IFCBUILDING(‘3isdCqxQv3juXLpQ57ijoE’,#5,’’,’’,’’,#43,$,$,.ELEMENT.,$,$,$);
#45=IFCRELAGGREGATES(‘0KquEtz351hha$DdIX_snZ’,#5,’’,’’,#41,(#44));
#46=IFCLOCALPLACEMENT(#43,#11);
#47=IFCBUILDINGSTOREY(‘0IMkiUWXP4rgzCktFcfzqS’,#5,‘Only Storey’,’’,$,#46,$,$,.ELEMENT.,0.);
#48=IFCRELAGGREGATES(‘0HDromRTL7gQwULKCTF412’,#5,’’,’’,#44,(#47));
#49=IFCAXIS2PLACEMENT3D(#6,#9,#7);
#50=IFCLOCALPLACEMENT(#46,#49);
#51=IFCCARTESIANPOINT((0.,0.));
#52=IFCDIRECTION((-1.,0.));
#53=IFCAXIS2PLACEMENT2D(#51,#52);
#54=IFCRECTANGLEPROFILEDEF(.AREA.,$,#53,200.,4.);
#55=IFCCARTESIANPOINT((0.,0.,0.));
#56=IFCAXIS2PLACEMENT3D(#55,$,$);
#57=IFCEXTRUDEDAREASOLID(#54,#56,#9,90.);
#58=IFCSHAPEREPRESENTATION(#14,‘Body’,‘Brep’,(#57));
#59=IFCPRODUCTDEFINITIONSHAPE($,$,(#58));
#60=IFCWALLTYPE(‘25vdYkj9zC4874gZ$l6F6R’,#5,’’,‘KingMakerCustomItem_Type option’,$,$,$,‘Test Wall’,‘Test Wall’,.STANDARD.);
#61=IFCWALLSTANDARDCASE(‘2cvJIQEFD1SQ0PHBDJl0hd’,#5,‘Test Wall’,$,’’,#50,#59,‘Test Wall’);
#62=IFCRELDEFINESBYTYPE(‘0QglFifDjDMhTV4HJgZJAa’,#5,$,$,(#61),#60);
#63=IFCCARTESIANPOINT((50.,-36.));
#64=IFCDIRECTION((1.,0.));
#65=IFCAXIS2PLACEMENT2D(#63,#64);
#66=IFCRECTANGLEPROFILEDEF(.AREA.,$,#65,30.,72.);
#67=IFCCARTESIANPOINT((0.,-2.,0.));
#68=IFCAXIS2PLACEMENT3D(#67,#8,#7);
#69=IFCEXTRUDEDAREASOLID(#66,#68,#9,4.);
#70=IFCSHAPEREPRESENTATION(#14,‘Body’,‘SweptSolid’,(#69));
#71=IFCPRODUCTDEFINITIONSHAPE($,$,(#70));
#72=IFCOPENINGELEMENT(‘11JlNZUhnCEeUzqUTBy3gv’,#5,‘Opening’,‘Opening Description’,‘Opening’,#50,#71,$);
#73=IFCRELVOIDSELEMENT(‘1kFELI_kT5Ff$SF2iTf11S’,#5,$,$,#61,#72);
#74=IFCCARTESIANPOINT((50.,0.));
#75=IFCDIRECTION((-1.,0.));
#76=IFCAXIS2PLACEMENT2D(#74,#75);
#77=IFCRECTANGLEPROFILEDEF(.AREA.,$,#76,29.,2.);
#78=IFCCARTESIANPOINT((0.,4.,0.));
#79=IFCAXIS2PLACEMENT3D(#78,$,$);
#80=IFCEXTRUDEDAREASOLID(#77,#79,#9,71.);
#81=IFCSHAPEREPRESENTATION(#14,‘Body’,‘Brep’,(#80));
#82=IFCCARTESIANPOINT((50.,0.));
#83=IFCDIRECTION((1.,0.));
#84=IFCAXIS2PLACEMENT2D(#82,#83);
#85=IFCCARTESIANPOINT((-10.,5.));
#86=IFCCARTESIANPOINT((10.,5.));
#87=IFCCARTESIANPOINT((10.,-5.));
#88=IFCCARTESIANPOINT((-10.,-5.));
#89=IFCPOLYLINE((#85,#86));
#90=IFCPOLYLINE((#88,#87));
#91=IFCPOLYLINE((#85,#88));
#92=IFCPOLYLINE((#86,#87));
#93=IFCGEOMETRICSET((#89,#90,#91,#92));
#94=IFCSHAPEREPRESENTATION(#16,‘FootPrint’,‘GeometricSet’,(#93));
#95=IFCPRODUCTDEFINITIONSHAPE($,$,(#81,#94));
#96=IFCDOORSTYLE(‘33JaY3GD9E9eFXgGxnjOAB’,#5,’’,‘KingMakerCustomItem_Type option’,$,$,$,‘Test Door’,.SLIDING_TO_LEFT.,.ALUMINIUM.,.F.,.F.);
#97=IFCDOOR(‘1sJB7tpULFevZmiwlPC1JY’,#5,‘Test Door’,$,’’,#50,#95,‘Test Door’,72.,30.);
#98=IFCRELDEFINESBYTYPE(‘2joLajRBjBzws$O116d$FS’,#5,$,$,(#97),#96);
#99=IFCRELFILLSELEMENT(‘2$iR5z1nHC3f7WZEzm89hO’,#5,$,$,#72,#97);
#100=IFCRELCONTAINEDINSPATIALSTRUCTURE(‘0PNkllgiLF7eoKyAR82nEC’,#5,$,$,(#61,#72,#97),#47);
ENDSEC;
END-ISO-10303-21;