Annex E
(informative)
Examples
E.2.1 - Fixed Reference Swept Area Solid
Example overview
This example illustrates the usage of IfcFixedReferenceSweptAreaSolid with an IfcGradientCurve as its Directrix.
IFC-SPF source
ISO-10303-21; HEADER; FILE_DESCRIPTION (('ViewDefinition [Ifc4X3NotAssigned]'), '2;1'); FILE_NAME ('fixed-reference-swept-area-solid.ifc', '2021-05-31T10:24:22', (), (), 'redacted', $, $); FILE_SCHEMA (('IFC4X3_DEV_54a9de1b')); ENDSEC; DATA; #1 = IFCOWNERHISTORY(#2, #6, $, .NOCHANGE., $, $, $, 1622456662); #2 = IFCPERSONANDORGANIZATION(#3, #4, $); #3 = IFCPERSON($, 'redacted', 'redacted', $, $, $, $, $); #4 = IFCORGANIZATION($, 'redacted', $, $, $); #5 = IFCORGANIZATION($, 'redacted', $, $, $); #6 = IFCAPPLICATION(#5, 'redacted', 'redacted', 'redacted'); #7 = IFCPROJECT('1KHe$WNlzEv9HjT4rl4VxF', #1, 'Test IFC Project', $, $, $, $, (#13), #8); #8 = IFCUNITASSIGNMENT((#9, #10, #11, #12)); #9 = IFCSIUNIT(*, .LENGTHUNIT., $, .METRE.); #10 = IFCSIUNIT(*, .AREAUNIT., $, .SQUARE_METRE.); #11 = IFCSIUNIT(*, .VOLUMEUNIT., $, .CUBIC_METRE.); #12 = IFCSIUNIT(*, .PLANEANGLEUNIT., $, .RADIAN.); #13 = IFCGEOMETRICREPRESENTATIONCONTEXT($, 'Model', 3, 1.E-4, #14, #16); #14 = IFCAXIS2PLACEMENT3D(#15, $, $); #15 = IFCCARTESIANPOINT((0., 0., 0.)); #16 = IFCDIRECTION((0., 1.)); #17 = IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Body', 'Model', *, *, *, *, #13, $, .MODEL_VIEW., $); #18 = IFCARBITRARYCLOSEDPROFILEDEF(.AREA., 'Simple Profile', #19); #19 = IFCINDEXEDPOLYCURVE(#20, (IFCLINEINDEX((1, 2)), IFCLINEINDEX((2, 3)), IFCLINEINDEX((3, 4)), IFCLINEINDEX((4, 1))), $); #20 = IFCCARTESIANPOINTLIST2D(((-4., 0.), (-5., -1.), (5., -1.), (4., 0.)), $); #21 = IFCARBITRARYCLOSEDPROFILEDEF(.AREA., 'Ballast Profile', #22); #22 = IFCINDEXEDPOLYCURVE(#23, (IFCLINEINDEX((1, 2)), IFCLINEINDEX((2, 3)), IFCLINEINDEX((3, 1))), $); #23 = IFCCARTESIANPOINTLIST2D(((0., 0.), (5., 0.), (0., 2.)), $); #24 = IFCSITE('3g5nv3rSb0IQ9$jO$9Ncqu', #1, 'Default Site', $, $, #25, $, $, .ELEMENT., (0, 0, 0), (0, 0, 0), 0., $, $); #25 = IFCLOCALPLACEMENT($, #28); #26 = IFCDIRECTION((0., 0., 1.)); #27 = IFCDIRECTION((1., 0., 0.)); #28 = IFCAXIS2PLACEMENT3D(#15, #26, #27); #29 = IFCALIGNMENT('2D8Cp5OmzBGRS$ODVOQCpI', #1, 'Test Alignment', $, $, #30, #104, $); #30 = IFCLOCALPLACEMENT(#25, #33); #31 = IFCDIRECTION((0., 0., 1.)); #32 = IFCDIRECTION((1., 0., 0.)); #33 = IFCAXIS2PLACEMENT3D(#15, #31, #32); #34 = IFCALIGNMENTHORIZONTAL('2xT0IiEZf73PNVBjyHwgxW', #1, $, $, $, $, $); #35 = IFCALIGNMENTSEGMENT('0lqBKv7Xz1Hx2tmPCGtaId', #1, $, $, $, #1501, #1601, #36); #36 = IFCALIGNMENTHORIZONTALSEGMENT($, $, #37, 0., 0., 0., 400., $, .LINE.); #37 = IFCCARTESIANPOINT((0., 0.)); #38 = IFCALIGNMENTSEGMENT('2khQUqOiPFAu636Kou9bk4', #1, $, $, $, #1501, #1611, #39); #39 = IFCALIGNMENTHORIZONTALSEGMENT($, $, #40, 0., 0., -500.000000000002, 150., $, .CLOTHOID.); #40 = IFCCARTESIANPOINT((400., 0.)); #41 = IFCALIGNMENTSEGMENT('11dqI$HMz4CebkV9iLKg9$', #1, $, $, $, #1501, #1621, #42); #42 = IFCALIGNMENTHORIZONTALSEGMENT($, $, #43, 6.13318530717958, -500.000000000002, -500.000000000002, 400., $, .CIRCULARARC.); #43 = IFCCARTESIANPOINT((549.662851380011, -7.48795505445)); #44 = IFCRELNESTS('1w5bEuIVL2YOoivP91TH$2', #1, 'Linear Element Nesting', $, #34, (#35, #38, #41, #1101)); #45 = IFCALIGNMENTVERTICAL('07Wbmu4ZLAlx0aiW05N_HP', #1, $, $, $, $, $); #46 = IFCALIGNMENTSEGMENT('08P3AVV2b549Z7rUT7iqbl', #1, $, $, $, #2501, #2601, #47); #47 = IFCALIGNMENTVERTICALSEGMENT($, $, 0., 449.999993741124, 150., -9.99999999995544E-4, -9.99999999995544E-4, $, .CONSTANTGRADIENT.); #48 = IFCALIGNMENTSEGMENT('09GCKC11L2SObO1yHekdnH', #1, $, $, $, #2501, #2611, #49); #49 = IFCALIGNMENTVERTICALSEGMENT($, $, 449.999993741124, 100.000006258876, 149.550000006261, -9.99999999995544E-4, 4.44444444449813E-4, 69230.7996321627, .CIRCULARARC.); #50 = IFCALIGNMENTSEGMENT('39fS3hA8n5YOBvYphrBOIM', #1, $, $, $, #2501, #2621, #51); #51 = IFCALIGNMENTVERTICALSEGMENT($, $, 550., 400., 149.522222225005, 4.44444444449813E-4, 4.44444444449813E-4, $, .CONSTANTGRADIENT.); #52 = IFCRELNESTS('1iCtZKOqLCB90hpLOjJJd5', #1, 'Linear Element Nesting', $, #45, (#46, #48, #50, #2001)); #53 = IFCRELNESTS('2z6zU2oev8zxp_XNySq472', #1, 'Alignment Nesting', $, #29, (#34, #45)); #54 = IFCCOMPOSITECURVE((#55, #63, #71, #1201), .U.); #55 = IFCCURVESEGMENT(.CONTSAMEGRADIENTSAMECURVATURE., #58, IFCLENGTHMEASURE(0.), IFCLENGTHMEASURE(400.), #59); #56 = IFCCARTESIANPOINT((0., 0.)); #57 = IFCDIRECTION((1., 0.)); #58 = IFCAXIS2PLACEMENT2D(#56, #57); #59 = IFCLINE(#60, #61); #60 = IFCCARTESIANPOINT((0., 0.)); #61 = IFCVECTOR(#62, 1.); #62 = IFCDIRECTION((1., 0.)); #63 = IFCCURVESEGMENT(.CONTSAMEGRADIENTSAMECURVATURE., #66, IFCLENGTHMEASURE(0.), IFCLENGTHMEASURE(150.), #67); #64 = IFCCARTESIANPOINT((400., 0.)); #65 = IFCDIRECTION((1., 0.)); #66 = IFCAXIS2PLACEMENT2D(#64, #65); #67 = IFCCLOTHOID(#70, -273.861278752584); #68 = IFCCARTESIANPOINT((0., 0.)); #69 = IFCDIRECTION((1., 0.)); #70 = IFCAXIS2PLACEMENT2D(#68, #69); #71 = IFCCURVESEGMENT(.CONTSAMEGRADIENTSAMECURVATURE., #74, IFCLENGTHMEASURE(0.), IFCLENGTHMEASURE(-400.), #75); #72 = IFCCARTESIANPOINT((549.662851380011, -7.48795505445)); #73 = IFCDIRECTION((9.88771077936042E-1, -1.49438132473604E-1)); #74 = IFCAXIS2PLACEMENT2D(#72, #73); #75 = IFCCIRCLE(#78, 500.000000000002); #76 = IFCCARTESIANPOINT((0., 0.)); #77 = IFCDIRECTION((1., 0.)); #78 = IFCAXIS2PLACEMENT2D(#76, #77); #79 = IFCGRADIENTCURVE((#80, #88, #96, #2101), .U., #54, $); #80 = IFCCURVESEGMENT(.CONTSAMEGRADIENTSAMECURVATURE., #83, IFCLENGTHMEASURE(0.), IFCLENGTHMEASURE(450.000218741065), #84); #81 = IFCCARTESIANPOINT((0., 150.)); #82 = IFCDIRECTION((9.99999500000375E-1, -9.99999499995919E-4)); #83 = IFCAXIS2PLACEMENT2D(#81, #82); #84 = IFCLINE(#85, #86); #85 = IFCCARTESIANPOINT((0., 0.)); #86 = IFCVECTOR(#87, 1.); #87 = IFCDIRECTION((1., 0.)); #88 = IFCCURVESEGMENT(.CONTSAMEGRADIENTSAMECURVATURE., #91, IFCLENGTHMEASURE(4.71138898071803), IFCLENGTHMEASURE(100.00001881), #92); #89 = IFCCARTESIANPOINT((449.999993741124, 149.550000006261)); #90 = IFCDIRECTION((9.99999500000375E-1, -9.99999499995919E-4)); #91 = IFCAXIS2PLACEMENT2D(#89, #90); #92 = IFCCIRCLE(#95, 69230.7996321627); #93 = IFCCARTESIANPOINT((0., 0.)); #94 = IFCDIRECTION((1., 0.)); #95 = IFCAXIS2PLACEMENT2D(#93, #94); #96 = IFCCURVESEGMENT(.CONTSAMEGRADIENTSAMECURVATURE., #99, IFCLENGTHMEASURE(0.), IFCLENGTHMEASURE(400.000039506171), #100); #97 = IFCCARTESIANPOINT((550., 149.522222225005)); #98 = IFCDIRECTION((9.99999901234583E-1, 4.44444400554072E-4)); #99 = IFCAXIS2PLACEMENT2D(#97, #98); #100 = IFCLINE(#101, #102); #101 = IFCCARTESIANPOINT((0., 0.)); #102 = IFCVECTOR(#103, 1.); #103 = IFCDIRECTION((1., 0.)); #104 = IFCPRODUCTDEFINITIONSHAPE($, $, (#106, #1002)); #105 = IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Axis', 'Model', *, *, *, *, #13, $, .MODEL_VIEW., $); #106 = IFCSHAPEREPRESENTATION(#105, 'Axis', 'Curve3D', (#79)); #107 = IFCBUILTELEMENT('2SHUdmA2r5V9jMd4cdzKgL', #1, 'SimpleProfile', $, $, #108, #112, $); #108 = IFCLOCALPLACEMENT(#25, #111); #109 = IFCDIRECTION((0., 0., 1.)); #110 = IFCDIRECTION((1., 0., 0.)); #111 = IFCAXIS2PLACEMENT3D(#15, #109, #110); #112 = IFCPRODUCTDEFINITIONSHAPE($, $, (#122)); #113 = IFCFIXEDREFERENCESWEPTAREASOLID(#114, #120, #79, IFCLENGTHMEASURE(300.), IFCLENGTHMEASURE(600.), #121); #114 = IFCDERIVEDPROFILEDEF(.AREA., $, #18, #115, $); #115 = IFCCARTESIANTRANSFORMATIONOPERATOR2D(#116, $, #117, $); #116 = IFCDIRECTION((0., -1.)); #117 = IFCCARTESIANPOINT((0., 0.)); #118 = IFCDIRECTION((0., 0., 1.)); #119 = IFCDIRECTION((1., 0., 0.)); #120 = IFCAXIS2PLACEMENT3D(#15, #118, #119); #121 = IFCDIRECTION((0., 0., 1.)); #122 = IFCSHAPEREPRESENTATION(#17, 'Body', 'AdvancedSweptSolid', (#113)); #123 = IFCRELCONTAINEDINSPATIALSTRUCTURE('3mQl_T7XLDlAGuvVrxs9$u', #1, 'Container', 'Container to Contained', (#29, #107), #24); #124 = IFCRELAGGREGATES('2LmgKn6$L3nxKU6mkC4B5r', #1, 'Project Container', 'Project to Spatial Element', #7, (#24)); #3000 = IFCRELAGGREGATES('0mRn50inT2pf1XqujacVu9', #1, 'Project Container 2', 'Project to Alignment', #7, (#29)); #1001 = IFCGEOMETRICREPRESENTATIONSUBCONTEXT('FootPrint', 'Model', *, *, *, *, #13, $, .MODEL_VIEW., $); #1002 = IFCSHAPEREPRESENTATION(#1001, 'FootPrint', 'Curve2D', (#54)); #1101 = IFCALIGNMENTSEGMENT('1lqBKv7Xz1Hx2tmPCGtaIa', #1, $, $, $, #1501, #1631, #1102); #1102 = IFCALIGNMENTHORIZONTALSEGMENT($, $, #1103, -0.95, 0., 0., 0., $, .LINE.); #1103 = IFCCARTESIANPOINT((881.65153753789, -211.03194929054)); #1201 = IFCCURVESEGMENT(.DISCONTINUOUS., #1204, IFCLENGTHMEASURE(0.), IFCLENGTHMEASURE(0.), #1205); #1202 = IFCCARTESIANPOINT((0881.65153753789, -211.03194929054)); #1203 = IFCDIRECTION((0.58168308946, -0.81341550478)); #1204 = IFCAXIS2PLACEMENT2D(#1202, #1203); #1205 = IFCLINE(#1206, #1207); #1206 = IFCCARTESIANPOINT((0., 0.)); #1207 = IFCVECTOR(#1208, 1.); #1208 = IFCDIRECTION((1., 0.)); #1501 = IFCLOCALPLACEMENT($, #1502); #1502 = IFCAXIS2PLACEMENT3D(#1503, $, $); #1503 = IFCCARTESIANPOINT((0., 0., 0.)); #1601 = IFCPRODUCTDEFINITIONSHAPE($, $, (#1602)); #1602 = IFCSHAPEREPRESENTATION(#105, 'Axis', 'Segment', (#55)); #1611 = IFCPRODUCTDEFINITIONSHAPE($, $, (#1612)); #1612 = IFCSHAPEREPRESENTATION(#105, 'Axis', 'Segment', (#63)); #1621 = IFCPRODUCTDEFINITIONSHAPE($, $, (#1622)); #1622 = IFCSHAPEREPRESENTATION(#105, 'Axis', 'Segment', (#71)); #1631 = IFCPRODUCTDEFINITIONSHAPE($, $, (#1632)); #1632 = IFCSHAPEREPRESENTATION(#105, 'Axis', 'Segment', (#1201)); #2001 = IFCALIGNMENTSEGMENT('49fS3hA8n5YOBvYphrBOIP', #1, $, $, $, #2501, #2631, #2002); #2002 = IFCALIGNMENTVERTICALSEGMENT($, $, 950., 0., 149.7, 4.44444444449813E-4, 4.44444444449813E-4, $, .CONSTANTGRADIENT.); #2101 = IFCCURVESEGMENT(.DISCONTINUOUS., #2104, IFCLENGTHMEASURE(0.), IFCLENGTHMEASURE(0.), #2105); #2102 = IFCCARTESIANPOINT((950., 149.7)); #2103 = IFCDIRECTION((9.99999901234583E-1, 4.44444400554072E-4)); #2104 = IFCAXIS2PLACEMENT2D(#2102, #2103); #2105 = IFCLINE(#85, #86); #2106 = IFCCARTESIANPOINT((0., 0.)); #2107 = IFCVECTOR(#2108, 1.); #2108 = IFCDIRECTION((1., 0.)); #2501 = IFCLOCALPLACEMENT($, #2502); #2502 = IFCAXIS2PLACEMENT3D(#2503, $, $); #2503 = IFCCARTESIANPOINT((0., 0., 0.)); #2601 = IFCPRODUCTDEFINITIONSHAPE($, $, (#2602)); #2602 = IFCSHAPEREPRESENTATION(#105, 'Axis', 'Segment', (#80)); #2611 = IFCPRODUCTDEFINITIONSHAPE($, $, (#2612)); #2612 = IFCSHAPEREPRESENTATION(#105, 'Axis', 'Segment', (#88)); #2621 = IFCPRODUCTDEFINITIONSHAPE($, $, (#2622)); #2622 = IFCSHAPEREPRESENTATION(#105, 'Axis', 'Segment', (#96)); #2631 = IFCPRODUCTDEFINITIONSHAPE($, $, (#2632)); #2632 = IFCSHAPEREPRESENTATION(#105, 'Axis', 'Segment', (#2101)); ENDSEC; END-ISO-10303-21;