diff --git a/DirectrixDerivedReferenceSweptAreaSolid-1/DirectrixDerivedReferenceSweptAreaSolid-1.ifc b/DirectrixDerivedReferenceSweptAreaSolid-1/DirectrixDerivedReferenceSweptAreaSolid-1.ifc new file mode 100644 index 00000000..c8ce236b --- /dev/null +++ b/DirectrixDerivedReferenceSweptAreaSolid-1/DirectrixDerivedReferenceSweptAreaSolid-1.ifc @@ -0,0 +1,139 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION (('ViewDefinition [Ifc4X3NotAssigned]'), '2;1'); +FILE_NAME ('DirectrixDerivedReferenceSweptAreaSolid-1.ifc', '2021-06-29T15:54:08', (), (), 'ACCA_IFC.dll Version 500', 'ACCA IfcRailGenerator', $); +FILE_SCHEMA (('IFC4X3_RC4')); +ENDSEC; +DATA; +#1 = IFCOWNERHISTORY(#2, #6, $, .NOCHANGE., $, $, $, 1624982048); +#2 = IFCPERSONANDORGANIZATION(#3, #4, $); +#3 = IFCPERSON($, 'D\X2\0027\X0\Urso', 'Alfonso', $, $, $, $, $); +#4 = IFCORGANIZATION($, 'ACCA software', $, $, $); +#5 = IFCORGANIZATION($, 'ACCA software', $, $, $); +#6 = IFCAPPLICATION(#5, '100', 'ACCA IfcRailGenerator', 'ACCA IfcRailGenerator'); +#7 = IFCPROJECT('3Vq$iAROT0eO$GFKXsFt6$', #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., 'Simple Profile Smaller', #22); +#22 = IFCINDEXEDPOLYCURVE(#23, (IFCLINEINDEX((1, 2)), IFCLINEINDEX((2, 3)), IFCLINEINDEX((3, 4)), IFCLINEINDEX((4, 1))), $); +#23 = IFCCARTESIANPOINTLIST2D(((-1., 0.), (-2., -1.), (2., -1.), (1., 0.)), $); +#24 = IFCSITE('1IJ7WsQirBIhXKVinOvCnh', #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('3x3Lwqt4bFAQR4qwhDFynb', #1, 'Test Alignment', $, $, #30, #111, $); +#30 = IFCLOCALPLACEMENT(#25, #33); +#31 = IFCDIRECTION((0., 0., 1.)); +#32 = IFCDIRECTION((1., 0., 0.)); +#33 = IFCAXIS2PLACEMENT3D(#15, #31, #32); +#34 = IFCALIGNMENTHORIZONTAL('3RkUzkvanFh8GmD9Nz6hw1', #1, $, $, $, $, $); +#35 = IFCALIGNMENTSEGMENT('0s9nv2f4fC_fMru9NdHjYq', #1, $, $, $, $, $, #36); +#36 = IFCALIGNMENTHORIZONTALSEGMENT($, $, #37, 0., 0., 0., 400., $, .LINE.); +#37 = IFCCARTESIANPOINT((0., 0.)); +#38 = IFCALIGNMENTSEGMENT('0CJ0a2mKv7Tx5uhTXV2pYN', #1, $, $, $, $, $, #39); +#39 = IFCALIGNMENTHORIZONTALSEGMENT($, $, #40, 0., 0., -500.000000000002, 150., $, .CLOTHOID.); +#40 = IFCCARTESIANPOINT((400., 0.)); +#41 = IFCALIGNMENTSEGMENT('2pwfTEmmn40ApNfl9KmOTG', #1, $, $, $, $, $, #42); +#42 = IFCALIGNMENTHORIZONTALSEGMENT($, $, #43, 6.13318530717958, -500.000000000002, -500.000000000002, 400., $, .CIRCULARARC.); +#43 = IFCCARTESIANPOINT((549.662851380011, -7.48795505445)); +#44 = IFCRELNESTS('0biedlTdP5yREgRdU$AEiI', #1, 'Linear Element Nesting', $, #34, (#35, #38, #41)); +#45 = IFCALIGNMENTVERTICAL('2JhvlAVLD5yhQip$dgdIMC', #1, $, $, $, $, $); +#46 = IFCALIGNMENTSEGMENT('1xDWUuPCXCUQ9POql$Cn9Y', #1, $, $, $, $, #88, #47); +#47 = IFCALIGNMENTVERTICALSEGMENT($, $, 0., 449.999993741124, 150., -9.99999999995544E-4, -9.99999999995544E-4, $, .CONSTANTGRADIENT.); +#48 = IFCALIGNMENTSEGMENT('3oZ8f1Uxr9ShyisF8oorC4', #1, $, $, $, $, #99, #49); +#49 = IFCALIGNMENTVERTICALSEGMENT($, $, 449.999993741124, 100.000006258876, 149.550000006261, -9.99999999995544E-4, 4.44444444449813E-4, 69230.7952744269, .CIRCULARARC.); +#50 = IFCALIGNMENTSEGMENT('1eUP1TyTP6DwVirRK3jwvS', #1, $, $, $, $, #109, #51); +#51 = IFCALIGNMENTVERTICALSEGMENT($, $, 550., 400., 149.522222225005, 4.44444444449813E-4, 4.44444444449813E-4, $, .CONSTANTGRADIENT.); +#52 = IFCRELNESTS('3RR2QUaLz2R99R6b9RJ9kY', #1, 'Linear Element Nesting', $, #45, (#46, #48, #50)); +#53 = IFCRELNESTS('1AApY_4xPAaAYbBqg_usA1', #1, 'Alignment Nesting', $, #29, (#34, #45)); +#54 = IFCCOMPOSITECURVE((#55, #63, #71), .U.); +#55 = IFCCURVESEGMENT(.CONTSAMEGRADIENTSAMECURVATURE., #58, IFCNONNEGATIVELENGTHMEASURE(0.), IFCNONNEGATIVELENGTHMEASURE(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, IFCNONNEGATIVELENGTHMEASURE(0.), IFCPARAMETERVALUE(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(.DISCONTINUOUS., #74, IFCNONNEGATIVELENGTHMEASURE(0.), IFCPARAMETERVALUE(-7.99999999999997E-1), #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, #91, #101), .U., #54, $); +#80 = IFCCURVESEGMENT(.CONTSAMEGRADIENTSAMECURVATURE., #83, IFCNONNEGATIVELENGTHMEASURE(0.), IFCPARAMETERVALUE(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 = IFCPRODUCTDEFINITIONSHAPE($, $, (#90)); +#89 = IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Axis', 'Model', *, *, *, *, #13, $, .MODEL_VIEW., $); +#90 = IFCSHAPEREPRESENTATION(#89, 'Axis', 'GeometricCurveSet', (#80)); +#91 = IFCCURVESEGMENT(.CONTSAMEGRADIENTSAMECURVATURE., #94, IFCNONNEGATIVELENGTHMEASURE(4.71138898071803), IFCPARAMETERVALUE(1.44444408184885E-3), #95); +#92 = IFCCARTESIANPOINT((449.999993741124, 149.550000006261)); +#93 = IFCDIRECTION((9.99999500000375E-1, -9.99999499995919E-4)); +#94 = IFCAXIS2PLACEMENT2D(#92, #93); +#95 = IFCCIRCLE(#98, 69230.7996321627); +#96 = IFCCARTESIANPOINT((0., 0.)); +#97 = IFCDIRECTION((1., 0.)); +#98 = IFCAXIS2PLACEMENT2D(#96, #97); +#99 = IFCPRODUCTDEFINITIONSHAPE($, $, (#100)); +#100 = IFCSHAPEREPRESENTATION(#89, 'Axis', 'GeometricCurveSet', (#91)); +#101 = IFCCURVESEGMENT(.DISCONTINUOUS., #104, IFCNONNEGATIVELENGTHMEASURE(0.), IFCPARAMETERVALUE(400.000039506171), #105); +#102 = IFCCARTESIANPOINT((550., 149.522222225005)); +#103 = IFCDIRECTION((9.99999901234583E-1, 4.44444400554072E-4)); +#104 = IFCAXIS2PLACEMENT2D(#102, #103); +#105 = IFCLINE(#106, #107); +#106 = IFCCARTESIANPOINT((0., 0.)); +#107 = IFCVECTOR(#108, 1.); +#108 = IFCDIRECTION((1., 0.)); +#109 = IFCPRODUCTDEFINITIONSHAPE($, $, (#110)); +#110 = IFCSHAPEREPRESENTATION(#89, 'Axis', 'GeometricCurveSet', (#101)); +#111 = IFCPRODUCTDEFINITIONSHAPE($, $, (#112)); +#112 = IFCSHAPEREPRESENTATION(#89, 'Axis', 'Curve3D', (#79)); +#113 = IFCBUILTELEMENT('1bNl5dfr5CmhEmoRtp_rxP', #1, 'SimpleProfile', $, $, #114, #118, $); +#114 = IFCLOCALPLACEMENT(#25, #117); +#115 = IFCDIRECTION((0., 0., 1.)); +#116 = IFCDIRECTION((1., 0., 0.)); +#117 = IFCAXIS2PLACEMENT3D(#15, #115, #116); +#118 = IFCPRODUCTDEFINITIONSHAPE($, $, (#128)); +#119 = IFCDIRECTRIXDERIVEDREFERENCESWEPTAREASOLID(#120, #126, #79, IFCNONNEGATIVELENGTHMEASURE(300.), IFCNONNEGATIVELENGTHMEASURE(700.), #127); +#120 = IFCDERIVEDPROFILEDEF(.AREA., $, #18, #121, $); +#121 = IFCCARTESIANTRANSFORMATIONOPERATOR2D(#122, $, #123, $); +#122 = IFCDIRECTION((0., -1.)); +#123 = IFCCARTESIANPOINT((0., 0.)); +#124 = IFCDIRECTION((0., 0., 1.)); +#125 = IFCDIRECTION((1., 0., 0.)); +#126 = IFCAXIS2PLACEMENT3D(#15, #124, #125); +#127 = IFCDIRECTION((0., 0., 1.)); +#128 = IFCSHAPEREPRESENTATION(#17, 'Body', 'AdvancedSweptSolid', (#119)); +#129 = IFCRELCONTAINEDINSPATIALSTRUCTURE('1YzId9bnX4CPaQgmnjU6T2', #1, 'Container', 'Container to Contained', (#29, #113), #24); +#130 = IFCRELAGGREGATES('1POavehI9FOO_m55M80Gut', #1, 'Project Container', 'Project to Spatial Element', #7, (#24)); +ENDSEC; +END-ISO-10303-21; diff --git a/DirectrixDerivedReferenceSweptAreaSolid-1/DirectrixDerivedReferenceSweptAreaSolid-1.png b/DirectrixDerivedReferenceSweptAreaSolid-1/DirectrixDerivedReferenceSweptAreaSolid-1.png new file mode 100644 index 00000000..9ca85446 Binary files /dev/null and b/DirectrixDerivedReferenceSweptAreaSolid-1/DirectrixDerivedReferenceSweptAreaSolid-1.png differ diff --git a/DirectrixDerivedReferenceSweptAreaSolid-1/README.md b/DirectrixDerivedReferenceSweptAreaSolid-1/README.md new file mode 100644 index 00000000..ff9500a8 --- /dev/null +++ b/DirectrixDerivedReferenceSweptAreaSolid-1/README.md @@ -0,0 +1,37 @@ +### Intent + +This scenario allows testing of a fixed reference swept area solid using IfcDirectrixDerivedReferenceSweptAreaSolid. + +### Prerequisites + +This scenario builds upon the alignment semantic and geometry definition. + +### Content + +This scenario covers the following concepts and/or IFC entities: + +- IfcAlignment +- IfcAlignmentSegment +- IfcAlignmentHorizontal +- IfcAlignmentHorizontalSegment +- IfcLine +- IfcCircle +- IfcClothoid +- IfcCompositeCurve +- IfcAlignmentVertical +- IfcAlignmentVerticalSegment +- IfcGradientCurve +- IfcDirectrixDerivedReferenceSweptAreaSolid +- IfcDerivedProfileDef +- IfcArbitraryClosedProfileDef +- IfcIndexedPolyCurve + + +### Supporting files + +Following files correspond to this scenario: + +| Filename | Description | +|-----------------------------------|---------------------------------------------| +| DirectrixDerivedReferenceSweptAreaSolid-1.ifc | contains the definition of a simple profile and the use of IfcDirectrixDerivedReferenceSweptAreaSolid to sweep along the gradient curve of the defined alignment| +| DirectrixDerivedReferenceSweptAreaSolid-1.png | screenshot of the IFC model |