├── .gitattributes ├── .gitignore ├── Examples ├── BasinAdvancedBrep.ifc ├── BasinBrep.ifc ├── BasinTessellation.ifc ├── Bath.ifc ├── BeamExtruded.ifc ├── BeamTessellated.ifc ├── BeamUnitTestsVaryingCardinal.ifc ├── BeamUnitTestsVaryingPath.ifc ├── BeamUnitTestsVaryingProfile.ifc ├── Column.ifc ├── CurveParametersDegrees.ifc ├── CurveParametersRadians.ifc ├── Images │ ├── BasinAdvancedBrep.png │ ├── BasinBrep.png │ ├── BasinTessellation.png │ ├── Bath.png │ ├── BeamExtruded.png │ ├── BeamTessellated.png │ ├── BeamUnitTestsVaryingCardinal.png │ ├── BeamUnitTestsVaryingPath.png │ ├── BeamUnitTestsVaryingProfile.png │ ├── Column.png │ ├── CurveParameters.png │ ├── IndexedColourMap.png │ ├── ReinforcingAssembly.png │ ├── ReinforcingBar.png │ ├── SlabOpenings.png │ ├── slab.png │ └── wall.png ├── IndexedColourMap.ifc ├── ReinforcingAssembly.ifc ├── ReinforcingBar.ifc ├── Slab.ifc ├── SlabOpenings.ifc └── Wall.ifc ├── IfcScript.sln ├── IfcScript ├── Examples │ ├── Basin.cs │ ├── Bath.cs │ ├── Beam.cs │ ├── BeamUnitTests.cs │ ├── Column.cs │ ├── CurveParameters.cs │ ├── IndexedColourMap.cs │ ├── Reinforcement.cs │ ├── Slab.cs │ ├── Wall.cs │ └── Window.cs ├── Form1.Designer.cs ├── Form1.cs ├── Form1.resx ├── IFCExampleBase.cs ├── IfcScript.csproj ├── Program.cs ├── Properties │ ├── AssemblyInfo.cs │ ├── Resources.Designer.cs │ ├── Resources.resx │ ├── Settings.Designer.cs │ └── Settings.settings ├── app.config └── packages.config └── README.md /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | 4 | # Custom for Visual Studio 5 | *.cs diff=csharp 6 | *.sln merge=union 7 | *.csproj merge=union 8 | *.vbproj merge=union 9 | *.fsproj merge=union 10 | *.dbproj merge=union 11 | 12 | # Standard to msysgit 13 | *.doc diff=astextplain 14 | *.DOC diff=astextplain 15 | *.docx diff=astextplain 16 | *.DOCX diff=astextplain 17 | *.dot diff=astextplain 18 | *.DOT diff=astextplain 19 | *.pdf diff=astextplain 20 | *.PDF diff=astextplain 21 | *.rtf diff=astextplain 22 | *.RTF diff=astextplain 23 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | ## Ignore Visual Studio temporary files, build results, and 2 | ## files generated by popular Visual Studio add-ons. 3 | 4 | # User-specific files 5 | *.suo 6 | *.user 7 | *.userosscache 8 | *.sln.docstates 9 | 10 | # Build results 11 | [Dd]ebug/ 12 | [Dd]ebugPublic/ 13 | [Rr]elease/ 14 | [Rr]eleases/ 15 | x64/ 16 | x86/ 17 | build/ 18 | bld/ 19 | [Bb]in/ 20 | [Oo]bj/ 21 | 22 | # Roslyn cache directories 23 | *.ide 24 | .vs/ 25 | 26 | # MSTest test Results 27 | [Tt]est[Rr]esult*/ 28 | [Bb]uild[Ll]og.* 29 | 30 | #NUNIT 31 | *.VisualState.xml 32 | TestResult.xml 33 | 34 | # Build Results of an ATL Project 35 | [Dd]ebugPS/ 36 | [Rr]eleasePS/ 37 | dlldata.c 38 | 39 | *_i.c 40 | *_p.c 41 | *_i.h 42 | *.ilk 43 | *.meta 44 | *.obj 45 | *.pch 46 | *.pdb 47 | *.mdb 48 | *.pgc 49 | *.pgd 50 | *.rsp 51 | *.sbr 52 | *.tlb 53 | *.tli 54 | *.tlh 55 | *.tmp 56 | *.tmp_proj 57 | *.log 58 | *.vspscc 59 | *.vssscc 60 | .builds 61 | *.pidb 62 | *.svclog 63 | *.scc 64 | 65 | # Chutzpah Test files 66 | _Chutzpah* 67 | 68 | # Visual C++ cache files 69 | ipch/ 70 | *.aps 71 | *.ncb 72 | *.opensdf 73 | *.sdf 74 | *.cachefile 75 | 76 | # Visual Studio profiler 77 | *.psess 78 | *.vsp 79 | *.vspx 80 | 81 | # TFS 2012 Local Workspace 82 | $tf/ 83 | 84 | # Guidance Automation Toolkit 85 | *.gpState 86 | 87 | # ReSharper is a .NET coding add-in 88 | _ReSharper*/ 89 | *.[Rr]e[Ss]harper 90 | *.DotSettings.user 91 | 92 | # JustCode is a .NET coding addin-in 93 | .JustCode 94 | 95 | # TeamCity is a build add-in 96 | _TeamCity* 97 | 98 | # DotCover is a Code Coverage Tool 99 | *.dotCover 100 | 101 | # NCrunch 102 | _NCrunch_* 103 | .*crunch*.local.xml 104 | 105 | # MightyMoose 106 | *.mm.* 107 | AutoTest.Net/ 108 | 109 | # Web workbench (sass) 110 | .sass-cache/ 111 | 112 | # Installshield output folder 113 | [Ee]xpress/ 114 | 115 | # DocProject is a documentation generator add-in 116 | DocProject/buildhelp/ 117 | DocProject/Help/*.HxT 118 | DocProject/Help/*.HxC 119 | DocProject/Help/*.hhc 120 | DocProject/Help/*.hhk 121 | DocProject/Help/*.hhp 122 | DocProject/Help/Html2 123 | DocProject/Help/html 124 | 125 | # Click-Once directory 126 | publish/ 127 | 128 | # Publish Web Output 129 | *.[Pp]ublish.xml 130 | *.azurePubxml 131 | # TODO: Comment the next line if you want to checkin your web deploy settings 132 | # but database connection strings (with potential passwords) will be unencrypted 133 | *.pubxml 134 | *.publishproj 135 | 136 | # NuGet Packages 137 | *.nupkg 138 | # The packages folder can be ignored because of Package Restore 139 | **/packages/* 140 | # except build/, which is used as an MSBuild target. 141 | !**/packages/build/ 142 | # If using the old MSBuild-Integrated Package Restore, uncomment this: 143 | #!**/packages/repositories.config 144 | 145 | # Windows Azure Build Output 146 | csx/ 147 | *.build.csdef 148 | 149 | # Windows Store app package directory 150 | AppPackages/ 151 | 152 | # Others 153 | sql/ 154 | *.Cache 155 | ClientBin/ 156 | [Ss]tyle[Cc]op.* 157 | ~$* 158 | *~ 159 | *.dbmdl 160 | *.dbproj.schemaview 161 | *.pfx 162 | *.publishsettings 163 | node_modules/ 164 | *.msi 165 | 166 | # RIA/Silverlight projects 167 | Generated_Code/ 168 | 169 | # Backup & report files from converting an old project file 170 | # to a newer Visual Studio version. Backup files are not needed, 171 | # because we have git ;-) 172 | _UpgradeReport_Files/ 173 | Backup*/ 174 | UpgradeLog*.XML 175 | UpgradeLog*.htm 176 | 177 | # SQL Server files 178 | *.mdf 179 | *.ldf 180 | 181 | # Business Intelligence projects 182 | *.rdl.data 183 | *.bim.layout 184 | *.bim_*.settings 185 | 186 | # Microsoft Fakes 187 | FakesAssemblies/ 188 | 189 | # Rhino 190 | *.rui_bak 191 | 192 | # IFC 193 | !GeomGymIFCx64.dll 194 | !Rhino3dmIO.dll 195 | !rhino3dmio_native.dll -------------------------------------------------------------------------------- /Examples/BasinAdvancedBrep.ifc: -------------------------------------------------------------------------------- 1 | ISO-10303-21; 2 | HEADER; 3 | FILE_DESCRIPTION(('ViewDefinition [DesignTransferView_V1]'),'2;1'); 4 | FILE_NAME( 5 | /* name */ 'C:\\My Work\\Geometry Gym\\documents\\building smart\\github\\ifcscript\\examples\\BasinAdvancedBrep.ifc', 6 | /* time_stamp */ '2017-06-27T13:32:40', 7 | /* author */ ('jonm'), 8 | /* organization */ ('Geometry Gym'), 9 | /* preprocessor_version */ 'GeometryGymIFC v0.0.15.0 by Geometry Gym Pty Ltd built 2017-06-27T02:48:24', 10 | /* originating_system */ 'IFCExamples v0.0.1.0', 11 | /* authorization */ 'None'); 12 | 13 | FILE_SCHEMA (('IFC4')); 14 | ENDSEC; 15 | 16 | DATA; 17 | #10= IFCCARTESIANPOINT((0.0,0.0,0.0)); 18 | #11= IFCAXIS2PLACEMENT3D(#10,$,$); 19 | #12= IFCLOCALPLACEMENT($,#11); 20 | /* defines the default building (as required as the minimum spatial element) */ 21 | #13= IFCBUILDING('39t4Pu3nTC4ekXYRIHJB9W',$,'IfcBuilding',$,$,#12,$,$,$,$,$,#18); 22 | #14= IFCRELCONTAINEDINSPATIALSTRUCTURE('3Sa3dTJGn0H8TQIGiuGQd5',$,'Building','Building Container for Elements',(#204),#13); 23 | #15= IFCCARTESIANPOINT((0.0,0.0,0.0)); 24 | #16= IFCAXIS2PLACEMENT3D(#15,$,$); 25 | #18= IFCPOSTALADDRESS($,$,$,$,('Unknown'),$,'Unknown',$,'Unknown','Unknown'); 26 | /* general entities required for all IFC sets, defining the context for the exchange */ 27 | #20= IFCPROJECT('0$WU4A9R19$vKWO$AdOnKA',$,'IfcProject',$,$,$,$,(#28),#21); 28 | #21= IFCUNITASSIGNMENT((#22,#23,#24,#25,#26)); 29 | #22= IFCSIUNIT(*,.LENGTHUNIT.,.MILLI.,.METRE.); 30 | #23= IFCSIUNIT(*,.AREAUNIT.,$,.SQUARE_METRE.); 31 | #24= IFCSIUNIT(*,.VOLUMEUNIT.,$,.CUBIC_METRE.); 32 | #25= IFCSIUNIT(*,.PLANEANGLEUNIT.,$,.RADIAN.); 33 | #26= IFCSIUNIT(*,.TIMEUNIT.,$,.SECOND.); 34 | #27= IFCRELAGGREGATES('091a6ewbvCMQ2Vyiqspa7a',$,'Project Container','Project Container for Buildings',#20,(#13)); 35 | #28= IFCGEOMETRICREPRESENTATIONCONTEXT($,'Model',3,0.0001,#30,#31); 36 | #29= IFCCARTESIANPOINT((0.0,0.0,0.0)); 37 | #30= IFCAXIS2PLACEMENT3D(#29,$,$); 38 | #31= IFCDIRECTION((0.0,1.0)); 39 | #32= IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Body','Model',*,*,*,*,#28,$,.MODEL_VIEW.,$); 40 | /* geometry definition of the advanced brep */ 41 | /* Example data for BasinAdvancedBrep */ 42 | #50= IFCCARTESIANPOINT((0.0,253.09926,0.0)); 43 | #51= IFCCARTESIANPOINT((0.0,247.79242,-84.0)); 44 | #52= IFCCARTESIANPOINT((0.0,268.84323,0.0)); 45 | #53= IFCCARTESIANPOINT((0.0,247.79242,-94.0)); 46 | #54= IFCVERTEXPOINT(#50); 47 | #55= IFCVERTEXPOINT(#51); 48 | #56= IFCVERTEXPOINT(#52); 49 | #57= IFCVERTEXPOINT(#53); 50 | #58= IFCPOLYLINE((#50,#51)); 51 | #59= IFCEDGECURVE(#54,#55,#58,.T.); 52 | #60= IFCCARTESIANPOINT((239.75821,192.19356,-84.0)); 53 | #61= IFCCARTESIANPOINT((0.0,275.59185,-84.0)); 54 | #62= IFCCARTESIANPOINT((-239.75821,192.19356,-84.0)); 55 | #63= IFCCARTESIANPOINT((0.0,-108.13323,-84.0)); 56 | #64= IFCCARTESIANPOINT((239.75821,192.19356,-84.0)); 57 | #65= IFCCARTESIANPOINT((0.0,275.59185,-84.0)); 58 | #66= IFCCARTESIANPOINT((-239.75821,192.19356,-84.0)); 59 | #67= IFCBSPLINECURVEWITHKNOTS(3,(#60,#61,#62,#63,#64,#65,#66),.UNSPECIFIED.,.U.,.U.,(1,1,1,1,1,1,1,1,1,1,1),(-7.0,-6.0,-5.0,-4.0,-3.0,-2.0,-1.0,0.0,1.0,2.0,3.0),.UNSPECIFIED.); 60 | #68= IFCEDGECURVE(#55,#55,#67,.T.); 61 | #69= IFCCARTESIANPOINT((-437.751,168.15065)); 62 | #70= IFCCARTESIANPOINT((0.0,295.57357)); 63 | #71= IFCCARTESIANPOINT((437.751,168.15065)); 64 | #72= IFCCARTESIANPOINT((0.0,-290.71382)); 65 | #73= IFCCARTESIANPOINT((-437.751,168.15065)); 66 | #74= IFCCARTESIANPOINT((0.0,295.57357)); 67 | #75= IFCCARTESIANPOINT((437.751,168.15065)); 68 | #76= IFCBSPLINECURVEWITHKNOTS(3,(#69,#70,#71,#72,#73,#74,#75),.UNSPECIFIED.,.U.,.U.,(1,1,1,1,1,1,1,1,1,1,1),(-7.0,-6.0,-5.0,-4.0,-3.0,-2.0,-1.0,0.0,1.0,2.0,3.0),.UNSPECIFIED.); 69 | #77= IFCEDGECURVE(#54,#54,#76,.T.); 70 | #78= IFCPOLYLINE((#52,#53)); 71 | #79= IFCEDGECURVE(#56,#57,#78,.T.); 72 | #80= IFCCARTESIANPOINT((-239.75821,192.19356,-94.0)); 73 | #81= IFCCARTESIANPOINT((0.0,275.59185,-94.0)); 74 | #82= IFCCARTESIANPOINT((239.75821,192.19356,-94.0)); 75 | #83= IFCCARTESIANPOINT((0.0,-108.13323,-94.0)); 76 | #84= IFCCARTESIANPOINT((-239.75821,192.19356,-94.0)); 77 | #85= IFCCARTESIANPOINT((0.0,275.59185,-94.0)); 78 | #86= IFCCARTESIANPOINT((239.75821,192.19356,-94.0)); 79 | #87= IFCBSPLINECURVEWITHKNOTS(3,(#80,#81,#82,#83,#84,#85,#86),.UNSPECIFIED.,.U.,.U.,(1,1,1,1,1,1,1,1,1,1,1),(-7.0,-6.0,-5.0,-4.0,-3.0,-2.0,-1.0,0.0,1.0,2.0,3.0),.UNSPECIFIED.); 80 | #88= IFCEDGECURVE(#57,#57,#87,.T.); 81 | #89= IFCCARTESIANPOINT((457.68511,177.05108)); 82 | #90= IFCCARTESIANPOINT((0.0,314.73931)); 83 | #91= IFCCARTESIANPOINT((-457.68511,177.05108)); 84 | #92= IFCCARTESIANPOINT((0.0,-318.77999)); 85 | #93= IFCCARTESIANPOINT((457.68511,177.05108)); 86 | #94= IFCCARTESIANPOINT((0.0,314.73931)); 87 | #95= IFCCARTESIANPOINT((-457.68511,177.05108)); 88 | #96= IFCBSPLINECURVEWITHKNOTS(3,(#89,#90,#91,#92,#93,#94,#95),.UNSPECIFIED.,.U.,.U.,(1,1,1,1,1,1,1,1,1,1,1),(-7.0,-6.0,-5.0,-4.0,-3.0,-2.0,-1.0,0.0,1.0,2.0,3.0),.UNSPECIFIED.); 89 | #97= IFCEDGECURVE(#56,#56,#96,.T.); 90 | #98= IFCORIENTEDEDGE(*,*,#59,.T.); 91 | #99= IFCORIENTEDEDGE(*,*,#68,.T.); 92 | #100= IFCORIENTEDEDGE(*,*,#59,.F.); 93 | #101= IFCORIENTEDEDGE(*,*,#77,.T.); 94 | #102= IFCEDGELOOP((#98,#99,#100,#101)); 95 | #103= IFCFACEOUTERBOUND(#102,.T.); 96 | #104= IFCCARTESIANPOINT((437.751,168.15065,0.0)); 97 | #105= IFCCARTESIANPOINT((0.0,295.57357,0.0)); 98 | #106= IFCCARTESIANPOINT((-437.751,168.15065,0.0)); 99 | #107= IFCCARTESIANPOINT((0.0,-290.71382,0.0)); 100 | #108= IFCCARTESIANPOINT((437.751,168.15065,0.0)); 101 | #109= IFCCARTESIANPOINT((0.0,295.57357,0.0)); 102 | #110= IFCCARTESIANPOINT((-437.751,168.15065,0.0)); 103 | #111= IFCCARTESIANPOINT((371.7534,176.16496,-28.0)); 104 | #112= IFCCARTESIANPOINT((0.0,288.913,-28.0)); 105 | #113= IFCCARTESIANPOINT((-371.7534,176.16496,-28.0)); 106 | #114= IFCCARTESIANPOINT((0.0,-229.85362,-28.0)); 107 | #115= IFCCARTESIANPOINT((371.7534,176.16496,-28.0)); 108 | #116= IFCCARTESIANPOINT((0.0,288.913,-28.0)); 109 | #117= IFCCARTESIANPOINT((-371.7534,176.16496,-28.0)); 110 | #118= IFCCARTESIANPOINT((305.75581,184.17926,-56.0)); 111 | #119= IFCCARTESIANPOINT((0.0,282.25243,-56.0)); 112 | #120= IFCCARTESIANPOINT((-305.75581,184.17926,-56.0)); 113 | #121= IFCCARTESIANPOINT((0.0,-168.99343,-56.0)); 114 | #122= IFCCARTESIANPOINT((305.75581,184.17926,-56.0)); 115 | #123= IFCCARTESIANPOINT((0.0,282.25243,-56.0)); 116 | #124= IFCCARTESIANPOINT((-305.75581,184.17926,-56.0)); 117 | #125= IFCCARTESIANPOINT((239.75821,192.19356,-84.0)); 118 | #126= IFCCARTESIANPOINT((0.0,275.59185,-84.0)); 119 | #127= IFCCARTESIANPOINT((-239.75821,192.19356,-84.0)); 120 | #128= IFCCARTESIANPOINT((0.0,-108.13323,-84.0)); 121 | #129= IFCCARTESIANPOINT((239.75821,192.19356,-84.0)); 122 | #130= IFCCARTESIANPOINT((0.0,275.59185,-84.0)); 123 | #131= IFCCARTESIANPOINT((-239.75821,192.19356,-84.0)); 124 | #132= IFCBSPLINESURFACEWITHKNOTS(3,3,((#104,#105,#106,#107,#108,#109,#110),(#111,#112,#113,#114,#115,#116,#117),(#118,#119,#120,#121,#122,#123,#124),(#125,#126,#127,#128,#129,#130,#131)),.UNSPECIFIED.,.U.,.U.,.U.,(4,4),(1,1,1,1,1,1,1,1,1,1,1),(0.0,14.7110308353668),(-7.0,-6.0,-5.0,-4.0,-3.0,-2.0,-1.0,0.0,1.0,2.0,3.0),.UNSPECIFIED.); 125 | #133= IFCADVANCEDFACE((#103),#132,.F.); 126 | #134= IFCORIENTEDEDGE(*,*,#79,.T.); 127 | #135= IFCORIENTEDEDGE(*,*,#88,.T.); 128 | #136= IFCORIENTEDEDGE(*,*,#79,.F.); 129 | #137= IFCORIENTEDEDGE(*,*,#97,.T.); 130 | #138= IFCEDGELOOP((#134,#135,#136,#137)); 131 | #139= IFCFACEOUTERBOUND(#138,.T.); 132 | #140= IFCCARTESIANPOINT((-457.68511,177.05108,0.0)); 133 | #141= IFCCARTESIANPOINT((0.0,314.73931,0.0)); 134 | #142= IFCCARTESIANPOINT((457.68511,177.05108,0.0)); 135 | #143= IFCCARTESIANPOINT((0.0,-318.77999,0.0)); 136 | #144= IFCCARTESIANPOINT((-457.68511,177.05108,0.0)); 137 | #145= IFCCARTESIANPOINT((0.0,314.73931,0.0)); 138 | #146= IFCCARTESIANPOINT((457.68511,177.05108,0.0)); 139 | #147= IFCCARTESIANPOINT((-385.04281,182.09857,-31.33333)); 140 | #148= IFCCARTESIANPOINT((0.0,301.69016,-31.33333)); 141 | #149= IFCCARTESIANPOINT((385.04281,182.09857,-31.33333)); 142 | #150= IFCCARTESIANPOINT((0.0,-248.5644,-31.33333)); 143 | #151= IFCCARTESIANPOINT((-385.04281,182.09857,-31.33333)); 144 | #152= IFCCARTESIANPOINT((0.0,301.69016,-31.33333)); 145 | #153= IFCCARTESIANPOINT((385.04281,182.09857,-31.33333)); 146 | #154= IFCCARTESIANPOINT((-312.40051,187.14607,-62.66667)); 147 | #155= IFCCARTESIANPOINT((0.0,288.64101,-62.66667)); 148 | #156= IFCCARTESIANPOINT((312.40051,187.14607,-62.66667)); 149 | #157= IFCCARTESIANPOINT((0.0,-178.34882,-62.66667)); 150 | #158= IFCCARTESIANPOINT((-312.40051,187.14607,-62.66667)); 151 | #159= IFCCARTESIANPOINT((0.0,288.64101,-62.66667)); 152 | #160= IFCCARTESIANPOINT((312.40051,187.14607,-62.66667)); 153 | #161= IFCCARTESIANPOINT((-239.75821,192.19356,-94.0)); 154 | #162= IFCCARTESIANPOINT((0.0,275.59185,-94.0)); 155 | #163= IFCCARTESIANPOINT((239.75821,192.19356,-94.0)); 156 | #164= IFCCARTESIANPOINT((0.0,-108.13323,-94.0)); 157 | #165= IFCCARTESIANPOINT((-239.75821,192.19356,-94.0)); 158 | #166= IFCCARTESIANPOINT((0.0,275.59185,-94.0)); 159 | #167= IFCCARTESIANPOINT((239.75821,192.19356,-94.0)); 160 | #168= IFCBSPLINESURFACEWITHKNOTS(3,3,((#140,#141,#142,#143,#144,#145,#146),(#147,#148,#149,#150,#151,#152,#153),(#154,#155,#156,#157,#158,#159,#160),(#161,#162,#163,#164,#165,#166,#167)),.UNSPECIFIED.,.U.,.U.,.U.,(4,4),(1,1,1,1,1,1,1,1,1,1,1),(0.0,15.4213505620632),(-3.0,-2.0,-1.0,0.0,1.0,2.0,3.0,4.0,5.0,6.0,7.0),.UNSPECIFIED.); 161 | #169= IFCADVANCEDFACE((#139),#168,.F.); 162 | #170= IFCORIENTEDEDGE(*,*,#68,.F.); 163 | #171= IFCEDGELOOP((#170)); 164 | #172= IFCFACEOUTERBOUND(#171,.T.); 165 | #173= IFCAXIS2PLACEMENT3D(#51,$,$); 166 | #174= IFCPLANE(#173); 167 | #175= IFCADVANCEDFACE((#172),#174,.T.); 168 | #176= IFCORIENTEDEDGE(*,*,#88,.T.); 169 | #177= IFCEDGELOOP((#176)); 170 | #178= IFCFACEOUTERBOUND(#177,.T.); 171 | #179= IFCAXIS2PLACEMENT3D(#53,$,$); 172 | #180= IFCPLANE(#179); 173 | #181= IFCADVANCEDFACE((#178),#180,.F.); 174 | #182= IFCORIENTEDEDGE(*,*,#97,.F.); 175 | #183= IFCEDGELOOP((#182)); 176 | #184= IFCFACEOUTERBOUND(#183,.T.); 177 | #185= IFCORIENTEDEDGE(*,*,#77,.F.); 178 | #186= IFCEDGELOOP((#185)); 179 | #187= IFCFACEBOUND(#186,.T.); 180 | #188= IFCAXIS2PLACEMENT3D(#50,$,$); 181 | #189= IFCPLANE(#188); 182 | #190= IFCADVANCEDFACE((#184,#187),#189,.T.); 183 | #191= IFCCLOSEDSHELL((#133,#169,#175,#181,#190)); 184 | #192= IFCADVANCEDBREP(#191); 185 | #193= IFCREPRESENTATIONMAP(#16,#194); 186 | #194= IFCSHAPEREPRESENTATION(#32,'Body','SolidModel',(#192)); 187 | #195= IFCMATERIAL('Ceramic',$,$); 188 | #196= IFCRELASSOCIATESMATERIAL('0Pkhszwjv1qRMYyCFg9fjB',$,'MatAssoc','Material Associates',(#197),#195); 189 | #197= IFCSANITARYTERMINALTYPE('2Vk5O9OO94lfvLVH2WXKBZ',$,'Wash Hand Basin',$,$,$,(#193),$,$,.WASHHANDBASIN.); 190 | #198= IFCRELDEFINESBYTYPE('01OIK6g$5EVxvitdj$pQSU',$,'NameNotAssigned',$,(#204),#197); 191 | #199= IFCRELDECLARES('1Cjr05W9T0fx0M3_mdVqMd',$,$,$,#20,(#197)); 192 | #200= IFCCARTESIANTRANSFORMATIONOPERATOR3D($,$,#15,1.0,$); 193 | #201= IFCMAPPEDITEM(#193,#200); 194 | #202= IFCSHAPEREPRESENTATION(#32,'Body','MappedRepresentation',(#201)); 195 | #203= IFCPRODUCTDEFINITIONSHAPE($,$,(#202)); 196 | #204= IFCSANITARYTERMINAL('0dOOwKTsn8I8gwbP3LM1Yz',$,$,$,$,#205,#203,$,$); 197 | #205= IFCLOCALPLACEMENT(#12,#16); 198 | ENDSEC; 199 | 200 | END-ISO-10303-21; 201 | 202 | -------------------------------------------------------------------------------- /Examples/BasinBrep.ifc: -------------------------------------------------------------------------------- 1 | ISO-10303-21; 2 | HEADER; 3 | FILE_DESCRIPTION(('ViewDefinition [DesignTransferView_V1]'),'2;1'); 4 | FILE_NAME( 5 | /* name */ 'C:\\My Work\\Geometry Gym\\documents\\building smart\\github\\ifcscript\\examples\\BasinBrep.ifc', 6 | /* time_stamp */ '2017-06-27T13:32:40', 7 | /* author */ ('jonm'), 8 | /* organization */ ('Geometry Gym'), 9 | /* preprocessor_version */ 'GeometryGymIFC v0.0.15.0 by Geometry Gym Pty Ltd built 2017-06-27T02:48:24', 10 | /* originating_system */ 'IFCExamples v0.0.1.0', 11 | /* authorization */ 'None'); 12 | 13 | FILE_SCHEMA (('IFC4')); 14 | ENDSEC; 15 | 16 | DATA; 17 | #10= IFCCARTESIANPOINT((0.0,0.0,0.0)); 18 | #11= IFCAXIS2PLACEMENT3D(#10,$,$); 19 | #12= IFCLOCALPLACEMENT($,#11); 20 | /* defines the default building (as required as the minimum spatial element) */ 21 | #13= IFCBUILDING('39t4Pu3nTC4ekXYRIHJB9W',$,'IfcBuilding',$,$,#12,$,$,$,$,$,#18); 22 | #14= IFCRELCONTAINEDINSPATIALSTRUCTURE('3Sa3dTJGn0H8TQIGiuGQd5',$,'Building','Building Container for Elements',(#714),#13); 23 | #15= IFCCARTESIANPOINT((0.0,0.0,0.0)); 24 | #16= IFCAXIS2PLACEMENT3D(#15,$,$); 25 | #18= IFCPOSTALADDRESS($,$,$,$,('Unknown'),$,'Unknown',$,'Unknown','Unknown'); 26 | /* general entities required for all IFC sets, defining the context for the exchange */ 27 | #20= IFCPROJECT('0$WU4A9R19$vKWO$AdOnKA',$,'IfcProject',$,$,$,$,(#28),#21); 28 | #21= IFCUNITASSIGNMENT((#22,#23,#24,#25,#26)); 29 | #22= IFCSIUNIT(*,.LENGTHUNIT.,.MILLI.,.METRE.); 30 | #23= IFCSIUNIT(*,.AREAUNIT.,$,.SQUARE_METRE.); 31 | #24= IFCSIUNIT(*,.VOLUMEUNIT.,$,.CUBIC_METRE.); 32 | #25= IFCSIUNIT(*,.PLANEANGLEUNIT.,$,.RADIAN.); 33 | #26= IFCSIUNIT(*,.TIMEUNIT.,$,.SECOND.); 34 | #27= IFCRELAGGREGATES('091a6ewbvCMQ2Vyiqspa7a',$,'Project Container','Project Container for Buildings',#20,(#13)); 35 | #28= IFCGEOMETRICREPRESENTATIONCONTEXT($,'Model',3,0.0001,#30,#31); 36 | #29= IFCCARTESIANPOINT((0.0,0.0,0.0)); 37 | #30= IFCAXIS2PLACEMENT3D(#29,$,$); 38 | #31= IFCDIRECTION((0.0,1.0)); 39 | #32= IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Body','Model',*,*,*,*,#28,$,.MODEL_VIEW.,$); 40 | /* Example data for BasinBrep */ 41 | #50= IFCCARTESIANPOINT((0.0,268.84323,0.0)); 42 | #51= IFCCARTESIANPOINT((-40.65655,267.74123,0.0)); 43 | #52= IFCCARTESIANPOINT((-81.18445,264.33715,0.0)); 44 | #53= IFCCARTESIANPOINT((-121.41452,258.37997,0.0)); 45 | #54= IFCCARTESIANPOINT((-161.08449,249.43928,0.0)); 46 | #55= IFCCARTESIANPOINT((-199.7324,236.81664,0.0)); 47 | #56= IFCCARTESIANPOINT((-236.44829,219.3984,0.0)); 48 | #57= IFCCARTESIANPOINT((-269.26978,195.51934,0.0)); 49 | #58= IFCCARTESIANPOINT((-294.03692,163.50406,0.0)); 50 | #59= IFCCARTESIANPOINT((-304.87999,124.59816,0.0)); 51 | #60= IFCCARTESIANPOINT((-300.74433,84.29912,0.0)); 52 | #61= IFCCARTESIANPOINT((-286.87198,46.12809,0.0)); 53 | #62= IFCCARTESIANPOINT((-267.00398,10.67058,0.0)); 54 | #63= IFCCARTESIANPOINT((-242.91417,-22.07896,0.0)); 55 | #64= IFCCARTESIANPOINT((-215.49738,-52.10384,0.0)); 56 | #65= IFCCARTESIANPOINT((-185.23356,-79.25776,0.0)); 57 | #66= IFCCARTESIANPOINT((-152.39475,-103.23113,0.0)); 58 | #67= IFCCARTESIANPOINT((-117.16275,-123.51661,0.0)); 59 | #68= IFCCARTESIANPOINT((-79.73271,-139.36647,0.0)); 60 | #69= IFCCARTESIANPOINT((-40.44945,-149.76633,0.0)); 61 | #70= IFCCARTESIANPOINT((0.0,-153.50296,0.0)); 62 | #71= IFCCARTESIANPOINT((40.44945,-149.76633,0.0)); 63 | #72= IFCCARTESIANPOINT((79.7327,-139.36647,0.0)); 64 | #73= IFCCARTESIANPOINT((117.16276,-123.5166,0.0)); 65 | #74= IFCCARTESIANPOINT((152.39475,-103.23113,0.0)); 66 | #75= IFCCARTESIANPOINT((185.23357,-79.25776,0.0)); 67 | #76= IFCCARTESIANPOINT((215.49737,-52.10384,0.0)); 68 | #77= IFCCARTESIANPOINT((242.91417,-22.07897,0.0)); 69 | #78= IFCCARTESIANPOINT((267.00398,10.67058,0.0)); 70 | #79= IFCCARTESIANPOINT((286.87198,46.12809,0.0)); 71 | #80= IFCCARTESIANPOINT((300.74433,84.29911,0.0)); 72 | #81= IFCCARTESIANPOINT((304.87999,124.59816,0.0)); 73 | #82= IFCCARTESIANPOINT((294.03692,163.50406,0.0)); 74 | #83= IFCCARTESIANPOINT((269.26978,195.51934,0.0)); 75 | #84= IFCCARTESIANPOINT((236.44829,219.3984,0.0)); 76 | #85= IFCCARTESIANPOINT((199.7324,236.81664,0.0)); 77 | #86= IFCCARTESIANPOINT((161.08449,249.43928,0.0)); 78 | #87= IFCCARTESIANPOINT((121.41453,258.37997,0.0)); 79 | #88= IFCCARTESIANPOINT((81.18445,264.33715,0.0)); 80 | #89= IFCCARTESIANPOINT((40.65656,267.74123,0.0)); 81 | #90= IFCPOLYLOOP((#50,#51,#52,#53,#54,#55,#56,#57,#58,#59,#60,#61,#62,#63,#64,#65,#66,#67,#68,#69,#70,#71,#72,#73,#74,#75,#76,#77,#78,#79,#80,#81,#82,#83,#84,#85,#86,#87,#88,#89)); 82 | #91= IFCFACEOUTERBOUND(#90,.T.); 83 | #92= IFCCARTESIANPOINT((0.0,253.09926,0.0)); 84 | #93= IFCCARTESIANPOINT((38.42749,252.10355,0.0)); 85 | #94= IFCCARTESIANPOINT((76.74394,249.02867,0.0)); 86 | #95= IFCCARTESIANPOINT((114.80379,243.6498,0.0)); 87 | #96= IFCCARTESIANPOINT((152.38205,235.58044,0.0)); 88 | #97= IFCCARTESIANPOINT((189.08309,224.1897,0.0)); 89 | #98= IFCCARTESIANPOINT((224.12514,208.45694,0.0)); 90 | #99= IFCCARTESIANPOINT((255.79336,186.79513,0.0)); 91 | #100= IFCCARTESIANPOINT((280.26026,157.38301,0.0)); 92 | #101= IFCCARTESIANPOINT((291.49907,120.92908,0.0)); 93 | #102= IFCCARTESIANPOINT((287.78179,82.84399,0.0)); 94 | #103= IFCCARTESIANPOINT((274.33335,46.89761,0.0)); 95 | #104= IFCCARTESIANPOINT((255.04194,13.68045,0.0)); 96 | #105= IFCCARTESIANPOINT((231.71832,-16.85502,0.0)); 97 | #106= IFCCARTESIANPOINT((205.26491,-44.72872,0.0)); 98 | #107= IFCCARTESIANPOINT((176.16702,-69.83073,0.0)); 99 | #108= IFCCARTESIANPOINT((144.70588,-91.89667,0.0)); 100 | #109= IFCCARTESIANPOINT((111.07553,-110.48317,0.0)); 101 | #110= IFCCARTESIANPOINT((75.47926,-124.93689,0.0)); 102 | #111= IFCCARTESIANPOINT((38.24802,-134.37789,0.0)); 103 | #112= IFCCARTESIANPOINT((0.0,-137.759,0.0)); 104 | #113= IFCCARTESIANPOINT((-38.24801,-134.37789,0.0)); 105 | #114= IFCCARTESIANPOINT((-75.47926,-124.93689,0.0)); 106 | #115= IFCCARTESIANPOINT((-111.07554,-110.48317,0.0)); 107 | #116= IFCCARTESIANPOINT((-144.70587,-91.89667,0.0)); 108 | #117= IFCCARTESIANPOINT((-176.16701,-69.83073,0.0)); 109 | #118= IFCCARTESIANPOINT((-205.26491,-44.72872,0.0)); 110 | #119= IFCCARTESIANPOINT((-231.71832,-16.85502,0.0)); 111 | #120= IFCCARTESIANPOINT((-255.04193,13.68045,0.0)); 112 | #121= IFCCARTESIANPOINT((-274.33335,46.89761,0.0)); 113 | #122= IFCCARTESIANPOINT((-287.78179,82.84399,0.0)); 114 | #123= IFCCARTESIANPOINT((-291.49907,120.92908,0.0)); 115 | #124= IFCCARTESIANPOINT((-280.26026,157.38301,0.0)); 116 | #125= IFCCARTESIANPOINT((-255.79336,186.79513,0.0)); 117 | #126= IFCCARTESIANPOINT((-224.12514,208.45694,0.0)); 118 | #127= IFCCARTESIANPOINT((-189.08309,224.1897,0.0)); 119 | #128= IFCCARTESIANPOINT((-152.38204,235.58044,0.0)); 120 | #129= IFCCARTESIANPOINT((-114.80378,243.6498,0.0)); 121 | #130= IFCCARTESIANPOINT((-76.74395,249.02867,0.0)); 122 | #131= IFCCARTESIANPOINT((-38.42749,252.10355,0.0)); 123 | #132= IFCPOLYLOOP((#92,#93,#94,#95,#96,#97,#98,#99,#100,#101,#102,#103,#104,#105,#106,#107,#108,#109,#110,#111,#112,#113,#114,#115,#116,#117,#118,#119,#120,#121,#122,#123,#124,#125,#126,#127,#128,#129,#130,#131)); 124 | #133= IFCFACEBOUND(#132,.T.); 125 | #134= IFCFACE((#91,#133)); 126 | #135= IFCCARTESIANPOINT((0.0,247.79242,-94.0)); 127 | #136= IFCCARTESIANPOINT((22.54357,247.0437,-94.0)); 128 | #137= IFCCARTESIANPOINT((44.97961,244.72814,-94.0)); 129 | #138= IFCCARTESIANPOINT((67.16509,240.67001,-94.0)); 130 | #139= IFCCARTESIANPOINT((88.87585,234.57431,-94.0)); 131 | #140= IFCCARTESIANPOINT((109.71819,225.98355,-94.0)); 132 | #141= IFCCARTESIANPOINT((128.94516,214.24254,-94.0)); 133 | #142= IFCCARTESIANPOINT((145.13108,198.61703,-94.0)); 134 | #143= IFCCARTESIANPOINT((156.02826,178.98016,-94.0)); 135 | #144= IFCCARTESIANPOINT((159.83455,156.84655,-94.0)); 136 | #145= IFCCARTESIANPOINT((157.20513,134.49279,-94.0)); 137 | #146= IFCCARTESIANPOINT((150.33303,113.02927,-94.0)); 138 | #147= IFCCARTESIANPOINT((140.58542,92.69869,-94.0)); 139 | #148= IFCCARTESIANPOINT((128.64965,73.5662,-94.0)); 140 | #149= IFCCARTESIANPOINT((114.88082,55.70592,-94.0)); 141 | #150= IFCCARTESIANPOINT((99.45721,39.25377,-94.0)); 142 | #151= IFCCARTESIANPOINT((82.45578,24.44012,-94.0)); 143 | #152= IFCCARTESIANPOINT((63.90151,11.63058,-94.0)); 144 | #153= IFCCARTESIANPOINT((43.82581,1.38178,-94.0)); 145 | #154= IFCCARTESIANPOINT((22.37414,-5.50526,-94.0)); 146 | #155= IFCCARTESIANPOINT((0.0,-8.0243,-94.0)); 147 | #156= IFCCARTESIANPOINT((-22.37414,-5.50526,-94.0)); 148 | #157= IFCCARTESIANPOINT((-43.82581,1.38178,-94.0)); 149 | #158= IFCCARTESIANPOINT((-63.90151,11.63058,-94.0)); 150 | #159= IFCCARTESIANPOINT((-82.45578,24.44012,-94.0)); 151 | #160= IFCCARTESIANPOINT((-99.45721,39.25377,-94.0)); 152 | #161= IFCCARTESIANPOINT((-114.88082,55.70592,-94.0)); 153 | #162= IFCCARTESIANPOINT((-128.64965,73.5662,-94.0)); 154 | #163= IFCCARTESIANPOINT((-140.58542,92.69869,-94.0)); 155 | #164= IFCCARTESIANPOINT((-150.33303,113.02927,-94.0)); 156 | #165= IFCCARTESIANPOINT((-157.20513,134.49279,-94.0)); 157 | #166= IFCCARTESIANPOINT((-159.83455,156.84655,-94.0)); 158 | #167= IFCCARTESIANPOINT((-156.02827,178.98015,-94.0)); 159 | #168= IFCCARTESIANPOINT((-145.13108,198.61703,-94.0)); 160 | #169= IFCCARTESIANPOINT((-128.94516,214.24254,-94.0)); 161 | #170= IFCCARTESIANPOINT((-109.71819,225.98355,-94.0)); 162 | #171= IFCCARTESIANPOINT((-88.87585,234.57431,-94.0)); 163 | #172= IFCCARTESIANPOINT((-67.16509,240.67001,-94.0)); 164 | #173= IFCCARTESIANPOINT((-44.97961,244.72814,-94.0)); 165 | #174= IFCCARTESIANPOINT((-22.54358,247.0437,-94.0)); 166 | #175= IFCPOLYLOOP((#135,#136,#137,#138,#139,#140,#141,#142,#143,#144,#145,#146,#147,#148,#149,#150,#151,#152,#153,#154,#155,#156,#157,#158,#159,#160,#161,#162,#163,#164,#165,#166,#167,#168,#169,#170,#171,#172,#173,#174)); 167 | #176= IFCFACEOUTERBOUND(#175,.T.); 168 | #177= IFCFACE((#176)); 169 | #178= IFCCARTESIANPOINT((0.0,247.79242,-84.0)); 170 | #179= IFCCARTESIANPOINT((-22.54357,247.0437,-84.0)); 171 | #180= IFCCARTESIANPOINT((-44.97961,244.72814,-84.0)); 172 | #181= IFCCARTESIANPOINT((-67.16509,240.67001,-84.0)); 173 | #182= IFCCARTESIANPOINT((-88.87585,234.57431,-84.0)); 174 | #183= IFCCARTESIANPOINT((-109.71819,225.98355,-84.0)); 175 | #184= IFCCARTESIANPOINT((-128.94516,214.24254,-84.0)); 176 | #185= IFCCARTESIANPOINT((-145.13108,198.61703,-84.0)); 177 | #186= IFCCARTESIANPOINT((-156.02826,178.98016,-84.0)); 178 | #187= IFCCARTESIANPOINT((-159.83455,156.84655,-84.0)); 179 | #188= IFCCARTESIANPOINT((-157.20513,134.49279,-84.0)); 180 | #189= IFCCARTESIANPOINT((-150.33303,113.02927,-84.0)); 181 | #190= IFCCARTESIANPOINT((-140.58542,92.69869,-84.0)); 182 | #191= IFCCARTESIANPOINT((-128.64965,73.5662,-84.0)); 183 | #192= IFCCARTESIANPOINT((-114.88082,55.70592,-84.0)); 184 | #193= IFCCARTESIANPOINT((-99.45721,39.25377,-84.0)); 185 | #194= IFCCARTESIANPOINT((-82.45578,24.44012,-84.0)); 186 | #195= IFCCARTESIANPOINT((-63.90151,11.63058,-84.0)); 187 | #196= IFCCARTESIANPOINT((-43.82581,1.38178,-84.0)); 188 | #197= IFCCARTESIANPOINT((-22.37414,-5.50526,-84.0)); 189 | #198= IFCCARTESIANPOINT((0.0,-8.0243,-84.0)); 190 | #199= IFCCARTESIANPOINT((22.37414,-5.50526,-84.0)); 191 | #200= IFCCARTESIANPOINT((43.82581,1.38178,-84.0)); 192 | #201= IFCCARTESIANPOINT((63.90151,11.63058,-84.0)); 193 | #202= IFCCARTESIANPOINT((82.45578,24.44012,-84.0)); 194 | #203= IFCCARTESIANPOINT((99.45721,39.25377,-84.0)); 195 | #204= IFCCARTESIANPOINT((114.88082,55.70592,-84.0)); 196 | #205= IFCCARTESIANPOINT((128.64965,73.5662,-84.0)); 197 | #206= IFCCARTESIANPOINT((140.58542,92.69869,-84.0)); 198 | #207= IFCCARTESIANPOINT((150.33303,113.02927,-84.0)); 199 | #208= IFCCARTESIANPOINT((157.20513,134.49279,-84.0)); 200 | #209= IFCCARTESIANPOINT((159.83455,156.84655,-84.0)); 201 | #210= IFCCARTESIANPOINT((156.02827,178.98015,-84.0)); 202 | #211= IFCCARTESIANPOINT((145.13108,198.61703,-84.0)); 203 | #212= IFCCARTESIANPOINT((128.94516,214.24254,-84.0)); 204 | #213= IFCCARTESIANPOINT((109.71819,225.98355,-84.0)); 205 | #214= IFCCARTESIANPOINT((88.87585,234.57431,-84.0)); 206 | #215= IFCCARTESIANPOINT((67.16509,240.67001,-84.0)); 207 | #216= IFCCARTESIANPOINT((44.97961,244.72814,-84.0)); 208 | #217= IFCCARTESIANPOINT((22.54358,247.0437,-84.0)); 209 | #218= IFCPOLYLOOP((#178,#179,#180,#181,#182,#183,#184,#185,#186,#187,#188,#189,#190,#191,#192,#193,#194,#195,#196,#197,#198,#199,#200,#201,#202,#203,#204,#205,#206,#207,#208,#209,#210,#211,#212,#213,#214,#215,#216,#217)); 210 | #219= IFCFACEOUTERBOUND(#218,.T.); 211 | #220= IFCFACE((#219)); 212 | #221= IFCPOLYLOOP((#51,#50,#135)); 213 | #222= IFCFACEOUTERBOUND(#221,.T.); 214 | #223= IFCFACE((#222)); 215 | #224= IFCPOLYLOOP((#136,#135,#50)); 216 | #225= IFCFACEOUTERBOUND(#224,.T.); 217 | #226= IFCFACE((#225)); 218 | #227= IFCPOLYLOOP((#93,#92,#178)); 219 | #228= IFCFACEOUTERBOUND(#227,.T.); 220 | #229= IFCFACE((#228)); 221 | #230= IFCPOLYLOOP((#179,#178,#92)); 222 | #231= IFCFACEOUTERBOUND(#230,.T.); 223 | #232= IFCFACE((#231)); 224 | #233= IFCPOLYLOOP((#52,#51,#174)); 225 | #234= IFCFACEOUTERBOUND(#233,.T.); 226 | #235= IFCFACE((#234)); 227 | #236= IFCPOLYLOOP((#137,#136,#89)); 228 | #237= IFCFACEOUTERBOUND(#236,.T.); 229 | #238= IFCFACE((#237)); 230 | #239= IFCPOLYLOOP((#94,#93,#217)); 231 | #240= IFCFACEOUTERBOUND(#239,.T.); 232 | #241= IFCFACE((#240)); 233 | #242= IFCPOLYLOOP((#180,#179,#131)); 234 | #243= IFCFACEOUTERBOUND(#242,.T.); 235 | #244= IFCFACE((#243)); 236 | #245= IFCPOLYLOOP((#53,#52,#173)); 237 | #246= IFCFACEOUTERBOUND(#245,.T.); 238 | #247= IFCFACE((#246)); 239 | #248= IFCPOLYLOOP((#138,#137,#88)); 240 | #249= IFCFACEOUTERBOUND(#248,.T.); 241 | #250= IFCFACE((#249)); 242 | #251= IFCPOLYLOOP((#95,#94,#216)); 243 | #252= IFCFACEOUTERBOUND(#251,.T.); 244 | #253= IFCFACE((#252)); 245 | #254= IFCPOLYLOOP((#181,#180,#130)); 246 | #255= IFCFACEOUTERBOUND(#254,.T.); 247 | #256= IFCFACE((#255)); 248 | #257= IFCPOLYLOOP((#54,#53,#172)); 249 | #258= IFCFACEOUTERBOUND(#257,.T.); 250 | #259= IFCFACE((#258)); 251 | #260= IFCPOLYLOOP((#139,#138,#87)); 252 | #261= IFCFACEOUTERBOUND(#260,.T.); 253 | #262= IFCFACE((#261)); 254 | #263= IFCPOLYLOOP((#96,#95,#215)); 255 | #264= IFCFACEOUTERBOUND(#263,.T.); 256 | #265= IFCFACE((#264)); 257 | #266= IFCPOLYLOOP((#182,#181,#129)); 258 | #267= IFCFACEOUTERBOUND(#266,.T.); 259 | #268= IFCFACE((#267)); 260 | #269= IFCPOLYLOOP((#55,#54,#171)); 261 | #270= IFCFACEOUTERBOUND(#269,.T.); 262 | #271= IFCFACE((#270)); 263 | #272= IFCPOLYLOOP((#140,#139,#86)); 264 | #273= IFCFACEOUTERBOUND(#272,.T.); 265 | #274= IFCFACE((#273)); 266 | #275= IFCPOLYLOOP((#97,#96,#214)); 267 | #276= IFCFACEOUTERBOUND(#275,.T.); 268 | #277= IFCFACE((#276)); 269 | #278= IFCPOLYLOOP((#183,#182,#128)); 270 | #279= IFCFACEOUTERBOUND(#278,.T.); 271 | #280= IFCFACE((#279)); 272 | #281= IFCPOLYLOOP((#56,#55,#170)); 273 | #282= IFCFACEOUTERBOUND(#281,.T.); 274 | #283= IFCFACE((#282)); 275 | #284= IFCPOLYLOOP((#141,#140,#85)); 276 | #285= IFCFACEOUTERBOUND(#284,.T.); 277 | #286= IFCFACE((#285)); 278 | #287= IFCPOLYLOOP((#98,#97,#213)); 279 | #288= IFCFACEOUTERBOUND(#287,.T.); 280 | #289= IFCFACE((#288)); 281 | #290= IFCPOLYLOOP((#184,#183,#127)); 282 | #291= IFCFACEOUTERBOUND(#290,.T.); 283 | #292= IFCFACE((#291)); 284 | #293= IFCPOLYLOOP((#57,#56,#169)); 285 | #294= IFCFACEOUTERBOUND(#293,.T.); 286 | #295= IFCFACE((#294)); 287 | #296= IFCPOLYLOOP((#142,#141,#84)); 288 | #297= IFCFACEOUTERBOUND(#296,.T.); 289 | #298= IFCFACE((#297)); 290 | #299= IFCPOLYLOOP((#99,#98,#212)); 291 | #300= IFCFACEOUTERBOUND(#299,.T.); 292 | #301= IFCFACE((#300)); 293 | #302= IFCPOLYLOOP((#185,#184,#126)); 294 | #303= IFCFACEOUTERBOUND(#302,.T.); 295 | #304= IFCFACE((#303)); 296 | #305= IFCPOLYLOOP((#58,#57,#168)); 297 | #306= IFCFACEOUTERBOUND(#305,.T.); 298 | #307= IFCFACE((#306)); 299 | #308= IFCPOLYLOOP((#143,#142,#83)); 300 | #309= IFCFACEOUTERBOUND(#308,.T.); 301 | #310= IFCFACE((#309)); 302 | #311= IFCPOLYLOOP((#100,#99,#211)); 303 | #312= IFCFACEOUTERBOUND(#311,.T.); 304 | #313= IFCFACE((#312)); 305 | #314= IFCPOLYLOOP((#186,#185,#125)); 306 | #315= IFCFACEOUTERBOUND(#314,.T.); 307 | #316= IFCFACE((#315)); 308 | #317= IFCPOLYLOOP((#59,#58,#167)); 309 | #318= IFCFACEOUTERBOUND(#317,.T.); 310 | #319= IFCFACE((#318)); 311 | #320= IFCPOLYLOOP((#144,#143,#82)); 312 | #321= IFCFACEOUTERBOUND(#320,.T.); 313 | #322= IFCFACE((#321)); 314 | #323= IFCPOLYLOOP((#101,#100,#210)); 315 | #324= IFCFACEOUTERBOUND(#323,.T.); 316 | #325= IFCFACE((#324)); 317 | #326= IFCPOLYLOOP((#187,#186,#124)); 318 | #327= IFCFACEOUTERBOUND(#326,.T.); 319 | #328= IFCFACE((#327)); 320 | #329= IFCPOLYLOOP((#60,#59,#166)); 321 | #330= IFCFACEOUTERBOUND(#329,.T.); 322 | #331= IFCFACE((#330)); 323 | #332= IFCPOLYLOOP((#145,#144,#81)); 324 | #333= IFCFACEOUTERBOUND(#332,.T.); 325 | #334= IFCFACE((#333)); 326 | #335= IFCPOLYLOOP((#102,#101,#209)); 327 | #336= IFCFACEOUTERBOUND(#335,.T.); 328 | #337= IFCFACE((#336)); 329 | #338= IFCPOLYLOOP((#188,#187,#123)); 330 | #339= IFCFACEOUTERBOUND(#338,.T.); 331 | #340= IFCFACE((#339)); 332 | #341= IFCPOLYLOOP((#61,#60,#165)); 333 | #342= IFCFACEOUTERBOUND(#341,.T.); 334 | #343= IFCFACE((#342)); 335 | #344= IFCPOLYLOOP((#146,#145,#80)); 336 | #345= IFCFACEOUTERBOUND(#344,.T.); 337 | #346= IFCFACE((#345)); 338 | #347= IFCPOLYLOOP((#103,#102,#208)); 339 | #348= IFCFACEOUTERBOUND(#347,.T.); 340 | #349= IFCFACE((#348)); 341 | #350= IFCPOLYLOOP((#189,#188,#122)); 342 | #351= IFCFACEOUTERBOUND(#350,.T.); 343 | #352= IFCFACE((#351)); 344 | #353= IFCPOLYLOOP((#62,#61,#164)); 345 | #354= IFCFACEOUTERBOUND(#353,.T.); 346 | #355= IFCFACE((#354)); 347 | #356= IFCPOLYLOOP((#147,#146,#79)); 348 | #357= IFCFACEOUTERBOUND(#356,.T.); 349 | #358= IFCFACE((#357)); 350 | #359= IFCPOLYLOOP((#104,#103,#207)); 351 | #360= IFCFACEOUTERBOUND(#359,.T.); 352 | #361= IFCFACE((#360)); 353 | #362= IFCPOLYLOOP((#190,#189,#121)); 354 | #363= IFCFACEOUTERBOUND(#362,.T.); 355 | #364= IFCFACE((#363)); 356 | #365= IFCPOLYLOOP((#63,#62,#163)); 357 | #366= IFCFACEOUTERBOUND(#365,.T.); 358 | #367= IFCFACE((#366)); 359 | #368= IFCPOLYLOOP((#148,#147,#78)); 360 | #369= IFCFACEOUTERBOUND(#368,.T.); 361 | #370= IFCFACE((#369)); 362 | #371= IFCPOLYLOOP((#105,#104,#206)); 363 | #372= IFCFACEOUTERBOUND(#371,.T.); 364 | #373= IFCFACE((#372)); 365 | #374= IFCPOLYLOOP((#191,#190,#120)); 366 | #375= IFCFACEOUTERBOUND(#374,.T.); 367 | #376= IFCFACE((#375)); 368 | #377= IFCPOLYLOOP((#64,#63,#162)); 369 | #378= IFCFACEOUTERBOUND(#377,.T.); 370 | #379= IFCFACE((#378)); 371 | #380= IFCPOLYLOOP((#149,#148,#77)); 372 | #381= IFCFACEOUTERBOUND(#380,.T.); 373 | #382= IFCFACE((#381)); 374 | #383= IFCPOLYLOOP((#106,#105,#205)); 375 | #384= IFCFACEOUTERBOUND(#383,.T.); 376 | #385= IFCFACE((#384)); 377 | #386= IFCPOLYLOOP((#192,#191,#119)); 378 | #387= IFCFACEOUTERBOUND(#386,.T.); 379 | #388= IFCFACE((#387)); 380 | #389= IFCPOLYLOOP((#65,#64,#161)); 381 | #390= IFCFACEOUTERBOUND(#389,.T.); 382 | #391= IFCFACE((#390)); 383 | #392= IFCPOLYLOOP((#150,#149,#76)); 384 | #393= IFCFACEOUTERBOUND(#392,.T.); 385 | #394= IFCFACE((#393)); 386 | #395= IFCPOLYLOOP((#107,#106,#204)); 387 | #396= IFCFACEOUTERBOUND(#395,.T.); 388 | #397= IFCFACE((#396)); 389 | #398= IFCPOLYLOOP((#193,#192,#118)); 390 | #399= IFCFACEOUTERBOUND(#398,.T.); 391 | #400= IFCFACE((#399)); 392 | #401= IFCPOLYLOOP((#66,#65,#160)); 393 | #402= IFCFACEOUTERBOUND(#401,.T.); 394 | #403= IFCFACE((#402)); 395 | #404= IFCPOLYLOOP((#151,#150,#75)); 396 | #405= IFCFACEOUTERBOUND(#404,.T.); 397 | #406= IFCFACE((#405)); 398 | #407= IFCPOLYLOOP((#108,#107,#203)); 399 | #408= IFCFACEOUTERBOUND(#407,.T.); 400 | #409= IFCFACE((#408)); 401 | #410= IFCPOLYLOOP((#194,#193,#117)); 402 | #411= IFCFACEOUTERBOUND(#410,.T.); 403 | #412= IFCFACE((#411)); 404 | #413= IFCPOLYLOOP((#67,#66,#159)); 405 | #414= IFCFACEOUTERBOUND(#413,.T.); 406 | #415= IFCFACE((#414)); 407 | #416= IFCPOLYLOOP((#152,#151,#74)); 408 | #417= IFCFACEOUTERBOUND(#416,.T.); 409 | #418= IFCFACE((#417)); 410 | #419= IFCPOLYLOOP((#109,#108,#202)); 411 | #420= IFCFACEOUTERBOUND(#419,.T.); 412 | #421= IFCFACE((#420)); 413 | #422= IFCPOLYLOOP((#195,#194,#116)); 414 | #423= IFCFACEOUTERBOUND(#422,.T.); 415 | #424= IFCFACE((#423)); 416 | #425= IFCPOLYLOOP((#68,#67,#158)); 417 | #426= IFCFACEOUTERBOUND(#425,.T.); 418 | #427= IFCFACE((#426)); 419 | #428= IFCPOLYLOOP((#153,#152,#73)); 420 | #429= IFCFACEOUTERBOUND(#428,.T.); 421 | #430= IFCFACE((#429)); 422 | #431= IFCPOLYLOOP((#110,#109,#201)); 423 | #432= IFCFACEOUTERBOUND(#431,.T.); 424 | #433= IFCFACE((#432)); 425 | #434= IFCPOLYLOOP((#196,#195,#115)); 426 | #435= IFCFACEOUTERBOUND(#434,.T.); 427 | #436= IFCFACE((#435)); 428 | #437= IFCPOLYLOOP((#69,#68,#157)); 429 | #438= IFCFACEOUTERBOUND(#437,.T.); 430 | #439= IFCFACE((#438)); 431 | #440= IFCPOLYLOOP((#154,#153,#72)); 432 | #441= IFCFACEOUTERBOUND(#440,.T.); 433 | #442= IFCFACE((#441)); 434 | #443= IFCPOLYLOOP((#111,#110,#200)); 435 | #444= IFCFACEOUTERBOUND(#443,.T.); 436 | #445= IFCFACE((#444)); 437 | #446= IFCPOLYLOOP((#197,#196,#114)); 438 | #447= IFCFACEOUTERBOUND(#446,.T.); 439 | #448= IFCFACE((#447)); 440 | #449= IFCPOLYLOOP((#70,#69,#156)); 441 | #450= IFCFACEOUTERBOUND(#449,.T.); 442 | #451= IFCFACE((#450)); 443 | #452= IFCPOLYLOOP((#155,#154,#71)); 444 | #453= IFCFACEOUTERBOUND(#452,.T.); 445 | #454= IFCFACE((#453)); 446 | #455= IFCPOLYLOOP((#112,#111,#199)); 447 | #456= IFCFACEOUTERBOUND(#455,.T.); 448 | #457= IFCFACE((#456)); 449 | #458= IFCPOLYLOOP((#198,#197,#113)); 450 | #459= IFCFACEOUTERBOUND(#458,.T.); 451 | #460= IFCFACE((#459)); 452 | #461= IFCPOLYLOOP((#71,#70,#155)); 453 | #462= IFCFACEOUTERBOUND(#461,.T.); 454 | #463= IFCFACE((#462)); 455 | #464= IFCPOLYLOOP((#156,#155,#70)); 456 | #465= IFCFACEOUTERBOUND(#464,.T.); 457 | #466= IFCFACE((#465)); 458 | #467= IFCPOLYLOOP((#113,#112,#198)); 459 | #468= IFCFACEOUTERBOUND(#467,.T.); 460 | #469= IFCFACE((#468)); 461 | #470= IFCPOLYLOOP((#199,#198,#112)); 462 | #471= IFCFACEOUTERBOUND(#470,.T.); 463 | #472= IFCFACE((#471)); 464 | #473= IFCPOLYLOOP((#72,#71,#154)); 465 | #474= IFCFACEOUTERBOUND(#473,.T.); 466 | #475= IFCFACE((#474)); 467 | #476= IFCPOLYLOOP((#157,#156,#69)); 468 | #477= IFCFACEOUTERBOUND(#476,.T.); 469 | #478= IFCFACE((#477)); 470 | #479= IFCPOLYLOOP((#114,#113,#197)); 471 | #480= IFCFACEOUTERBOUND(#479,.T.); 472 | #481= IFCFACE((#480)); 473 | #482= IFCPOLYLOOP((#200,#199,#111)); 474 | #483= IFCFACEOUTERBOUND(#482,.T.); 475 | #484= IFCFACE((#483)); 476 | #485= IFCPOLYLOOP((#73,#72,#153)); 477 | #486= IFCFACEOUTERBOUND(#485,.T.); 478 | #487= IFCFACE((#486)); 479 | #488= IFCPOLYLOOP((#158,#157,#68)); 480 | #489= IFCFACEOUTERBOUND(#488,.T.); 481 | #490= IFCFACE((#489)); 482 | #491= IFCPOLYLOOP((#115,#114,#196)); 483 | #492= IFCFACEOUTERBOUND(#491,.T.); 484 | #493= IFCFACE((#492)); 485 | #494= IFCPOLYLOOP((#201,#200,#110)); 486 | #495= IFCFACEOUTERBOUND(#494,.T.); 487 | #496= IFCFACE((#495)); 488 | #497= IFCPOLYLOOP((#74,#73,#152)); 489 | #498= IFCFACEOUTERBOUND(#497,.T.); 490 | #499= IFCFACE((#498)); 491 | #500= IFCPOLYLOOP((#159,#158,#67)); 492 | #501= IFCFACEOUTERBOUND(#500,.T.); 493 | #502= IFCFACE((#501)); 494 | #503= IFCPOLYLOOP((#116,#115,#195)); 495 | #504= IFCFACEOUTERBOUND(#503,.T.); 496 | #505= IFCFACE((#504)); 497 | #506= IFCPOLYLOOP((#202,#201,#109)); 498 | #507= IFCFACEOUTERBOUND(#506,.T.); 499 | #508= IFCFACE((#507)); 500 | #509= IFCPOLYLOOP((#75,#74,#151)); 501 | #510= IFCFACEOUTERBOUND(#509,.T.); 502 | #511= IFCFACE((#510)); 503 | #512= IFCPOLYLOOP((#160,#159,#66)); 504 | #513= IFCFACEOUTERBOUND(#512,.T.); 505 | #514= IFCFACE((#513)); 506 | #515= IFCPOLYLOOP((#117,#116,#194)); 507 | #516= IFCFACEOUTERBOUND(#515,.T.); 508 | #517= IFCFACE((#516)); 509 | #518= IFCPOLYLOOP((#203,#202,#108)); 510 | #519= IFCFACEOUTERBOUND(#518,.T.); 511 | #520= IFCFACE((#519)); 512 | #521= IFCPOLYLOOP((#76,#75,#150)); 513 | #522= IFCFACEOUTERBOUND(#521,.T.); 514 | #523= IFCFACE((#522)); 515 | #524= IFCPOLYLOOP((#161,#160,#65)); 516 | #525= IFCFACEOUTERBOUND(#524,.T.); 517 | #526= IFCFACE((#525)); 518 | #527= IFCPOLYLOOP((#118,#117,#193)); 519 | #528= IFCFACEOUTERBOUND(#527,.T.); 520 | #529= IFCFACE((#528)); 521 | #530= IFCPOLYLOOP((#204,#203,#107)); 522 | #531= IFCFACEOUTERBOUND(#530,.T.); 523 | #532= IFCFACE((#531)); 524 | #533= IFCPOLYLOOP((#77,#76,#149)); 525 | #534= IFCFACEOUTERBOUND(#533,.T.); 526 | #535= IFCFACE((#534)); 527 | #536= IFCPOLYLOOP((#162,#161,#64)); 528 | #537= IFCFACEOUTERBOUND(#536,.T.); 529 | #538= IFCFACE((#537)); 530 | #539= IFCPOLYLOOP((#119,#118,#192)); 531 | #540= IFCFACEOUTERBOUND(#539,.T.); 532 | #541= IFCFACE((#540)); 533 | #542= IFCPOLYLOOP((#205,#204,#106)); 534 | #543= IFCFACEOUTERBOUND(#542,.T.); 535 | #544= IFCFACE((#543)); 536 | #545= IFCPOLYLOOP((#78,#77,#148)); 537 | #546= IFCFACEOUTERBOUND(#545,.T.); 538 | #547= IFCFACE((#546)); 539 | #548= IFCPOLYLOOP((#163,#162,#63)); 540 | #549= IFCFACEOUTERBOUND(#548,.T.); 541 | #550= IFCFACE((#549)); 542 | #551= IFCPOLYLOOP((#120,#119,#191)); 543 | #552= IFCFACEOUTERBOUND(#551,.T.); 544 | #553= IFCFACE((#552)); 545 | #554= IFCPOLYLOOP((#206,#205,#105)); 546 | #555= IFCFACEOUTERBOUND(#554,.T.); 547 | #556= IFCFACE((#555)); 548 | #557= IFCPOLYLOOP((#79,#78,#147)); 549 | #558= IFCFACEOUTERBOUND(#557,.T.); 550 | #559= IFCFACE((#558)); 551 | #560= IFCPOLYLOOP((#164,#163,#62)); 552 | #561= IFCFACEOUTERBOUND(#560,.T.); 553 | #562= IFCFACE((#561)); 554 | #563= IFCPOLYLOOP((#121,#120,#190)); 555 | #564= IFCFACEOUTERBOUND(#563,.T.); 556 | #565= IFCFACE((#564)); 557 | #566= IFCPOLYLOOP((#207,#206,#104)); 558 | #567= IFCFACEOUTERBOUND(#566,.T.); 559 | #568= IFCFACE((#567)); 560 | #569= IFCPOLYLOOP((#80,#79,#146)); 561 | #570= IFCFACEOUTERBOUND(#569,.T.); 562 | #571= IFCFACE((#570)); 563 | #572= IFCPOLYLOOP((#165,#164,#61)); 564 | #573= IFCFACEOUTERBOUND(#572,.T.); 565 | #574= IFCFACE((#573)); 566 | #575= IFCPOLYLOOP((#122,#121,#189)); 567 | #576= IFCFACEOUTERBOUND(#575,.T.); 568 | #577= IFCFACE((#576)); 569 | #578= IFCPOLYLOOP((#208,#207,#103)); 570 | #579= IFCFACEOUTERBOUND(#578,.T.); 571 | #580= IFCFACE((#579)); 572 | #581= IFCPOLYLOOP((#81,#80,#145)); 573 | #582= IFCFACEOUTERBOUND(#581,.T.); 574 | #583= IFCFACE((#582)); 575 | #584= IFCPOLYLOOP((#166,#165,#60)); 576 | #585= IFCFACEOUTERBOUND(#584,.T.); 577 | #586= IFCFACE((#585)); 578 | #587= IFCPOLYLOOP((#123,#122,#188)); 579 | #588= IFCFACEOUTERBOUND(#587,.T.); 580 | #589= IFCFACE((#588)); 581 | #590= IFCPOLYLOOP((#209,#208,#102)); 582 | #591= IFCFACEOUTERBOUND(#590,.T.); 583 | #592= IFCFACE((#591)); 584 | #593= IFCPOLYLOOP((#82,#81,#144)); 585 | #594= IFCFACEOUTERBOUND(#593,.T.); 586 | #595= IFCFACE((#594)); 587 | #596= IFCPOLYLOOP((#167,#166,#59)); 588 | #597= IFCFACEOUTERBOUND(#596,.T.); 589 | #598= IFCFACE((#597)); 590 | #599= IFCPOLYLOOP((#124,#123,#187)); 591 | #600= IFCFACEOUTERBOUND(#599,.T.); 592 | #601= IFCFACE((#600)); 593 | #602= IFCPOLYLOOP((#210,#209,#101)); 594 | #603= IFCFACEOUTERBOUND(#602,.T.); 595 | #604= IFCFACE((#603)); 596 | #605= IFCPOLYLOOP((#83,#82,#143)); 597 | #606= IFCFACEOUTERBOUND(#605,.T.); 598 | #607= IFCFACE((#606)); 599 | #608= IFCPOLYLOOP((#168,#167,#58)); 600 | #609= IFCFACEOUTERBOUND(#608,.T.); 601 | #610= IFCFACE((#609)); 602 | #611= IFCPOLYLOOP((#125,#124,#186)); 603 | #612= IFCFACEOUTERBOUND(#611,.T.); 604 | #613= IFCFACE((#612)); 605 | #614= IFCPOLYLOOP((#211,#210,#100)); 606 | #615= IFCFACEOUTERBOUND(#614,.T.); 607 | #616= IFCFACE((#615)); 608 | #617= IFCPOLYLOOP((#84,#83,#142)); 609 | #618= IFCFACEOUTERBOUND(#617,.T.); 610 | #619= IFCFACE((#618)); 611 | #620= IFCPOLYLOOP((#169,#168,#57)); 612 | #621= IFCFACEOUTERBOUND(#620,.T.); 613 | #622= IFCFACE((#621)); 614 | #623= IFCPOLYLOOP((#126,#125,#185)); 615 | #624= IFCFACEOUTERBOUND(#623,.T.); 616 | #625= IFCFACE((#624)); 617 | #626= IFCPOLYLOOP((#212,#211,#99)); 618 | #627= IFCFACEOUTERBOUND(#626,.T.); 619 | #628= IFCFACE((#627)); 620 | #629= IFCPOLYLOOP((#85,#84,#141)); 621 | #630= IFCFACEOUTERBOUND(#629,.T.); 622 | #631= IFCFACE((#630)); 623 | #632= IFCPOLYLOOP((#170,#169,#56)); 624 | #633= IFCFACEOUTERBOUND(#632,.T.); 625 | #634= IFCFACE((#633)); 626 | #635= IFCPOLYLOOP((#127,#126,#184)); 627 | #636= IFCFACEOUTERBOUND(#635,.T.); 628 | #637= IFCFACE((#636)); 629 | #638= IFCPOLYLOOP((#213,#212,#98)); 630 | #639= IFCFACEOUTERBOUND(#638,.T.); 631 | #640= IFCFACE((#639)); 632 | #641= IFCPOLYLOOP((#86,#85,#140)); 633 | #642= IFCFACEOUTERBOUND(#641,.T.); 634 | #643= IFCFACE((#642)); 635 | #644= IFCPOLYLOOP((#171,#170,#55)); 636 | #645= IFCFACEOUTERBOUND(#644,.T.); 637 | #646= IFCFACE((#645)); 638 | #647= IFCPOLYLOOP((#128,#127,#183)); 639 | #648= IFCFACEOUTERBOUND(#647,.T.); 640 | #649= IFCFACE((#648)); 641 | #650= IFCPOLYLOOP((#214,#213,#97)); 642 | #651= IFCFACEOUTERBOUND(#650,.T.); 643 | #652= IFCFACE((#651)); 644 | #653= IFCPOLYLOOP((#87,#86,#139)); 645 | #654= IFCFACEOUTERBOUND(#653,.T.); 646 | #655= IFCFACE((#654)); 647 | #656= IFCPOLYLOOP((#172,#171,#54)); 648 | #657= IFCFACEOUTERBOUND(#656,.T.); 649 | #658= IFCFACE((#657)); 650 | #659= IFCPOLYLOOP((#129,#128,#182)); 651 | #660= IFCFACEOUTERBOUND(#659,.T.); 652 | #661= IFCFACE((#660)); 653 | #662= IFCPOLYLOOP((#215,#214,#96)); 654 | #663= IFCFACEOUTERBOUND(#662,.T.); 655 | #664= IFCFACE((#663)); 656 | #665= IFCPOLYLOOP((#88,#87,#138)); 657 | #666= IFCFACEOUTERBOUND(#665,.T.); 658 | #667= IFCFACE((#666)); 659 | #668= IFCPOLYLOOP((#173,#172,#53)); 660 | #669= IFCFACEOUTERBOUND(#668,.T.); 661 | #670= IFCFACE((#669)); 662 | #671= IFCPOLYLOOP((#130,#129,#181)); 663 | #672= IFCFACEOUTERBOUND(#671,.T.); 664 | #673= IFCFACE((#672)); 665 | #674= IFCPOLYLOOP((#216,#215,#95)); 666 | #675= IFCFACEOUTERBOUND(#674,.T.); 667 | #676= IFCFACE((#675)); 668 | #677= IFCPOLYLOOP((#89,#88,#137)); 669 | #678= IFCFACEOUTERBOUND(#677,.T.); 670 | #679= IFCFACE((#678)); 671 | #680= IFCPOLYLOOP((#174,#173,#52)); 672 | #681= IFCFACEOUTERBOUND(#680,.T.); 673 | #682= IFCFACE((#681)); 674 | #683= IFCPOLYLOOP((#131,#130,#180)); 675 | #684= IFCFACEOUTERBOUND(#683,.T.); 676 | #685= IFCFACE((#684)); 677 | #686= IFCPOLYLOOP((#217,#216,#94)); 678 | #687= IFCFACEOUTERBOUND(#686,.T.); 679 | #688= IFCFACE((#687)); 680 | #689= IFCPOLYLOOP((#50,#89,#136)); 681 | #690= IFCFACEOUTERBOUND(#689,.T.); 682 | #691= IFCFACE((#690)); 683 | #692= IFCPOLYLOOP((#135,#174,#51)); 684 | #693= IFCFACEOUTERBOUND(#692,.T.); 685 | #694= IFCFACE((#693)); 686 | #695= IFCPOLYLOOP((#92,#131,#179)); 687 | #696= IFCFACEOUTERBOUND(#695,.T.); 688 | #697= IFCFACE((#696)); 689 | #698= IFCPOLYLOOP((#178,#217,#93)); 690 | #699= IFCFACEOUTERBOUND(#698,.T.); 691 | #700= IFCFACE((#699)); 692 | #701= IFCCLOSEDSHELL((#134,#177,#220,#223,#226,#229,#232,#235,#238,#241,#244,#247,#250,#253,#256,#259,#262,#265,#268,#271,#274,#277,#280,#283,#286,#289,#292,#295,#298,#301,#304,#307,#310,#313,#316,#319,#322,#325,#328,#331,#334,#337,#340,#343,#346,#349,#352,#355,#358,#361,#364,#367,#370,#373,#376,#379,#382,#385,#388,#391,#394,#397,#400,#403,#406,#409,#412,#415,#418,#421,#424,#427,#430,#433,#436,#439,#442,#445,#448,#451,#454,#457,#460,#463,#466,#469,#472,#475,#478,#481,#484,#487,#490,#493,#496,#499,#502,#505,#508,#511,#514,#517,#520,#523,#526,#529,#532,#535,#538,#541,#544,#547,#550,#553,#556,#559,#562,#565,#568,#571,#574,#577,#580,#583,#586,#589,#592,#595,#598,#601,#604,#607,#610,#613,#616,#619,#622,#625,#628,#631,#634,#637,#640,#643,#646,#649,#652,#655,#658,#661,#664,#667,#670,#673,#676,#679,#682,#685,#688,#691,#694,#697,#700)); 693 | #702= IFCFACETEDBREP(#701); 694 | #703= IFCREPRESENTATIONMAP(#16,#704); 695 | #704= IFCSHAPEREPRESENTATION(#32,'Body','SolidModel',(#702)); 696 | #705= IFCMATERIAL('Ceramic',$,$); 697 | #706= IFCRELASSOCIATESMATERIAL('0Pkhszwjv1qRMYyCFg9fjB',$,'MatAssoc','Material Associates',(#707),#705); 698 | #707= IFCSANITARYTERMINALTYPE('2Vk5O9OO94lfvLVH2WXKBZ',$,'Wash Hand Basin',$,$,$,(#703),$,$,.WASHHANDBASIN.); 699 | #708= IFCRELDEFINESBYTYPE('01OIK6g$5EVxvitdj$pQSU',$,'NameNotAssigned',$,(#714),#707); 700 | #709= IFCRELDECLARES('1Cjr05W9T0fx0M3_mdVqMd',$,$,$,#20,(#707)); 701 | #710= IFCCARTESIANTRANSFORMATIONOPERATOR3D($,$,#15,1.0,$); 702 | #711= IFCMAPPEDITEM(#703,#710); 703 | #712= IFCSHAPEREPRESENTATION(#32,'Body','MappedRepresentation',(#711)); 704 | #713= IFCPRODUCTDEFINITIONSHAPE($,$,(#712)); 705 | #714= IFCSANITARYTERMINAL('0dOOwKTsn8I8gwbP3LM1Yz',$,$,$,$,#715,#713,$,$); 706 | #715= IFCLOCALPLACEMENT(#12,#16); 707 | ENDSEC; 708 | 709 | END-ISO-10303-21; 710 | 711 | -------------------------------------------------------------------------------- /Examples/BasinTessellation.ifc: -------------------------------------------------------------------------------- 1 | ISO-10303-21; 2 | HEADER; 3 | FILE_DESCRIPTION(('ViewDefinition [ReferenceView_V1]'),'2;1'); 4 | FILE_NAME( 5 | /* name */ 'C:\\My Work\\Geometry Gym\\documents\\building smart\\github\\ifcscript\\examples\\BasinTessellation.ifc', 6 | /* time_stamp */ '2017-06-27T13:32:40', 7 | /* author */ ('jonm'), 8 | /* organization */ ('Geometry Gym'), 9 | /* preprocessor_version */ 'GeometryGymIFC v0.0.15.0 by Geometry Gym Pty Ltd built 2017-06-27T02:48:24', 10 | /* originating_system */ 'IFCExamples v0.0.1.0', 11 | /* authorization */ 'None'); 12 | 13 | FILE_SCHEMA (('IFC4')); 14 | ENDSEC; 15 | 16 | DATA; 17 | #10= IFCCARTESIANPOINT((0.0,0.0,0.0)); 18 | #11= IFCAXIS2PLACEMENT3D(#10,$,$); 19 | #12= IFCLOCALPLACEMENT($,#11); 20 | /* defines the default building (as required as the minimum spatial element) */ 21 | #13= IFCBUILDING('39t4Pu3nTC4ekXYRIHJB9W',$,'IfcBuilding',$,$,#12,$,$,$,$,$,#18); 22 | #14= IFCRELCONTAINEDINSPATIALSTRUCTURE('3Sa3dTJGn0H8TQIGiuGQd5',$,'Building','Building Container for Elements',(#63),#13); 23 | #15= IFCCARTESIANPOINT((0.0,0.0,0.0)); 24 | #16= IFCAXIS2PLACEMENT3D(#15,$,$); 25 | #18= IFCPOSTALADDRESS($,$,$,$,('Unknown'),$,'Unknown',$,'Unknown','Unknown'); 26 | /* general entities required for all IFC sets, defining the context for the exchange */ 27 | #20= IFCPROJECT('0$WU4A9R19$vKWO$AdOnKA',$,'IfcProject',$,$,$,$,(#28),#21); 28 | #21= IFCUNITASSIGNMENT((#22,#23,#24,#25,#26)); 29 | #22= IFCSIUNIT(*,.LENGTHUNIT.,.MILLI.,.METRE.); 30 | #23= IFCSIUNIT(*,.AREAUNIT.,$,.SQUARE_METRE.); 31 | #24= IFCSIUNIT(*,.VOLUMEUNIT.,$,.CUBIC_METRE.); 32 | #25= IFCSIUNIT(*,.PLANEANGLEUNIT.,$,.RADIAN.); 33 | #26= IFCSIUNIT(*,.TIMEUNIT.,$,.SECOND.); 34 | #27= IFCRELAGGREGATES('091a6ewbvCMQ2Vyiqspa7a',$,'Project Container','Project Container for Buildings',#20,(#13)); 35 | #28= IFCGEOMETRICREPRESENTATIONCONTEXT($,'Model',3,0.0001,#30,#31); 36 | #29= IFCCARTESIANPOINT((0.0,0.0,0.0)); 37 | #30= IFCAXIS2PLACEMENT3D(#29,$,$); 38 | #31= IFCDIRECTION((0.0,1.0)); 39 | #32= IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Body','Model',*,*,*,*,#28,$,.MODEL_VIEW.,$); 40 | /* Example data for BasinTessellation */ 41 | #50= IFCCARTESIANPOINTLIST3D(((-300.0,150.0,0.0),(-260.01258,202.77198,0.0),(-200.8977,235.42733,0.0),(-135.65317,254.96052,0.0),(-68.35128,265.48506,0.0),(2.28873,268.83953,0.0),(72.81782,265.02384,0.0),(139.78691,254.03806,0.0),(201.17491,235.31703,0.0),(259.22094,203.38703,0.0),(300.0,150.0,0.0),(301.12175,84.86615,0.0),(274.72759,21.43367,0.0),(235.60592,-32.72383,0.0),(186.08864,-80.93969,0.0),(130.13626,-119.01659,0.0),(67.08498,-144.52327,0.0),(1.47722,-153.49864,0.0),(-64.39214,-145.23438,0.0),(-128.935,-119.66801,0.0),(-185.4365,-81.47447,0.0),(-235.75161,-32.5558,0.0),(-275.43962,22.66048,0.0),(-301.2465,85.40022,0.0),(0.0,253.09927,0.0),(-65.77799,249.95238,0.0),(-128.50869,240.51169,0.0),(-189.98327,222.99814,0.0),(-246.84023,193.33097,0.0),(-286.93375,143.11636,0.0),(-288.33856,84.23189,0.0),(-263.38834,25.17893,0.0),(-224.98691,-26.38256,0.0),(-176.64211,-71.66755,0.0),(-122.55063,-106.84646,0.0),(-61.39103,-130.15595,0.0),(1.00923,-137.75695,0.0),(63.20214,-129.69757,0.0),(123.1384,-106.54098,0.0),(176.95573,-71.42018,0.0),(224.65008,-26.75668,0.0),(262.38778,23.51644,0.0),(288.07091,83.10394,0.0),(286.93375,143.11636,0.0),(248.34464,192.21288,0.0),(191.62209,222.37628,0.0),(129.65999,240.26953,0.0),(64.74206,250.0522,0.0),(-157.15492,175.80861,-94.0),(-136.20752,207.77281,-94.0),(-105.2402,227.55228,-94.0),(-71.06188,239.38361,-94.0),(-35.8058,245.75838,-94.0),(1.19895,247.79017,-94.0),(38.14559,245.47902,-94.0),(73.22734,238.82488,-94.0),(105.38541,227.48547,-94.0),(135.79281,208.14534,-94.0),(157.15492,175.80861,-94.0),(157.74255,136.3568,-94.0),(143.91597,97.9355,-94.0),(123.4221,65.13209,-94.0),(97.48248,35.92756,-94.0),(68.17184,12.86423,-94.0),(35.14245,-2.58527,-94.0),(0.77384,-8.02168,-94.0),(-33.7318,-3.01598,-94.0),(-67.54256,12.46966,-94.0),(-97.14086,35.60364,-94.0),(-123.49841,65.23386,-94.0),(-144.28897,98.67858,-94.0),(-157.80791,136.68028,-94.0),(-300.0,150.0,0.0),(-228.57745,162.90431,-47.0),(-157.15492,175.80861,-94.0),(-260.01258,202.77198,0.0),(-136.20752,207.77281,-94.0),(-200.8977,235.42733,0.0),(-105.2402,227.55228,-94.0),(-135.65317,254.96052,0.0),(-71.06188,239.38361,-94.0),(-68.35128,265.48506,0.0),(-35.8058,245.75838,-94.0),(2.28873,268.83953,0.0),(1.19895,247.79017,-94.0),(72.81782,265.02384,0.0),(38.14559,245.47902,-94.0),(139.78691,254.03806,0.0),(73.22734,238.82488,-94.0),(201.17491,235.31703,0.0),(105.38541,227.48547,-94.0),(259.22094,203.38703,0.0),(135.79281,208.14534,-94.0),(300.0,150.0,0.0),(157.15492,175.80861,-94.0),(301.12175,84.86615,0.0),(157.74255,136.3568,-94.0),(274.72759,21.43367,0.0),(143.91597,97.9355,-94.0),(235.60592,-32.72383,0.0),(123.4221,65.13209,-94.0),(186.08864,-80.93969,0.0),(97.48248,35.92756,-94.0),(130.13626,-119.01659,0.0),(68.17184,12.86423,-94.0),(67.08498,-144.52327,0.0),(35.14245,-2.58527,-94.0),(1.47722,-153.49864,0.0),(0.77384,-8.02168,-94.0),(-64.39214,-145.23438,0.0),(-33.7318,-3.01598,-94.0),(-128.935,-119.66801,0.0),(-67.54256,12.46966,-94.0),(-185.4365,-81.47447,0.0),(-97.14086,35.60364,-94.0),(-235.75161,-32.5558,0.0),(-123.49841,65.23386,-94.0),(-275.43962,22.66048,0.0),(-144.28897,98.67858,-94.0),(-301.2465,85.40022,0.0),(-157.80791,136.68028,-94.0),(-300.0,150.0,0.0),(-228.57745,162.90431,-47.0),(-157.15492,175.80861,-94.0),(-103.35752,247.17206,-47.0),(-153.06895,231.48981,-47.0),(-52.07854,255.62172,-47.0),(1.74384,258.31484,-47.0),(55.48171,255.25144,-47.0),(106.50712,246.43147,-47.0),(197.50688,205.76619,-47.0),(153.28016,231.40125,-47.0),(228.57745,162.90431,-47.0),(229.43214,110.61147,-47.0),(209.32178,59.68459,-47.0),(179.51402,16.20413,-47.0),(141.78556,-22.50606,-47.0),(51.11372,-73.55427,-47.0),(99.15405,-53.07618,-47.0),(1.12553,-80.76016,-47.0),(-49.06197,-74.12518,-47.0),(-98.23878,-53.59918,-47.0),(-141.28869,-22.93542,-47.0),(-209.8643,60.66952,-47.0),(-179.62502,16.33903,-47.0),(-229.5272,111.04025,-47.0),(0.0,247.79242,-84.0),(35.45952,245.79812,-84.0),(71.01537,239.39536,-84.0),(104.95229,227.68423,-84.0),(136.01948,207.94228,-84.0),(157.15492,175.80861,-84.0),(157.77775,136.53048,-84.0),(143.71098,97.53047,-84.0),(123.04187,64.62672,-84.0),(96.91946,35.39445,-84.0),(67.44346,12.4079,-84.0),(34.6161,-2.7481,-84.0),(0.55276,-8.02296,-84.0),(-33.62415,-3.04811,-84.0),(-67.12154,12.20795,-84.0),(-96.74769,35.23256,-84.0),(-123.22635,64.87157,-84.0),(-144.259,98.61857,-84.0),(-157.92434,137.26873,-84.0),(-157.15492,175.80861,-84.0),(-135.19552,208.67408,-84.0),(-104.0547,228.09123,-84.0),(-70.3848,239.55386,-84.0),(-36.02691,245.73278,-84.0),(0.0,247.79242,-84.0),(0.0,253.09927,0.0),(64.74206,250.0522,0.0),(129.65999,240.26953,0.0),(191.62209,222.37628,0.0),(248.34464,192.21288,0.0),(286.93375,143.11636,0.0),(288.07091,83.10394,0.0),(262.38778,23.51644,0.0),(224.65008,-26.75668,0.0),(176.95573,-71.42018,0.0),(123.1384,-106.54098,0.0),(63.20214,-129.69757,0.0),(1.00923,-137.75695,0.0),(-61.39103,-130.15595,0.0),(-122.55063,-106.84646,0.0),(-176.64211,-71.66755,0.0),(-224.98691,-26.38256,0.0),(-263.38834,25.17893,0.0),(-288.33856,84.23189,0.0),(-286.93375,143.11636,0.0),(-246.84023,193.33097,0.0),(-189.98327,222.99814,0.0),(-128.50869,240.51169,0.0),(-65.77799,249.95238,0.0),(0.0,253.09927,0.0),(0.0,247.79242,-84.0),(35.45952,245.79812,-84.0),(71.01537,239.39536,-84.0),(104.95229,227.68423,-84.0),(136.01948,207.94228,-84.0),(157.15492,175.80861,-84.0),(157.77775,136.53048,-84.0),(143.71098,97.53047,-84.0),(123.04187,64.62672,-84.0),(96.91946,35.39445,-84.0),(67.44346,12.4079,-84.0),(34.6161,-2.7481,-84.0),(0.55276,-8.02296,-84.0),(-33.62415,-3.04811,-84.0),(-67.12154,12.20795,-84.0),(-96.74769,35.23256,-84.0),(-123.22635,64.87157,-84.0),(-144.259,98.61857,-84.0),(-157.92434,137.26873,-84.0),(-157.15492,175.80861,-84.0),(-135.19552,208.67408,-84.0),(-104.0547,228.09123,-84.0),(-70.3848,239.55386,-84.0),(-36.02691,245.73278,-84.0))); 42 | #51= IFCTRIANGULATEDFACESET(#50,$,.T.,((28,2,29),(1,29,2),(30,1,24),(29,1,30),(24,31,30),(3,2,28),(5,4,27),(6,5,25),(25,5,26),(4,28,27),(5,27,26),(3,28,4),(23,32,31),(33,32,23),(24,23,31),(34,22,21),(23,22,33),(22,34,33),(21,20,35),(36,35,20),(34,21,35),(37,36,19),(20,19,36),(18,37,19),(7,6,48),(8,7,47),(7,48,47),(8,47,46),(46,9,8),(46,45,10),(11,10,45),(12,11,44),(45,44,11),(10,9,46),(12,44,43),(15,39,16),(40,39,15),(38,16,39),(18,17,37),(16,38,17),(17,38,37),(13,43,42),(12,43,13),(14,13,42),(15,14,40),(14,41,40),(42,41,14),(48,6,25),(50,72,49),(51,72,50),(71,72,52),(51,52,72),(53,71,52),(69,70,63),(71,54,70),(66,67,65),(67,68,65),(68,69,64),(71,53,54),(54,55,61),(55,56,61),(58,60,57),(60,56,57),(59,60,58),(65,68,64),(69,63,64),(62,63,70),(62,54,61),(61,56,60),(62,70,54),(74,73,76),(80,125,126),(126,76,78),(126,77,76),(76,77,74),(82,127,125),(127,82,84),(127,83,81),(125,81,79),(128,84,129),(88,130,86),(92,131,90),(90,132,88),(94,133,92),(96,134,94),(98,135,96),(128,85,83),(77,75,74),(77,126,79),(85,128,87),(87,129,89),(131,93,132),(134,97,133),(97,134,99),(133,95,131),(132,91,130),(135,98,136),(102,137,100),(106,138,104),(104,139,102),(137,103,136),(108,140,106),(138,107,139),(139,105,137),(99,135,101),(141,110,112),(114,143,142),(141,111,109),(110,141,140),(118,144,145),(120,146,144),(116,145,143),(122,123,146),(140,109,138),(111,141,142),(113,142,143),(145,117,115),(146,121,119),(123,124,121),(144,119,117),(148,173,172),(149,174,173),(151,176,175),(152,177,176),(150,175,174),(154,179,178),(155,180,179),(157,182,181),(158,183,182),(156,181,180),(153,178,177),(160,185,159),(161,186,160),(163,188,162),(164,189,163),(162,187,161),(166,191,165),(167,192,166),(169,194,168),(171,196,170),(170,195,169),(168,193,167),(165,190,164),(159,184,183),(217,216,215),(217,215,218),(220,219,214),(215,219,218),(197,220,214),(214,213,197),(219,215,214),(210,208,211),(213,212,205),(212,211,207),(197,213,205),(198,204,199),(200,199,203),(203,202,201),(200,203,201),(203,199,204),(209,208,210),(208,207,211),(206,212,207),(212,206,205),(197,205,204),(197,204,198),(80,126,78),(82,125,80),(127,84,128),(127,81,125),(125,79,126),(84,86,129),(130,129,86),(131,132,90),(132,130,88),(133,131,92),(134,133,94),(135,134,96),(128,83,127),(128,129,87),(129,130,89),(93,91,132),(97,95,133),(134,135,99),(95,93,131),(91,89,130),(98,100,136),(137,136,100),(138,139,104),(139,137,102),(103,101,136),(140,138,106),(107,105,139),(105,103,137),(135,136,101),(141,112,142),(114,142,112),(141,109,140),(110,140,108),(118,145,116),(120,144,118),(116,143,114),(122,146,120),(109,107,138),(111,142,113),(113,143,115),(145,115,143),(146,119,144),(123,121,146),(144,117,145),(148,172,147),(149,173,148),(151,175,150),(152,176,151),(150,174,149),(154,178,153),(155,179,154),(157,181,156),(158,182,157),(156,180,155),(153,177,152),(185,184,159),(186,185,160),(188,187,162),(189,188,163),(187,186,161),(191,190,165),(192,191,166),(194,193,168),(196,195,170),(195,194,169),(193,192,167),(190,189,164),(159,183,158)),$,$); 43 | #52= IFCREPRESENTATIONMAP(#16,#53); 44 | #53= IFCSHAPEREPRESENTATION(#32,'Body','Tessellation',(#51)); 45 | #54= IFCMATERIAL('Ceramic',$,$); 46 | #55= IFCRELASSOCIATESMATERIAL('0Pkhszwjv1qRMYyCFg9fjB',$,'MatAssoc','Material Associates',(#56),#54); 47 | #56= IFCSANITARYTERMINALTYPE('2Vk5O9OO94lfvLVH2WXKBZ',$,'Wash Hand Basin',$,$,$,(#52),$,$,.WASHHANDBASIN.); 48 | #57= IFCRELDEFINESBYTYPE('01OIK6g$5EVxvitdj$pQSU',$,'NameNotAssigned',$,(#63),#56); 49 | #58= IFCRELDECLARES('1Cjr05W9T0fx0M3_mdVqMd',$,$,$,#20,(#56)); 50 | #59= IFCCARTESIANTRANSFORMATIONOPERATOR3D($,$,#15,1.0,$); 51 | #60= IFCMAPPEDITEM(#52,#59); 52 | #61= IFCSHAPEREPRESENTATION(#32,'Body','MappedRepresentation',(#60)); 53 | #62= IFCPRODUCTDEFINITIONSHAPE($,$,(#61)); 54 | #63= IFCSANITARYTERMINAL('0dOOwKTsn8I8gwbP3LM1Yz',$,$,$,$,#64,#62,$,$); 55 | #64= IFCLOCALPLACEMENT(#12,#16); 56 | ENDSEC; 57 | 58 | END-ISO-10303-21; 59 | 60 | -------------------------------------------------------------------------------- /Examples/Bath.ifc: -------------------------------------------------------------------------------- 1 | ISO-10303-21; 2 | HEADER; 3 | FILE_DESCRIPTION(('ViewDefinition [DesignTransferView_V1]'),'2;1'); 4 | FILE_NAME( 5 | /* name */ 'C:\\My Work\\Geometry Gym\\documents\\building smart\\github\\ifcscript\\examples\\Bath.ifc', 6 | /* time_stamp */ '2017-06-28T23:09:52', 7 | /* author */ ('jonm'), 8 | /* organization */ ('Geometry Gym'), 9 | /* preprocessor_version */ 'GeometryGymIFC v0.0.15.0 by Geometry Gym Pty Ltd built 2017-06-28T13:09:05', 10 | /* originating_system */ 'IFCExamples v0.0.1.0', 11 | /* authorization */ 'None'); 12 | 13 | FILE_SCHEMA (('IFC4')); 14 | ENDSEC; 15 | 16 | DATA; 17 | #10= IFCCARTESIANPOINT((0.0,0.0,0.0)); 18 | #11= IFCAXIS2PLACEMENT3D(#10,$,$); 19 | #12= IFCLOCALPLACEMENT($,#11); 20 | /* defines the default building (as required as the minimum spatial element) */ 21 | #13= IFCBUILDING('39t4Pu3nTC4ekXYRIHJB9W',$,'IfcBuilding',$,$,#12,$,$,$,$,$,#18); 22 | #14= IFCRELCONTAINEDINSPATIALSTRUCTURE('3Sa3dTJGn0H8TQIGiuGQd5',$,'Building','Building Container for Elements',(#70),#13); 23 | #15= IFCCARTESIANPOINT((0.0,0.0,0.0)); 24 | #16= IFCAXIS2PLACEMENT3D(#15,$,$); 25 | #18= IFCPOSTALADDRESS($,$,$,$,('Unknown'),$,'Unknown',$,'Unknown','Unknown'); 26 | /* general entities required for all IFC sets, defining the context for the exchange */ 27 | #20= IFCPROJECT('0$WU4A9R19$vKWO$AdOnKA',$,'IfcProject',$,$,$,$,(#28),#21); 28 | #21= IFCUNITASSIGNMENT((#22,#23,#24,#25,#26)); 29 | #22= IFCSIUNIT(*,.LENGTHUNIT.,.MILLI.,.METRE.); 30 | #23= IFCSIUNIT(*,.AREAUNIT.,$,.SQUARE_METRE.); 31 | #24= IFCSIUNIT(*,.VOLUMEUNIT.,$,.CUBIC_METRE.); 32 | #25= IFCSIUNIT(*,.PLANEANGLEUNIT.,$,.RADIAN.); 33 | #26= IFCSIUNIT(*,.TIMEUNIT.,$,.SECOND.); 34 | #27= IFCRELAGGREGATES('091a6ewbvCMQ2Vyiqspa7a',$,'Project Container','Project Container for Buildings',#20,(#13)); 35 | #28= IFCGEOMETRICREPRESENTATIONCONTEXT($,'Model',3,0.0001,#30,#31); 36 | #29= IFCCARTESIANPOINT((0.0,0.0,0.0)); 37 | #30= IFCAXIS2PLACEMENT3D(#29,$,$); 38 | #31= IFCDIRECTION((0.0,1.0)); 39 | #32= IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Body','Model',*,*,*,*,#28,$,.MODEL_VIEW.,$); 40 | /* Example data for Bath */ 41 | #50= IFCCARTESIANPOINT((0.0,0.0,0.0)); 42 | #51= IFCAXIS2PLACEMENT3D(#50,$,$); 43 | #52= IFCBLOCK(#51,2000.0,800.0,800.0); 44 | #53= IFCROUNDEDRECTANGLEPROFILEDEF(.AREA.,'VoidProfile',$,1800.0,600.0,200.0); 45 | #54= IFCCARTESIANPOINT((1000.0,400.0,100.0)); 46 | #55= IFCAXIS2PLACEMENT3D(#54,$,$); 47 | #56= IFCDIRECTION((0.0,0.0,1.0)); 48 | #57= IFCEXTRUDEDAREASOLID(#53,#55,#56,700.0); 49 | #58= IFCBOOLEANRESULT(.DIFFERENCE.,#52,#57); 50 | #59= IFCCSGSOLID(#58); 51 | #60= IFCREPRESENTATIONMAP(#16,#61); 52 | #61= IFCSHAPEREPRESENTATION(#32,'Body','SolidModel',(#59)); 53 | #62= IFCMATERIAL('Ceramic',$,$); 54 | #63= IFCRELASSOCIATESMATERIAL('0Pkhszwjv1qRMYyCFg9fjB',$,'MatAssoc','Material Associates',(#64),#62); 55 | #64= IFCSANITARYTERMINALTYPE('1HarmwaPv3OeJSXpaoPKpg',$,'Bath',$,$,$,(#60),$,$,.BATH.); 56 | #65= IFCRELDEFINESBYTYPE('1lO$X3e3j9lfVMhNy4MzKB',$,'NameNotAssigned',$,(#70),#64); 57 | #66= IFCCARTESIANTRANSFORMATIONOPERATOR3D($,$,#15,1.0,$); 58 | #67= IFCMAPPEDITEM(#60,#66); 59 | #68= IFCSHAPEREPRESENTATION(#32,'Body','MappedRepresentation',(#67)); 60 | #69= IFCPRODUCTDEFINITIONSHAPE($,$,(#68)); 61 | #70= IFCSANITARYTERMINAL('3$$o7C03j0KQeLnoj018fc',$,$,$,$,#71,#69,$,$); 62 | #71= IFCLOCALPLACEMENT(#12,#16); 63 | #72= IFCRELDECLARES('1Cjr05W9T0fx0M3_mdVqMd',$,$,$,#20,(#64)); 64 | ENDSEC; 65 | 66 | END-ISO-10303-21; 67 | 68 | -------------------------------------------------------------------------------- /Examples/BeamExtruded.ifc: -------------------------------------------------------------------------------- 1 | ISO-10303-21; 2 | HEADER; 3 | FILE_DESCRIPTION(('ViewDefinition [ReferenceView_V1]'),'2;1'); 4 | FILE_NAME( 5 | /* name */ 'C:\\My Work\\Geometry Gym\\documents\\building smart\\github\\ifcscript\\examples\\BeamExtruded.ifc', 6 | /* time_stamp */ '2017-06-27T13:32:38', 7 | /* author */ ('jonm'), 8 | /* organization */ ('Geometry Gym'), 9 | /* preprocessor_version */ 'GeometryGymIFC v0.0.15.0 by Geometry Gym Pty Ltd built 2017-06-27T02:48:24', 10 | /* originating_system */ 'IFCExamples v0.0.1.0', 11 | /* authorization */ 'None'); 12 | 13 | FILE_SCHEMA (('IFC4')); 14 | ENDSEC; 15 | 16 | DATA; 17 | #10= IFCCARTESIANPOINT((0.0,0.0,0.0)); 18 | #11= IFCAXIS2PLACEMENT3D(#10,$,$); 19 | #12= IFCLOCALPLACEMENT($,#11); 20 | /* defines the default building (as required as the minimum spatial element) */ 21 | #13= IFCBUILDING('39t4Pu3nTC4ekXYRIHJB9W',$,'IfcBuilding',$,$,#12,$,$,$,$,$,#18); 22 | #14= IFCRELCONTAINEDINSPATIALSTRUCTURE('3Sa3dTJGn0H8TQIGiuGQd5',$,'Building','Building Container for Elements',(#61),#13); 23 | #15= IFCCARTESIANPOINT((0.0,0.0,0.0)); 24 | #16= IFCAXIS2PLACEMENT3D(#15,$,$); 25 | #18= IFCPOSTALADDRESS($,$,$,$,('Unknown'),$,'Unknown',$,'Unknown','Unknown'); 26 | /* general entities required for all IFC sets, defining the context for the exchange */ 27 | #20= IFCPROJECT('0$WU4A9R19$vKWO$AdOnKA',$,'IfcProject',$,$,$,$,(#28),#21); 28 | #21= IFCUNITASSIGNMENT((#22,#23,#24,#25,#26)); 29 | #22= IFCSIUNIT(*,.LENGTHUNIT.,.MILLI.,.METRE.); 30 | #23= IFCSIUNIT(*,.AREAUNIT.,$,.SQUARE_METRE.); 31 | #24= IFCSIUNIT(*,.VOLUMEUNIT.,$,.CUBIC_METRE.); 32 | #25= IFCSIUNIT(*,.PLANEANGLEUNIT.,$,.RADIAN.); 33 | #26= IFCSIUNIT(*,.TIMEUNIT.,$,.SECOND.); 34 | #27= IFCRELAGGREGATES('091a6ewbvCMQ2Vyiqspa7a',$,'Project Container','Project Container for Buildings',#20,(#13)); 35 | #28= IFCGEOMETRICREPRESENTATIONCONTEXT($,'Model',3,0.0001,#30,#31); 36 | #29= IFCCARTESIANPOINT((0.0,0.0,0.0)); 37 | #30= IFCAXIS2PLACEMENT3D(#29,$,$); 38 | #31= IFCDIRECTION((0.0,1.0)); 39 | #32= IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Body','Model',*,*,*,*,#28,$,.MODEL_VIEW.,$); 40 | /* Example data for BeamExtruded */ 41 | #50= IFCCARTESIANPOINTLIST2D(((2.8,-79.5),(2.8,79.5),(6.31472,87.98528),(14.8,91.5),(50.0,91.5),(50.0,100.0),(-50.0,100.0),(-50.0,91.5),(-14.8,91.5),(-6.31472,87.98528),(-2.8,79.5),(-2.8,-79.5),(-6.31472,-87.98528),(-14.8,-91.5),(-50.0,-91.5),(-50.0,-100.0),(50.0,-100.0),(50.0,-91.5),(14.8,-91.5),(6.31472,-87.98528))); 42 | #51= IFCINDEXEDPOLYCURVE(#50,(IFCLINEINDEX((1,2)),IFCARCINDEX((2,3,4)),IFCLINEINDEX((4,5)),IFCLINEINDEX((5,6)),IFCLINEINDEX((6,7)),IFCLINEINDEX((7,8)),IFCLINEINDEX((8,9)),IFCARCINDEX((9,10,11)),IFCLINEINDEX((11,12)),IFCARCINDEX((12,13,14)),IFCLINEINDEX((14,15)),IFCLINEINDEX((15,16)),IFCLINEINDEX((16,17)),IFCLINEINDEX((17,18)),IFCLINEINDEX((18,19)),IFCARCINDEX((19,20,1))),$); 43 | #52= IFCARBITRARYCLOSEDPROFILEDEF(.AREA.,'IPE200',#51); 44 | #53= IFCCARTESIANPOINT((0.0,0.0,0.0)); 45 | #54= IFCDIRECTION((0.0,1.0,0.0)); 46 | #55= IFCDIRECTION((1.0,0.0,0.0)); 47 | #56= IFCAXIS2PLACEMENT3D(#53,#54,#55); 48 | #57= IFCDIRECTION((0.0,0.0,1.0)); 49 | #58= IFCEXTRUDEDAREASOLID(#52,#56,#57,1000.0); 50 | #59= IFCSHAPEREPRESENTATION(#32,'Body','SweptSolid',(#58)); 51 | #60= IFCPRODUCTDEFINITIONSHAPE($,$,(#59)); 52 | #61= IFCBEAM('0EF5_zZRv0pQPddeofU3KT',$,'ExampleBeamName','ExampleBeamDescription',$,#62,#60,'Tag',$); 53 | #62= IFCLOCALPLACEMENT(#12,#16); 54 | ENDSEC; 55 | 56 | END-ISO-10303-21; 57 | 58 | -------------------------------------------------------------------------------- /Examples/BeamTessellated.ifc: -------------------------------------------------------------------------------- 1 | ISO-10303-21; 2 | HEADER; 3 | FILE_DESCRIPTION(('ViewDefinition [ReferenceView_V1]'),'2;1'); 4 | FILE_NAME( 5 | /* name */ 'C:\\My Work\\Geometry Gym\\documents\\building smart\\github\\ifcscript\\examples\\BeamTessellated.ifc', 6 | /* time_stamp */ '2017-06-27T13:32:38', 7 | /* author */ ('jonm'), 8 | /* organization */ ('Geometry Gym'), 9 | /* preprocessor_version */ 'GeometryGymIFC v0.0.15.0 by Geometry Gym Pty Ltd built 2017-06-27T02:48:24', 10 | /* originating_system */ 'IFCExamples v0.0.1.0', 11 | /* authorization */ 'None'); 12 | 13 | FILE_SCHEMA (('IFC4')); 14 | ENDSEC; 15 | 16 | DATA; 17 | #10= IFCCARTESIANPOINT((0.0,0.0,0.0)); 18 | #11= IFCAXIS2PLACEMENT3D(#10,$,$); 19 | #12= IFCLOCALPLACEMENT($,#11); 20 | /* defines the default building (as required as the minimum spatial element) */ 21 | #13= IFCBUILDING('39t4Pu3nTC4ekXYRIHJB9W',$,'IfcBuilding',$,$,#12,$,$,$,$,$,#18); 22 | #14= IFCRELCONTAINEDINSPATIALSTRUCTURE('3Sa3dTJGn0H8TQIGiuGQd5',$,'Building','Building Container for Elements',(#54),#13); 23 | #15= IFCCARTESIANPOINT((0.0,0.0,0.0)); 24 | #16= IFCAXIS2PLACEMENT3D(#15,$,$); 25 | #18= IFCPOSTALADDRESS($,$,$,$,('Unknown'),$,'Unknown',$,'Unknown','Unknown'); 26 | /* general entities required for all IFC sets, defining the context for the exchange */ 27 | #20= IFCPROJECT('0$WU4A9R19$vKWO$AdOnKA',$,'IfcProject',$,$,$,$,(#28),#21); 28 | #21= IFCUNITASSIGNMENT((#22,#23,#24,#25,#26)); 29 | #22= IFCSIUNIT(*,.LENGTHUNIT.,.MILLI.,.METRE.); 30 | #23= IFCSIUNIT(*,.AREAUNIT.,$,.SQUARE_METRE.); 31 | #24= IFCSIUNIT(*,.VOLUMEUNIT.,$,.CUBIC_METRE.); 32 | #25= IFCSIUNIT(*,.PLANEANGLEUNIT.,$,.RADIAN.); 33 | #26= IFCSIUNIT(*,.TIMEUNIT.,$,.SECOND.); 34 | #27= IFCRELAGGREGATES('091a6ewbvCMQ2Vyiqspa7a',$,'Project Container','Project Container for Buildings',#20,(#13)); 35 | #28= IFCGEOMETRICREPRESENTATIONCONTEXT($,'Model',3,0.0001,#30,#31); 36 | #29= IFCCARTESIANPOINT((0.0,0.0,0.0)); 37 | #30= IFCAXIS2PLACEMENT3D(#29,$,$); 38 | #31= IFCDIRECTION((0.0,1.0)); 39 | #32= IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Body','Model',*,*,*,*,#28,$,.MODEL_VIEW.,$); 40 | /* the geometric representation of the beam is provided as a triangulated face set */ 41 | /* the meshing depends on the creating software system */ 42 | /* Example data for BeamTessellated */ 43 | #50= IFCCARTESIANPOINTLIST3D(((1000.0,50.0,-91.5),(1000.0,14.8,-91.5),(1000.0,50.0,-100.0),(1000.0,-50.0,-100.0),(1000.0,-50.0,-91.5),(1000.0,-14.8,-91.5),(1000.0,-2.8,79.5),(1000.0,-2.8,-79.5),(1000.0,-50.0,91.5),(1000.0,-14.8,91.5),(1000.0,-50.0,100.0),(1000.0,50.0,100.0),(1000.0,50.0,91.5),(1000.0,14.8,91.5),(1000.0,2.8,-79.5),(1000.0,2.8,79.5),(0.0,2.8,79.5),(0.0,2.8,-79.5),(0.0,50.0,91.5),(0.0,14.8,91.5),(0.0,50.0,100.0),(0.0,-50.0,100.0),(0.0,-50.0,91.5),(0.0,-14.8,91.5),(0.0,-2.8,-79.5),(0.0,-2.8,79.5),(0.0,-50.0,-91.5),(0.0,-14.8,-91.5),(0.0,-50.0,-100.0),(0.0,50.0,-100.0),(0.0,50.0,-91.5),(0.0,14.8,-91.5),(0.0,14.8,-91.5),(0.0,2.8,-79.5),(1000.0,14.8,-91.5),(1000.0,2.8,-79.5),(500.0,2.8,-79.5),(500.0,14.8,-91.5),(0.0,2.8,-79.5),(0.0,2.8,79.5),(1000.0,2.8,-79.5),(1000.0,2.8,79.5),(500.0,2.8,-79.5),(500.0,2.8,79.5),(0.0,2.8,79.5),(0.0,14.8,91.5),(1000.0,2.8,79.5),(1000.0,14.8,91.5),(500.0,2.8,79.5),(500.0,14.8,91.5),(0.0,14.8,91.5),(0.0,50.0,91.5),(1000.0,14.8,91.5),(1000.0,50.0,91.5),(500.0,14.8,91.5),(500.0,50.0,91.5),(0.0,50.0,91.5),(0.0,50.0,100.0),(1000.0,50.0,91.5),(1000.0,50.0,100.0),(500.0,50.0,91.5),(500.0,50.0,100.0),(0.0,50.0,100.0),(0.0,-50.0,100.0),(1000.0,50.0,100.0),(1000.0,-50.0,100.0),(500.0,50.0,100.0),(500.0,-50.0,100.0),(0.0,-50.0,100.0),(0.0,-50.0,91.5),(1000.0,-50.0,100.0),(1000.0,-50.0,91.5),(500.0,-50.0,100.0),(500.0,-50.0,91.5),(0.0,-50.0,91.5),(0.0,-14.8,91.5),(1000.0,-50.0,91.5),(1000.0,-14.8,91.5),(500.0,-50.0,91.5),(500.0,-14.8,91.5),(0.0,-14.8,91.5),(0.0,-2.8,79.5),(1000.0,-14.8,91.5),(1000.0,-2.8,79.5),(500.0,-14.8,91.5),(500.0,-2.8,79.5),(0.0,-2.8,79.5),(0.0,-2.8,-79.5),(1000.0,-2.8,79.5),(1000.0,-2.8,-79.5),(500.0,-2.8,79.5),(500.0,-2.8,-79.5),(0.0,-2.8,-79.5),(0.0,-14.8,-91.5),(1000.0,-2.8,-79.5),(1000.0,-14.8,-91.5),(500.0,-2.8,-79.5),(500.0,-14.8,-91.5),(0.0,-14.8,-91.5),(0.0,-50.0,-91.5),(1000.0,-14.8,-91.5),(1000.0,-50.0,-91.5),(500.0,-14.8,-91.5),(500.0,-50.0,-91.5),(0.0,-50.0,-91.5),(0.0,-50.0,-100.0),(1000.0,-50.0,-91.5),(1000.0,-50.0,-100.0),(500.0,-50.0,-91.5),(500.0,-50.0,-100.0),(0.0,-50.0,-100.0),(0.0,50.0,-100.0),(1000.0,-50.0,-100.0),(1000.0,50.0,-100.0),(500.0,-50.0,-100.0),(500.0,50.0,-100.0),(0.0,50.0,-100.0),(0.0,50.0,-91.5),(1000.0,50.0,-100.0),(1000.0,50.0,-91.5),(500.0,50.0,-100.0),(500.0,50.0,-91.5),(0.0,50.0,-91.5),(0.0,14.8,-91.5),(1000.0,50.0,-91.5),(1000.0,14.8,-91.5),(500.0,50.0,-91.5),(500.0,14.8,-91.5))); 44 | #51= IFCTRIANGULATEDFACESET(#50,$,.T.,((6,5,4),(15,8,6),(6,4,3),(10,11,9),(16,10,7),(14,11,10),(7,8,16),(6,2,15),(2,3,1),(3,2,6),(10,16,14),(14,13,12),(11,14,12),(8,15,16),(24,23,22),(17,26,24),(22,21,20),(28,29,27),(32,28,25),(30,29,28),(18,25,26),(24,20,17),(20,21,19),(32,31,30),(28,32,30),(33,34,37),(36,35,38),(40,44,43),(41,43,44),(46,50,49),(47,49,50),(56,55,51),(55,56,54),(57,58,62),(60,59,61),(63,64,68),(66,65,67),(69,70,74),(72,71,73),(80,79,75),(79,80,78),(81,82,86),(84,83,85),(88,92,91),(89,91,92),(94,98,97),(95,97,98),(104,103,99),(103,104,102),(105,106,110),(108,107,109),(111,112,116),(114,113,115),(117,118,122),(120,119,121),(128,127,123),(127,128,126),(22,20,24),(32,25,18),(18,26,17),(33,37,38),(36,38,37),(40,43,39),(41,44,42),(46,49,45),(47,50,48),(56,51,52),(55,54,53),(57,62,61),(60,61,62),(63,68,67),(66,67,68),(69,74,73),(72,73,74),(80,75,76),(79,78,77),(81,86,85),(84,85,86),(88,91,87),(89,92,90),(94,97,93),(95,98,96),(104,99,100),(103,102,101),(105,110,109),(108,109,110),(111,116,115),(114,115,116),(117,122,121),(120,121,122),(128,123,124),(127,126,125)),$,$); 45 | #52= IFCSHAPEREPRESENTATION(#32,'Body','Tessellation',(#51)); 46 | #53= IFCPRODUCTDEFINITIONSHAPE($,$,(#52)); 47 | #54= IFCBEAM('0EF5_zZRv0pQPddeofU3KT',$,'ExampleBeamName','ExampleBeamDescription',$,#55,#53,'Tag',$); 48 | #55= IFCLOCALPLACEMENT(#12,#16); 49 | ENDSEC; 50 | 51 | END-ISO-10303-21; 52 | 53 | -------------------------------------------------------------------------------- /Examples/BeamUnitTestsVaryingCardinal.ifc: -------------------------------------------------------------------------------- 1 | ISO-10303-21; 2 | HEADER; 3 | FILE_DESCRIPTION(('ViewDefinition [DesignTransferView_V1]'),'2;1'); 4 | FILE_NAME( 5 | /* name */ 'C:\\My Work\\Geometry Gym\\documents\\building smart\\github\\ifcscript\\examples\\BeamUnitTestsVaryingCardinal.ifc', 6 | /* time_stamp */ '2017-06-27T13:32:39', 7 | /* author */ ('jonm'), 8 | /* organization */ ('Geometry Gym'), 9 | /* preprocessor_version */ 'GeometryGymIFC v0.0.15.0 by Geometry Gym Pty Ltd built 2017-06-27T02:48:24', 10 | /* originating_system */ 'IFCExamples v0.0.1.0', 11 | /* authorization */ 'None'); 12 | 13 | FILE_SCHEMA (('IFC4')); 14 | ENDSEC; 15 | 16 | DATA; 17 | #10= IFCCARTESIANPOINT((0.0,0.0,0.0)); 18 | #11= IFCAXIS2PLACEMENT3D(#10,$,$); 19 | #12= IFCLOCALPLACEMENT($,#11); 20 | /* defines the default building (as required as the minimum spatial element) */ 21 | #13= IFCBUILDING('39t4Pu3nTC4ekXYRIHJB9W',$,'IfcBuilding',$,$,#12,$,$,$,$,$,#18); 22 | #14= IFCRELCONTAINEDINSPATIALSTRUCTURE('3Sa3dTJGn0H8TQIGiuGQd5',$,'Building','Building Container for Elements',(#67,#83,#97,#111),#13); 23 | #15= IFCCARTESIANPOINT((0.0,0.0,0.0)); 24 | #16= IFCAXIS2PLACEMENT3D(#15,$,$); 25 | #18= IFCPOSTALADDRESS($,$,$,$,('Unknown'),$,'Unknown',$,'Unknown','Unknown'); 26 | /* general entities required for all IFC sets, defining the context for the exchange */ 27 | #20= IFCPROJECT('0$WU4A9R19$vKWO$AdOnKA',$,'IfcProject',$,$,$,$,(#28),#21); 28 | #21= IFCUNITASSIGNMENT((#22,#23,#24,#25,#26)); 29 | #22= IFCSIUNIT(*,.LENGTHUNIT.,.MILLI.,.METRE.); 30 | #23= IFCSIUNIT(*,.AREAUNIT.,$,.SQUARE_METRE.); 31 | #24= IFCSIUNIT(*,.VOLUMEUNIT.,$,.CUBIC_METRE.); 32 | #25= IFCSIUNIT(*,.PLANEANGLEUNIT.,$,.RADIAN.); 33 | #26= IFCSIUNIT(*,.TIMEUNIT.,$,.SECOND.); 34 | #27= IFCRELAGGREGATES('091a6ewbvCMQ2Vyiqspa7a',$,'Project Container','Project Container for Buildings',#20,(#13)); 35 | #28= IFCGEOMETRICREPRESENTATIONCONTEXT($,'Model',3,0.0001,#30,#31); 36 | #29= IFCCARTESIANPOINT((0.0,0.0,0.0)); 37 | #30= IFCAXIS2PLACEMENT3D(#29,$,$); 38 | #31= IFCDIRECTION((0.0,1.0)); 39 | #32= IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Body','Model',*,*,*,*,#28,$,.MODEL_VIEW.,$); 40 | /* Example data for BeamUnitTestsVaryingCardinal */ 41 | #50= IFCMATERIAL('S355JR','Steel',$); 42 | #52= IFCISHAPEPROFILEDEF(.AREA.,'IPE200',$,100.0,200.0,5.6,8.5,12.0,$,$); 43 | #53= IFCMATERIALPROFILE('IPE200',$,#50,#52,$,$); 44 | #55= IFCMATERIALPROFILESET('IPE200',$,(#53),$); 45 | #56= IFCRELASSOCIATESMATERIAL('0NkGSIHVT3SeAR6bnw7pSa',$,'MatAssoc','Material Associates',(#57),#55); 46 | #57= IFCBEAMTYPE('32b2OtzCP30umNyY5LsCfN',$,'IPE200',$,$,$,$,$,$,.JOIST.); 47 | #58= IFCRELDEFINESBYTYPE('3s_DqAVvb3LguudTShJHVo',$,'NameNotAssigned',$,(#67,#83,#97,#111),#57); 48 | #59= IFCRELDECLARES('1Cjr05W9T0fx0M3_mdVqMd',$,$,$,#20,(#57)); 49 | #60= IFCCARTESIANPOINT((0.0,0.0,0.0)); 50 | #61= IFCDIRECTION((0.0,1.0,0.0)); 51 | #62= IFCDIRECTION((-1.0,0.0,0.0)); 52 | #63= IFCAXIS2PLACEMENT3D(#60,#61,#62); 53 | #64= IFCMATERIALPROFILESETUSAGE(#55,8,$); 54 | #65= IFCRELASSOCIATESMATERIAL('2v53tpkKfC1QI$UVEwGxEy',$,'MatAssoc','Material Associates',(#67),#64); 55 | #66= IFCLOCALPLACEMENT(#12,#63); 56 | #67= IFCBEAM('2YX3YEaA13qOf$B1iBgAf6',$,'TopMid',$,$,#66,#77,$,$); 57 | #68= IFCCARTESIANPOINT((0.0,0.0,1000.0)); 58 | #69= IFCPOLYLINE((#15,#68)); 59 | #70= IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Axis','Model',*,*,*,*,#28,$,.MODEL_VIEW.,$); 60 | #71= IFCSHAPEREPRESENTATION(#70,'Axis','Curve3D',(#69)); 61 | #72= IFCCARTESIANPOINT((0.0,-100.0,0.0)); 62 | #73= IFCAXIS2PLACEMENT3D(#72,$,$); 63 | #74= IFCEXTRUDEDAREASOLID(#52,#73,#75,1000.0); 64 | #75= IFCDIRECTION((0.0,0.0,1.0)); 65 | #76= IFCSHAPEREPRESENTATION(#32,'Body','SweptSolid',(#74)); 66 | #77= IFCPRODUCTDEFINITIONSHAPE($,$,(#71,#76)); 67 | #78= IFCCARTESIANPOINT((0.0,0.0,0.0)); 68 | #79= IFCAXIS2PLACEMENT3D(#78,#61,#62); 69 | #80= IFCMATERIALPROFILESETUSAGE(#55,2,$); 70 | #81= IFCRELASSOCIATESMATERIAL('2GHGDnjC1BI8mr5FS1ysvq',$,'MatAssoc','Material Associates',(#83),#80); 71 | #82= IFCLOCALPLACEMENT(#12,#79); 72 | #83= IFCBEAM('39IDqhhC14BxCj_Ryk$esj',$,'BotMid',$,$,#82,#91,$,$); 73 | #84= IFCCARTESIANPOINT((0.0,0.0,1000.0)); 74 | #85= IFCPOLYLINE((#15,#84)); 75 | #86= IFCSHAPEREPRESENTATION(#70,'Axis','Curve3D',(#85)); 76 | #87= IFCCARTESIANPOINT((0.0,100.0,0.0)); 77 | #88= IFCAXIS2PLACEMENT3D(#87,$,$); 78 | #89= IFCEXTRUDEDAREASOLID(#52,#88,#75,1000.0); 79 | #90= IFCSHAPEREPRESENTATION(#32,'Body','SweptSolid',(#89)); 80 | #91= IFCPRODUCTDEFINITIONSHAPE($,$,(#86,#90)); 81 | #92= IFCCARTESIANPOINT((500.0,0.0,0.0)); 82 | #93= IFCAXIS2PLACEMENT3D(#92,#61,#62); 83 | #94= IFCMATERIALPROFILESETUSAGE(#55,1,$); 84 | #95= IFCRELASSOCIATESMATERIAL('1v094xksfDT9bOdSPNsjLB',$,'MatAssoc','Material Associates',(#97),#94); 85 | #96= IFCLOCALPLACEMENT(#12,#93); 86 | #97= IFCBEAM('17CqI$IjrDARuaYNcWcoRH',$,'BotLeft',$,$,#96,#105,$,$); 87 | #98= IFCCARTESIANPOINT((0.0,0.0,1000.0)); 88 | #99= IFCPOLYLINE((#15,#98)); 89 | #100= IFCSHAPEREPRESENTATION(#70,'Axis','Curve3D',(#99)); 90 | #101= IFCCARTESIANPOINT((50.0,100.0,0.0)); 91 | #102= IFCAXIS2PLACEMENT3D(#101,$,$); 92 | #103= IFCEXTRUDEDAREASOLID(#52,#102,#75,1000.0); 93 | #104= IFCSHAPEREPRESENTATION(#32,'Body','SweptSolid',(#103)); 94 | #105= IFCPRODUCTDEFINITIONSHAPE($,$,(#100,#104)); 95 | #106= IFCCARTESIANPOINT((500.0,0.0,0.0)); 96 | #107= IFCAXIS2PLACEMENT3D(#106,#61,#62); 97 | #108= IFCMATERIALPROFILESETUSAGE(#55,9,$); 98 | #109= IFCRELASSOCIATESMATERIAL('0ys4PwYgT5dAduf$ECulk$',$,'MatAssoc','Material Associates',(#111),#108); 99 | #110= IFCLOCALPLACEMENT(#12,#107); 100 | #111= IFCBEAM('3TOzuh11rACgRkioYYOjj5',$,'TopRight',$,$,#110,#119,$,$); 101 | #112= IFCCARTESIANPOINT((0.0,0.0,1000.0)); 102 | #113= IFCPOLYLINE((#15,#112)); 103 | #114= IFCSHAPEREPRESENTATION(#70,'Axis','Curve3D',(#113)); 104 | #115= IFCCARTESIANPOINT((-50.0,-100.0,0.0)); 105 | #116= IFCAXIS2PLACEMENT3D(#115,$,$); 106 | #117= IFCEXTRUDEDAREASOLID(#52,#116,#75,1000.0); 107 | #118= IFCSHAPEREPRESENTATION(#32,'Body','SweptSolid',(#117)); 108 | #119= IFCPRODUCTDEFINITIONSHAPE($,$,(#114,#118)); 109 | ENDSEC; 110 | 111 | END-ISO-10303-21; 112 | 113 | -------------------------------------------------------------------------------- /Examples/BeamUnitTestsVaryingPath.ifc: -------------------------------------------------------------------------------- 1 | ISO-10303-21; 2 | HEADER; 3 | FILE_DESCRIPTION(('ViewDefinition [DesignTransferView_V1]'),'2;1'); 4 | FILE_NAME( 5 | /* name */ 'C:\\My Work\\Geometry Gym\\documents\\building smart\\github\\ifcscript\\examples\\BeamUnitTestsVaryingPath.ifc', 6 | /* time_stamp */ '2017-06-27T13:32:39', 7 | /* author */ ('jonm'), 8 | /* organization */ ('Geometry Gym'), 9 | /* preprocessor_version */ 'GeometryGymIFC v0.0.15.0 by Geometry Gym Pty Ltd built 2017-06-27T02:48:24', 10 | /* originating_system */ 'IFCExamples v0.0.1.0', 11 | /* authorization */ 'None'); 12 | 13 | FILE_SCHEMA (('IFC4')); 14 | ENDSEC; 15 | 16 | DATA; 17 | #10= IFCCARTESIANPOINT((0.0,0.0,0.0)); 18 | #11= IFCAXIS2PLACEMENT3D(#10,$,$); 19 | #12= IFCLOCALPLACEMENT($,#11); 20 | /* defines the default building (as required as the minimum spatial element) */ 21 | #13= IFCBUILDING('39t4Pu3nTC4ekXYRIHJB9W',$,'IfcBuilding',$,$,#12,$,$,$,$,$,#18); 22 | #14= IFCRELCONTAINEDINSPATIALSTRUCTURE('3Sa3dTJGn0H8TQIGiuGQd5',$,'Building','Building Container for Elements',(#67,#83),#13); 23 | #15= IFCCARTESIANPOINT((0.0,0.0,0.0)); 24 | #16= IFCAXIS2PLACEMENT3D(#15,$,$); 25 | #18= IFCPOSTALADDRESS($,$,$,$,('Unknown'),$,'Unknown',$,'Unknown','Unknown'); 26 | /* general entities required for all IFC sets, defining the context for the exchange */ 27 | #20= IFCPROJECT('0$WU4A9R19$vKWO$AdOnKA',$,'IfcProject',$,$,$,$,(#28),#21); 28 | #21= IFCUNITASSIGNMENT((#22,#23,#24,#25,#26)); 29 | #22= IFCSIUNIT(*,.LENGTHUNIT.,.MILLI.,.METRE.); 30 | #23= IFCSIUNIT(*,.AREAUNIT.,$,.SQUARE_METRE.); 31 | #24= IFCSIUNIT(*,.VOLUMEUNIT.,$,.CUBIC_METRE.); 32 | #25= IFCSIUNIT(*,.PLANEANGLEUNIT.,$,.RADIAN.); 33 | #26= IFCSIUNIT(*,.TIMEUNIT.,$,.SECOND.); 34 | #27= IFCRELAGGREGATES('091a6ewbvCMQ2Vyiqspa7a',$,'Project Container','Project Container for Buildings',#20,(#13)); 35 | #28= IFCGEOMETRICREPRESENTATIONCONTEXT($,'Model',3,0.0001,#30,#31); 36 | #29= IFCCARTESIANPOINT((0.0,0.0,0.0)); 37 | #30= IFCAXIS2PLACEMENT3D(#29,$,$); 38 | #31= IFCDIRECTION((0.0,1.0)); 39 | #32= IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Body','Model',*,*,*,*,#28,$,.MODEL_VIEW.,$); 40 | /* Example data for BeamUnitTestsVaryingPath */ 41 | #50= IFCMATERIAL('S355JR','Steel',$); 42 | #52= IFCISHAPEPROFILEDEF(.AREA.,'IPE200',$,100.0,200.0,5.6,8.5,12.0,$,$); 43 | #53= IFCMATERIALPROFILE('IPE200',$,#50,#52,$,$); 44 | #55= IFCMATERIALPROFILESET('IPE200',$,(#53),$); 45 | #56= IFCRELASSOCIATESMATERIAL('0NkGSIHVT3SeAR6bnw7pSa',$,'MatAssoc','Material Associates',(#57),#55); 46 | #57= IFCBEAMTYPE('32b2OtzCP30umNyY5LsCfN',$,'IPE200',$,$,$,$,$,$,.JOIST.); 47 | #58= IFCRELDEFINESBYTYPE('3s_DqAVvb3LguudTShJHVo',$,'NameNotAssigned',$,(#67,#83),#57); 48 | #59= IFCRELDECLARES('1Cjr05W9T0fx0M3_mdVqMd',$,$,$,#20,(#57)); 49 | #60= IFCMATERIALPROFILESETUSAGE(#55,8,$); 50 | #61= IFCRELASSOCIATESMATERIAL('2uxxMWfA51AAznk5bQJylf',$,'MatAssoc','Material Associates',(#67,#83),#60); 51 | #62= IFCCARTESIANPOINT((0.0,0.0,0.0)); 52 | #63= IFCDIRECTION((0.0,1.0,0.0)); 53 | #64= IFCDIRECTION((-1.0,0.0,0.0)); 54 | #65= IFCAXIS2PLACEMENT3D(#62,#63,#64); 55 | #66= IFCLOCALPLACEMENT(#12,#65); 56 | #67= IFCBEAM('0a_qfeQLDA8e5qT$Do6J_t',$,'Extrusion',$,$,#66,#77,$,$); 57 | #68= IFCCARTESIANPOINT((0.0,0.0,1000.0)); 58 | #69= IFCPOLYLINE((#15,#68)); 59 | #70= IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Axis','Model',*,*,*,*,#28,$,.MODEL_VIEW.,$); 60 | #71= IFCSHAPEREPRESENTATION(#70,'Axis','Curve3D',(#69)); 61 | #72= IFCCARTESIANPOINT((0.0,-100.0,0.0)); 62 | #73= IFCAXIS2PLACEMENT3D(#72,$,$); 63 | #74= IFCEXTRUDEDAREASOLID(#52,#73,#75,1000.0); 64 | #75= IFCDIRECTION((0.0,0.0,1.0)); 65 | #76= IFCSHAPEREPRESENTATION(#32,'Body','SweptSolid',(#74)); 66 | #77= IFCPRODUCTDEFINITIONSHAPE($,$,(#71,#76)); 67 | #78= IFCCARTESIANPOINT((0.0,0.0,400.0)); 68 | #79= IFCDIRECTION((-0.38461538,0.92307692,0.0)); 69 | #80= IFCDIRECTION((-0.92307692,-0.38461538,0.0)); 70 | #81= IFCAXIS2PLACEMENT3D(#78,#79,#80); 71 | #82= IFCLOCALPLACEMENT(#12,#81); 72 | #83= IFCBEAM('1zqFh80l11VgfEm3ZWh6Xv',$,'Revolution',$,$,#82,#98,$,$); 73 | #84= IFCCARTESIANPOINT((-1300.0,0.0,0.0)); 74 | #85= IFCDIRECTION((0.0,-1.0,0.0)); 75 | #86= IFCDIRECTION((1.0,0.0,0.0)); 76 | #87= IFCAXIS2PLACEMENT3D(#84,#85,#86); 77 | #88= IFCCIRCLE(#87,1300.0); 78 | #89= IFCTRIMMEDCURVE(#88,(IFCPARAMETERVALUE(0.0)),(IFCPARAMETERVALUE(0.789582239399523)),.T.,.PARAMETER.); 79 | #90= IFCSHAPEREPRESENTATION(#70,'Axis','Curve3D',(#89)); 80 | #91= IFCCARTESIANPOINT((0.0,-100.0,0.0)); 81 | #92= IFCAXIS2PLACEMENT3D(#91,$,$); 82 | #93= IFCCARTESIANPOINT((-1300.0,100.0)); 83 | #94= IFCDIRECTION((0.0,-1.0)); 84 | #95= IFCAXIS1PLACEMENT(#93,#94); 85 | #96= IFCREVOLVEDAREASOLID(#52,#92,#95,0.789582239399523); 86 | #97= IFCSHAPEREPRESENTATION(#32,'Body','SweptSolid',(#96)); 87 | #98= IFCPRODUCTDEFINITIONSHAPE($,$,(#90,#97)); 88 | ENDSEC; 89 | 90 | END-ISO-10303-21; 91 | 92 | -------------------------------------------------------------------------------- /Examples/BeamUnitTestsVaryingProfile.ifc: -------------------------------------------------------------------------------- 1 | ISO-10303-21; 2 | HEADER; 3 | FILE_DESCRIPTION(('ViewDefinition [DesignTransferView_V1]'),'2;1'); 4 | FILE_NAME( 5 | /* name */ 'C:\\My Work\\Geometry Gym\\documents\\building smart\\github\\ifcscript\\examples\\BeamUnitTestsVaryingProfile.ifc', 6 | /* time_stamp */ '2017-06-27T13:32:39', 7 | /* author */ ('jonm'), 8 | /* organization */ ('Geometry Gym'), 9 | /* preprocessor_version */ 'GeometryGymIFC v0.0.15.0 by Geometry Gym Pty Ltd built 2017-06-27T02:48:24', 10 | /* originating_system */ 'IFCExamples v0.0.1.0', 11 | /* authorization */ 'None'); 12 | 13 | FILE_SCHEMA (('IFC4')); 14 | ENDSEC; 15 | 16 | DATA; 17 | #10= IFCCARTESIANPOINT((0.0,0.0,0.0)); 18 | #11= IFCAXIS2PLACEMENT3D(#10,$,$); 19 | #12= IFCLOCALPLACEMENT($,#11); 20 | /* defines the default building (as required as the minimum spatial element) */ 21 | #13= IFCBUILDING('39t4Pu3nTC4ekXYRIHJB9W',$,'IfcBuilding',$,$,#12,$,$,$,$,$,#18); 22 | #14= IFCRELCONTAINEDINSPATIALSTRUCTURE('3Sa3dTJGn0H8TQIGiuGQd5',$,'Building','Building Container for Elements',(#67,#312),#13); 23 | #15= IFCCARTESIANPOINT((0.0,0.0,0.0)); 24 | #16= IFCAXIS2PLACEMENT3D(#15,$,$); 25 | #18= IFCPOSTALADDRESS($,$,$,$,('Unknown'),$,'Unknown',$,'Unknown','Unknown'); 26 | /* general entities required for all IFC sets, defining the context for the exchange */ 27 | #20= IFCPROJECT('0$WU4A9R19$vKWO$AdOnKA',$,'IfcProject',$,$,$,$,(#28),#21); 28 | #21= IFCUNITASSIGNMENT((#22,#23,#24,#25,#26)); 29 | #22= IFCSIUNIT(*,.LENGTHUNIT.,.MILLI.,.METRE.); 30 | #23= IFCSIUNIT(*,.AREAUNIT.,$,.SQUARE_METRE.); 31 | #24= IFCSIUNIT(*,.VOLUMEUNIT.,$,.CUBIC_METRE.); 32 | #25= IFCSIUNIT(*,.PLANEANGLEUNIT.,$,.RADIAN.); 33 | #26= IFCSIUNIT(*,.TIMEUNIT.,$,.SECOND.); 34 | #27= IFCRELAGGREGATES('091a6ewbvCMQ2Vyiqspa7a',$,'Project Container','Project Container for Buildings',#20,(#13)); 35 | #28= IFCGEOMETRICREPRESENTATIONCONTEXT($,'Model',3,0.0001,#30,#31); 36 | #29= IFCCARTESIANPOINT((0.0,0.0,0.0)); 37 | #30= IFCAXIS2PLACEMENT3D(#29,$,$); 38 | #31= IFCDIRECTION((0.0,1.0)); 39 | #32= IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Body','Model',*,*,*,*,#28,$,.MODEL_VIEW.,$); 40 | /* Example data for BeamUnitTestsVaryingProfile */ 41 | #50= IFCMATERIAL('S355JR','Steel',$); 42 | #52= IFCISHAPEPROFILEDEF(.AREA.,'IPE200',$,100.0,200.0,5.6,8.5,12.0,$,$); 43 | #53= IFCMATERIALPROFILE('IPE200',$,#50,#52,$,$); 44 | #55= IFCMATERIALPROFILESET('IPE200',$,(#53),$); 45 | #56= IFCRELASSOCIATESMATERIAL('3tlx8qcefDouGWiGFgBV8d',$,'MatAssoc','Material Associates',(#57),#55); 46 | #57= IFCBEAMTYPE('32b2OtzCP30umNyY5LsCfN',$,'IPE200',$,$,$,$,$,$,.JOIST.); 47 | #58= IFCRELDEFINESBYTYPE('3s_DqAVvb3LguudTShJHVo',$,'NameNotAssigned',$,(#67),#57); 48 | #59= IFCRELDECLARES('1Cjr05W9T0fx0M3_mdVqMd',$,$,$,#20,(#57)); 49 | #60= IFCCARTESIANPOINT((0.0,0.0,0.0)); 50 | #61= IFCDIRECTION((0.0,1.0,0.0)); 51 | #62= IFCDIRECTION((-1.0,0.0,0.0)); 52 | #63= IFCAXIS2PLACEMENT3D(#60,#61,#62); 53 | #64= IFCMATERIALPROFILESETUSAGE(#55,5,$); 54 | #65= IFCRELASSOCIATESMATERIAL('2SL41bR1rCj99SIKuKXeFl',$,'MatAssoc','Material Associates',(#67),#64); 55 | #66= IFCLOCALPLACEMENT(#12,#63); 56 | #67= IFCBEAM('0uo2yx7G19uwCu9sIjn6DQ',$,'IPE200',$,$,#66,#75,$,$); 57 | #68= IFCCARTESIANPOINT((0.0,0.0,1000.0)); 58 | #69= IFCPOLYLINE((#15,#68)); 59 | #70= IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Axis','Model',*,*,*,*,#28,$,.MODEL_VIEW.,$); 60 | #71= IFCSHAPEREPRESENTATION(#70,'Axis','Curve3D',(#69)); 61 | #72= IFCEXTRUDEDAREASOLID(#52,$,#73,1000.0); 62 | #73= IFCDIRECTION((0.0,0.0,1.0)); 63 | #74= IFCSHAPEREPRESENTATION(#32,'Body','SweptSolid',(#72)); 64 | #75= IFCPRODUCTDEFINITIONSHAPE($,$,(#71,#74)); 65 | #300= IFCCIRCLEHOLLOWPROFILEDEF(.AREA.,'CHS219.1x6.3',$,109.55,6.3); 66 | #301= IFCMATERIALPROFILE('CHS219.1x6.3',$,#50,#300,$,$); 67 | #303= IFCMATERIALPROFILESET('CHS219.1x6.3',$,(#301),$); 68 | #304= IFCRELASSOCIATESMATERIAL('14nDe0n1bErgiI78N83Oxd',$,'MatAssoc','Material Associates',(#305),#303); 69 | #305= IFCBEAMTYPE('3l_OKNTJr4yBOR5rYl6b9w',$,'CHS219.1x6.3',$,$,$,$,$,$,.BEAM.); 70 | #306= IFCRELDEFINESBYTYPE('3LrutsCpn4DPF9Zt4YdIEU',$,'NameNotAssigned',$,(#312),#305); 71 | #307= IFCCARTESIANPOINT((500.0,0.0,0.0)); 72 | #308= IFCAXIS2PLACEMENT3D(#307,#61,#62); 73 | #309= IFCMATERIALPROFILESETUSAGE(#303,5,$); 74 | #310= IFCRELASSOCIATESMATERIAL('1Set5Cyu9BFOWznvoQe1ho',$,'MatAssoc','Material Associates',(#312),#309); 75 | #311= IFCLOCALPLACEMENT(#12,#308); 76 | #312= IFCBEAM('3_NFDdmqr7mxekvlvcgwa7',$,'CHS219.1x6.3',$,$,#311,#318,$,$); 77 | #313= IFCCARTESIANPOINT((0.0,0.0,1000.0)); 78 | #314= IFCPOLYLINE((#15,#313)); 79 | #315= IFCSHAPEREPRESENTATION(#70,'Axis','Curve3D',(#314)); 80 | #316= IFCEXTRUDEDAREASOLID(#300,$,#73,1000.0); 81 | #317= IFCSHAPEREPRESENTATION(#32,'Body','SweptSolid',(#316)); 82 | #318= IFCPRODUCTDEFINITIONSHAPE($,$,(#315,#317)); 83 | ENDSEC; 84 | 85 | END-ISO-10303-21; 86 | 87 | -------------------------------------------------------------------------------- /Examples/Column.ifc: -------------------------------------------------------------------------------- 1 | ISO-10303-21; 2 | HEADER; 3 | FILE_DESCRIPTION(('ViewDefinition [DesignTransferView_V1]'),'2;1'); 4 | FILE_NAME( 5 | /* name */ 'C:\\My Work\\Geometry Gym\\documents\\building smart\\github\\ifcscript\\examples\\Column.ifc', 6 | /* time_stamp */ '2017-06-27T13:32:40', 7 | /* author */ ('jonm'), 8 | /* organization */ ('Geometry Gym'), 9 | /* preprocessor_version */ 'GeometryGymIFC v0.0.15.0 by Geometry Gym Pty Ltd built 2017-06-27T02:48:24', 10 | /* originating_system */ 'IFCExamples v0.0.1.0', 11 | /* authorization */ 'None'); 12 | 13 | FILE_SCHEMA (('IFC4')); 14 | ENDSEC; 15 | 16 | DATA; 17 | #10= IFCCARTESIANPOINT((0.0,0.0,0.0)); 18 | #11= IFCAXIS2PLACEMENT3D(#10,$,$); 19 | #12= IFCLOCALPLACEMENT($,#11); 20 | /* defines the default building (as required as the minimum spatial element) */ 21 | #13= IFCBUILDING('39t4Pu3nTC4ekXYRIHJB9W',$,'IfcBuilding',$,$,#12,$,$,$,$,$,#18); 22 | #14= IFCRELCONTAINEDINSPATIALSTRUCTURE('3Sa3dTJGn0H8TQIGiuGQd5',$,'Building','Building Container for Elements',(#64),#13); 23 | #15= IFCCARTESIANPOINT((0.0,0.0,0.0)); 24 | #16= IFCAXIS2PLACEMENT3D(#15,$,$); 25 | #18= IFCPOSTALADDRESS($,$,$,$,('Unknown'),$,'Unknown',$,'Unknown','Unknown'); 26 | /* general entities required for all IFC sets, defining the context for the exchange */ 27 | #20= IFCPROJECT('0$WU4A9R19$vKWO$AdOnKA',$,'IfcProject',$,$,$,$,(#28),#21); 28 | #21= IFCUNITASSIGNMENT((#22,#23,#24,#25,#26)); 29 | #22= IFCSIUNIT(*,.LENGTHUNIT.,.MILLI.,.METRE.); 30 | #23= IFCSIUNIT(*,.AREAUNIT.,$,.SQUARE_METRE.); 31 | #24= IFCSIUNIT(*,.VOLUMEUNIT.,$,.CUBIC_METRE.); 32 | #25= IFCSIUNIT(*,.PLANEANGLEUNIT.,$,.RADIAN.); 33 | #26= IFCSIUNIT(*,.TIMEUNIT.,$,.SECOND.); 34 | #27= IFCRELAGGREGATES('091a6ewbvCMQ2Vyiqspa7a',$,'Project Container','Project Container for Buildings',#20,(#13)); 35 | #28= IFCGEOMETRICREPRESENTATIONCONTEXT($,'Model',3,0.0001,#30,#31); 36 | #29= IFCCARTESIANPOINT((0.0,0.0,0.0)); 37 | #30= IFCAXIS2PLACEMENT3D(#29,$,$); 38 | #31= IFCDIRECTION((0.0,1.0)); 39 | #32= IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Body','Model',*,*,*,*,#28,$,.MODEL_VIEW.,$); 40 | /* Example data for Column */ 41 | #50= IFCMATERIAL('S355JR','Steel',$); 42 | #52= IFCISHAPEPROFILEDEF(.AREA.,'IPE200',$,100.0,200.0,5.6,8.5,12.0,$,$); 43 | #53= IFCMATERIALPROFILE('IPE200',$,#50,#52,$,$); 44 | #55= IFCMATERIALPROFILESET('IPE200',$,(#53),$); 45 | #56= IFCRELASSOCIATESMATERIAL('2RR6JzjWrDuRIDIKRwxCJZ',$,'MatAssoc','Material Associates',(#57),#55); 46 | #57= IFCCOLUMNTYPE('3qJDCKcPj1tgEHrIL1MUed',$,'IPE200',$,$,$,$,$,$,.COLUMN.); 47 | #58= IFCRELDEFINESBYTYPE('0QSJIMj99DcOpmktgECZT7',$,'NameNotAssigned',$,(#64),#57); 48 | #59= IFCMATERIALPROFILESETUSAGE(#55,5,$); 49 | #60= IFCRELASSOCIATESMATERIAL('2JRmkBe255UBkcHeZrq_Bl',$,'MatAssoc','Material Associates',(#64),#59); 50 | #61= IFCCARTESIANPOINT((0.0,0.0,0.0)); 51 | #62= IFCAXIS2PLACEMENT3D(#61,$,$); 52 | #63= IFCLOCALPLACEMENT(#12,#62); 53 | #64= IFCCOLUMN('3S1GK_wA565RDoiWQEJc_l',$,'IPE200',$,$,#63,#72,$,$); 54 | #65= IFCCARTESIANPOINT((0.0,0.0,2000.0)); 55 | #66= IFCPOLYLINE((#15,#65)); 56 | #67= IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Axis','Model',*,*,*,*,#28,$,.MODEL_VIEW.,$); 57 | #68= IFCSHAPEREPRESENTATION(#67,'Axis','Curve3D',(#66)); 58 | #69= IFCEXTRUDEDAREASOLID(#52,$,#70,2000.0); 59 | #70= IFCDIRECTION((0.0,0.0,1.0)); 60 | #71= IFCSHAPEREPRESENTATION(#32,'Body','SweptSolid',(#69)); 61 | #72= IFCPRODUCTDEFINITIONSHAPE($,$,(#68,#71)); 62 | #73= IFCRELDECLARES('1Cjr05W9T0fx0M3_mdVqMd',$,$,$,#20,(#57)); 63 | ENDSEC; 64 | 65 | END-ISO-10303-21; 66 | 67 | -------------------------------------------------------------------------------- /Examples/CurveParametersDegrees.ifc: -------------------------------------------------------------------------------- 1 | ISO-10303-21; 2 | HEADER; 3 | FILE_DESCRIPTION(('ViewDefinition [DesignTransferView_V1]'),'2;1'); 4 | FILE_NAME( 5 | /* name */ 'C:\\My Work\\Geometry Gym\\documents\\building smart\\github\\ifcscript\\examples\\CurveParametersDegrees.ifc', 6 | /* time_stamp */ '2017-06-28T23:09:53', 7 | /* author */ ('jonm'), 8 | /* organization */ ('Geometry Gym'), 9 | /* preprocessor_version */ 'GeometryGymIFC v0.0.15.0 by Geometry Gym Pty Ltd built 2017-06-28T13:09:05', 10 | /* originating_system */ 'IFCExamples v0.0.1.0', 11 | /* authorization */ 'None'); 12 | 13 | FILE_SCHEMA (('IFC4')); 14 | ENDSEC; 15 | 16 | DATA; 17 | #10= IFCCARTESIANPOINT((0.0,0.0,0.0)); 18 | #11= IFCAXIS2PLACEMENT3D(#10,$,$); 19 | #12= IFCLOCALPLACEMENT($,#11); 20 | /* defines the default building (as required as the minimum spatial element) */ 21 | /* These profile curves are intentionally expressed in a more complicated manner than possible to test parameterization */ 22 | #13= IFCBUILDING('39t4Pu3nTC4ekXYRIHJB9W',$,'IfcBuilding',$,$,#12,$,$,$,$,$,#18); 23 | #14= IFCRELCONTAINEDINSPATIALSTRUCTURE('3Sa3dTJGn0H8TQIGiuGQd5',$,'Building','Building Container for Elements',(#77,#131,#180),#13); 24 | #15= IFCCARTESIANPOINT((0.0,0.0,0.0)); 25 | #16= IFCAXIS2PLACEMENT3D(#15,$,$); 26 | #18= IFCPOSTALADDRESS($,$,$,$,('Unknown'),$,'Unknown',$,'Unknown','Unknown'); 27 | /* general entities required for all IFC sets, defining the context for the exchange */ 28 | #20= IFCPROJECT('0$WU4A9R19$vKWO$AdOnKA',$,'IfcProject',$,$,$,$,(#31),#21); 29 | #21= IFCUNITASSIGNMENT((#22,#23,#24,#27,#29)); 30 | #22= IFCSIUNIT(*,.LENGTHUNIT.,.MILLI.,.METRE.); 31 | #23= IFCSIUNIT(*,.AREAUNIT.,$,.SQUARE_METRE.); 32 | #24= IFCSIUNIT(*,.VOLUMEUNIT.,$,.CUBIC_METRE.); 33 | #25= IFCSIUNIT(*,.PLANEANGLEUNIT.,$,.RADIAN.); 34 | #26= IFCMEASUREWITHUNIT(IFCPLANEANGLEMEASURE(0.0174532925199433),#25); 35 | #27= IFCCONVERSIONBASEDUNIT(#28,.PLANEANGLEUNIT.,'DEGREE',#26); 36 | #28= IFCDIMENSIONALEXPONENTS(0,0,0,0,0,0,0); 37 | #29= IFCSIUNIT(*,.TIMEUNIT.,$,.SECOND.); 38 | #30= IFCRELAGGREGATES('091a6ewbvCMQ2Vyiqspa7a',$,'Project Container','Project Container for Buildings',#20,(#13)); 39 | #31= IFCGEOMETRICREPRESENTATIONCONTEXT($,'Model',3,0.0001,#33,#34); 40 | #32= IFCCARTESIANPOINT((0.0,0.0,0.0)); 41 | #33= IFCAXIS2PLACEMENT3D(#32,$,$); 42 | #34= IFCDIRECTION((0.0,1.0)); 43 | #35= IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Body','Model',*,*,*,*,#31,$,.MODEL_VIEW.,$); 44 | /* Example data for CurveParametersDegrees */ 45 | #50= IFCMATERIAL('Steel',$,$); 46 | #52= IFCCARTESIANPOINT((-1000.0,1000.0)); 47 | #53= IFCDIRECTION((0.70710678,-0.70710678)); 48 | #54= IFCVECTOR(#53,1414.2135623731); 49 | #55= IFCLINE(#52,#54); 50 | #56= IFCTRIMMEDCURVE(#55,(IFCPARAMETERVALUE(0.292893218813453)),(IFCPARAMETERVALUE(1.70710678118655)),.T.,.PARAMETER.); 51 | #57= IFCCOMPOSITECURVESEGMENT(.CONTINUOUS.,.T.,#56); 52 | #58= IFCCARTESIANPOINT((0.0,0.0)); 53 | #59= IFCAXIS2PLACEMENT2D(#58,$); 54 | #60= IFCCIRCLE(#59,1000.0); 55 | #61= IFCTRIMMEDCURVE(#60,(IFCPARAMETERVALUE(315.0)),(IFCPARAMETERVALUE(135.0)),.T.,.PARAMETER.); 56 | #62= IFCCOMPOSITECURVESEGMENT(.CONTINUOUS.,.T.,#61); 57 | #63= IFCCOMPOSITECURVE((#57,#62),.U.); 58 | #64= IFCARBITRARYCLOSEDPROFILEDEF(.AREA.,'SemiCircle',#63); 59 | #65= IFCMATERIALPROFILE('SemiCircle',$,#50,#64,$,$); 60 | #67= IFCMATERIALPROFILESET('SemiCircle',$,(#65),$); 61 | #68= IFCRELASSOCIATESMATERIAL('1gdVo5TjPETPZlW8HSRupM',$,'MatAssoc','Material Associates',(#69),#67); 62 | #69= IFCCOLUMNTYPE('24mq0gwVr7bgEMXPmo$TrF',$,'SemiCircle',$,$,$,$,$,$,.COLUMN.); 63 | #70= IFCRELDEFINESBYTYPE('0devdSRyf3uBEQbSqWTDjo',$,'NameNotAssigned',$,(#77),#69); 64 | #71= IFCRELDECLARES('1Cjr05W9T0fx0M3_mdVqMd',$,$,$,#20,(#69,#124,#173)); 65 | #72= IFCMATERIALPROFILESETUSAGE(#67,5,$); 66 | #73= IFCRELASSOCIATESMATERIAL('35z8gDFbb6gvrCOz$24tUJ',$,'MatAssoc','Material Associates',(#77),#72); 67 | #74= IFCCARTESIANPOINT((0.0,0.0,0.0)); 68 | #75= IFCAXIS2PLACEMENT3D(#74,$,$); 69 | #76= IFCLOCALPLACEMENT(#12,#75); 70 | #77= IFCCOLUMN('0RGc8lepr7BRF_EtHrWJ45',$,'SemiCircle',$,$,#76,#85,$,$); 71 | #78= IFCCARTESIANPOINT((0.0,0.0,2000.0)); 72 | #79= IFCPOLYLINE((#15,#78)); 73 | #80= IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Axis','Model',*,*,*,*,#31,$,.MODEL_VIEW.,$); 74 | #81= IFCSHAPEREPRESENTATION(#80,'Axis','Curve3D',(#79)); 75 | #82= IFCEXTRUDEDAREASOLID(#64,$,#83,2000.0); 76 | #83= IFCDIRECTION((0.0,0.0,1.0)); 77 | #84= IFCSHAPEREPRESENTATION(#35,'Body','SweptSolid',(#82)); 78 | #85= IFCPRODUCTDEFINITIONSHAPE($,$,(#81,#84)); 79 | #100= IFCCARTESIANPOINT((0.0,1000.0)); 80 | #101= IFCAXIS2PLACEMENT2D(#100,#102); 81 | #102= IFCDIRECTION((-1.0,0.0)); 82 | #103= IFCCIRCLE(#101,1732.05081); 83 | #104= IFCTRIMMEDCURVE(#103,(IFCPARAMETERVALUE(60.0)),(IFCPARAMETERVALUE(120.0)),.T.,.PARAMETER.); 84 | #105= IFCCOMPOSITECURVESEGMENT(.CONTINUOUS.,.T.,#104); 85 | #106= IFCCARTESIANPOINT((-866.0254,-500.0)); 86 | #107= IFCAXIS2PLACEMENT2D(#106,#108); 87 | #108= IFCDIRECTION((0.0,-1.0)); 88 | #109= IFCCIRCLE(#107,1732.05081); 89 | #110= IFCTRIMMEDCURVE(#109,(IFCPARAMETERVALUE(90.0)),(IFCPARAMETERVALUE(150.0)),.T.,.PARAMETER.); 90 | #111= IFCCOMPOSITECURVESEGMENT(.CONTINUOUS.,.T.,#110); 91 | #112= IFCCARTESIANPOINT((866.0254,-500.0)); 92 | #113= IFCAXIS2PLACEMENT2D(#112,#114); 93 | #114= IFCDIRECTION((0.0,1.0)); 94 | #115= IFCCIRCLE(#113,1732.05081); 95 | #116= IFCTRIMMEDCURVE(#115,(IFCPARAMETERVALUE(30.0)),(IFCPARAMETERVALUE(90.0)),.T.,.PARAMETER.); 96 | #117= IFCCOMPOSITECURVESEGMENT(.CONTINUOUS.,.T.,#116); 97 | #118= IFCCOMPOSITECURVE((#105,#111,#117),.U.); 98 | #119= IFCARBITRARYCLOSEDPROFILEDEF(.AREA.,'CurviLinearTriangle',#118); 99 | #120= IFCMATERIALPROFILE('CurviLinearTriangle',$,#50,#119,$,$); 100 | #122= IFCMATERIALPROFILESET('CurviLinearTriangle',$,(#120),$); 101 | #123= IFCRELASSOCIATESMATERIAL('1qSyS$HSb8TRu4PVnIUzZM',$,'MatAssoc','Material Associates',(#124),#122); 102 | #124= IFCCOLUMNTYPE('0JgmY6eGLC9AwX_nMFf5CT',$,'CurviLinearTriangle',$,$,$,$,$,$,.COLUMN.); 103 | #125= IFCRELDEFINESBYTYPE('1N1PpBCJLB4QMrIjidnGaj',$,'NameNotAssigned',$,(#131),#124); 104 | #126= IFCMATERIALPROFILESETUSAGE(#122,5,$); 105 | #127= IFCRELASSOCIATESMATERIAL('00Bah4pIPCa9jB2F34kUX_',$,'MatAssoc','Material Associates',(#131),#126); 106 | #128= IFCCARTESIANPOINT((2500.0,0.0,0.0)); 107 | #129= IFCAXIS2PLACEMENT3D(#128,$,$); 108 | #130= IFCLOCALPLACEMENT(#12,#129); 109 | #131= IFCCOLUMN('3vcm8ZmFfDwhpgzzT7EP8n',$,'CurviLinearTriangle',$,$,#130,#137,$,$); 110 | #132= IFCCARTESIANPOINT((0.0,0.0,2000.0)); 111 | #133= IFCPOLYLINE((#15,#132)); 112 | #134= IFCSHAPEREPRESENTATION(#80,'Axis','Curve3D',(#133)); 113 | #135= IFCEXTRUDEDAREASOLID(#119,$,#83,2000.0); 114 | #136= IFCSHAPEREPRESENTATION(#35,'Body','SweptSolid',(#135)); 115 | #137= IFCPRODUCTDEFINITIONSHAPE($,$,(#134,#136)); 116 | #150= IFCCARTESIANPOINT((0.0,0.0)); 117 | #151= IFCAXIS2PLACEMENT2D(#150,$); 118 | #152= IFCELLIPSE(#151,1000.0,500.0); 119 | #153= IFCTRIMMEDCURVE(#152,(IFCPARAMETERVALUE(0.0)),(IFCPARAMETERVALUE(45.0)),.T.,.PARAMETER.); 120 | #154= IFCCOMPOSITECURVESEGMENT(.CONTINUOUS.,.T.,#153); 121 | #155= IFCCARTESIANPOINT((0.0,0.0)); 122 | #156= IFCDIRECTION((0.89442719,0.4472136)); 123 | #157= IFCVECTOR(#156,1.0); 124 | #158= IFCLINE(#155,#157); 125 | #159= IFCTRIMMEDCURVE(#158,(IFCPARAMETERVALUE(0.0)),(IFCPARAMETERVALUE(790.569415042095)),.F.,.PARAMETER.); 126 | #160= IFCCOMPOSITECURVESEGMENT(.CONTINUOUS.,.T.,#159); 127 | #161= IFCCARTESIANPOINT((0.0,0.0)); 128 | #162= IFCDIRECTION((1.0,0.0)); 129 | #163= IFCVECTOR(#162,1.0); 130 | #164= IFCLINE(#161,#163); 131 | #165= IFCTRIMMEDCURVE(#164,(IFCPARAMETERVALUE(0.0)),(IFCPARAMETERVALUE(1000.0)),.T.,.PARAMETER.); 132 | #166= IFCCOMPOSITECURVESEGMENT(.CONTINUOUS.,.T.,#165); 133 | #167= IFCCOMPOSITECURVE((#154,#160,#166),.U.); 134 | #168= IFCARBITRARYCLOSEDPROFILEDEF(.AREA.,'PartialEllipse',#167); 135 | #169= IFCMATERIALPROFILE('PartialEllipse',$,#50,#168,$,$); 136 | #171= IFCMATERIALPROFILESET('PartialEllipse',$,(#169),$); 137 | #172= IFCRELASSOCIATESMATERIAL('2V$PMUw5f3PgVGq_LG8lb7',$,'MatAssoc','Material Associates',(#173),#171); 138 | #173= IFCCOLUMNTYPE('32anvmJgjFPOL650_UAlfM',$,'PartialEllipse',$,$,$,$,$,$,.COLUMN.); 139 | #174= IFCRELDEFINESBYTYPE('1YdxXK2rrC6RnMj56iAUZG',$,'NameNotAssigned',$,(#180),#173); 140 | #175= IFCMATERIALPROFILESETUSAGE(#171,5,$); 141 | #176= IFCRELASSOCIATESMATERIAL('1k_RZ6rAPBe92Lvj8VqnvM',$,'MatAssoc','Material Associates',(#180),#175); 142 | #177= IFCCARTESIANPOINT((5000.0,0.0,0.0)); 143 | #178= IFCAXIS2PLACEMENT3D(#177,$,$); 144 | #179= IFCLOCALPLACEMENT(#12,#178); 145 | #180= IFCCOLUMN('0gw7Zq2jn3b91J9aZCStsR',$,'PartialEllipse',$,$,#179,#186,$,$); 146 | #181= IFCCARTESIANPOINT((0.0,0.0,2000.0)); 147 | #182= IFCPOLYLINE((#15,#181)); 148 | #183= IFCSHAPEREPRESENTATION(#80,'Axis','Curve3D',(#182)); 149 | #184= IFCEXTRUDEDAREASOLID(#168,$,#83,2000.0); 150 | #185= IFCSHAPEREPRESENTATION(#35,'Body','SweptSolid',(#184)); 151 | #186= IFCPRODUCTDEFINITIONSHAPE($,$,(#183,#185)); 152 | ENDSEC; 153 | 154 | END-ISO-10303-21; 155 | 156 | -------------------------------------------------------------------------------- /Examples/CurveParametersRadians.ifc: -------------------------------------------------------------------------------- 1 | ISO-10303-21; 2 | HEADER; 3 | FILE_DESCRIPTION(('ViewDefinition [DesignTransferView_V1]'),'2;1'); 4 | FILE_NAME( 5 | /* name */ 'C:\\My Work\\Geometry Gym\\documents\\building smart\\github\\ifcscript\\examples\\CurveParametersRadians.ifc', 6 | /* time_stamp */ '2017-06-28T23:09:53', 7 | /* author */ ('jonm'), 8 | /* organization */ ('Geometry Gym'), 9 | /* preprocessor_version */ 'GeometryGymIFC v0.0.15.0 by Geometry Gym Pty Ltd built 2017-06-28T13:09:05', 10 | /* originating_system */ 'IFCExamples v0.0.1.0', 11 | /* authorization */ 'None'); 12 | 13 | FILE_SCHEMA (('IFC4')); 14 | ENDSEC; 15 | 16 | DATA; 17 | #10= IFCCARTESIANPOINT((0.0,0.0,0.0)); 18 | #11= IFCAXIS2PLACEMENT3D(#10,$,$); 19 | #12= IFCLOCALPLACEMENT($,#11); 20 | /* defines the default building (as required as the minimum spatial element) */ 21 | /* These profile curves are intentionally expressed in a more complicated manner than possible to test parameterization */ 22 | #13= IFCBUILDING('39t4Pu3nTC4ekXYRIHJB9W',$,'IfcBuilding',$,$,#12,$,$,$,$,$,#18); 23 | #14= IFCRELCONTAINEDINSPATIALSTRUCTURE('3Sa3dTJGn0H8TQIGiuGQd5',$,'Building','Building Container for Elements',(#77,#131,#180),#13); 24 | #15= IFCCARTESIANPOINT((0.0,0.0,0.0)); 25 | #16= IFCAXIS2PLACEMENT3D(#15,$,$); 26 | #18= IFCPOSTALADDRESS($,$,$,$,('Unknown'),$,'Unknown',$,'Unknown','Unknown'); 27 | /* general entities required for all IFC sets, defining the context for the exchange */ 28 | #20= IFCPROJECT('0$WU4A9R19$vKWO$AdOnKA',$,'IfcProject',$,$,$,$,(#28),#21); 29 | #21= IFCUNITASSIGNMENT((#22,#23,#24,#25,#26)); 30 | #22= IFCSIUNIT(*,.LENGTHUNIT.,.MILLI.,.METRE.); 31 | #23= IFCSIUNIT(*,.AREAUNIT.,$,.SQUARE_METRE.); 32 | #24= IFCSIUNIT(*,.VOLUMEUNIT.,$,.CUBIC_METRE.); 33 | #25= IFCSIUNIT(*,.PLANEANGLEUNIT.,$,.RADIAN.); 34 | #26= IFCSIUNIT(*,.TIMEUNIT.,$,.SECOND.); 35 | #27= IFCRELAGGREGATES('091a6ewbvCMQ2Vyiqspa7a',$,'Project Container','Project Container for Buildings',#20,(#13)); 36 | #28= IFCGEOMETRICREPRESENTATIONCONTEXT($,'Model',3,0.0001,#30,#31); 37 | #29= IFCCARTESIANPOINT((0.0,0.0,0.0)); 38 | #30= IFCAXIS2PLACEMENT3D(#29,$,$); 39 | #31= IFCDIRECTION((0.0,1.0)); 40 | #32= IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Body','Model',*,*,*,*,#28,$,.MODEL_VIEW.,$); 41 | /* Example data for CurveParametersRadians */ 42 | #50= IFCMATERIAL('Steel',$,$); 43 | #52= IFCCARTESIANPOINT((-1000.0,1000.0)); 44 | #53= IFCDIRECTION((0.70710678,-0.70710678)); 45 | #54= IFCVECTOR(#53,1414.2135623731); 46 | #55= IFCLINE(#52,#54); 47 | #56= IFCTRIMMEDCURVE(#55,(IFCPARAMETERVALUE(0.292893218813453)),(IFCPARAMETERVALUE(1.70710678118655)),.T.,.PARAMETER.); 48 | #57= IFCCOMPOSITECURVESEGMENT(.CONTINUOUS.,.T.,#56); 49 | #58= IFCCARTESIANPOINT((0.0,0.0)); 50 | #59= IFCAXIS2PLACEMENT2D(#58,$); 51 | #60= IFCCIRCLE(#59,1000.0); 52 | #61= IFCTRIMMEDCURVE(#60,(IFCPARAMETERVALUE(5.49778714378214)),(IFCPARAMETERVALUE(2.35619449019234)),.T.,.PARAMETER.); 53 | #62= IFCCOMPOSITECURVESEGMENT(.CONTINUOUS.,.T.,#61); 54 | #63= IFCCOMPOSITECURVE((#57,#62),.U.); 55 | #64= IFCARBITRARYCLOSEDPROFILEDEF(.AREA.,'SemiCircle',#63); 56 | #65= IFCMATERIALPROFILE('SemiCircle',$,#50,#64,$,$); 57 | #67= IFCMATERIALPROFILESET('SemiCircle',$,(#65),$); 58 | #68= IFCRELASSOCIATESMATERIAL('1gdVo5TjPETPZlW8HSRupM',$,'MatAssoc','Material Associates',(#69),#67); 59 | #69= IFCCOLUMNTYPE('24mq0gwVr7bgEMXPmo$TrF',$,'SemiCircle',$,$,$,$,$,$,.COLUMN.); 60 | #70= IFCRELDEFINESBYTYPE('0devdSRyf3uBEQbSqWTDjo',$,'NameNotAssigned',$,(#77),#69); 61 | #71= IFCRELDECLARES('1Cjr05W9T0fx0M3_mdVqMd',$,$,$,#20,(#69,#124,#173)); 62 | #72= IFCMATERIALPROFILESETUSAGE(#67,5,$); 63 | #73= IFCRELASSOCIATESMATERIAL('35z8gDFbb6gvrCOz$24tUJ',$,'MatAssoc','Material Associates',(#77),#72); 64 | #74= IFCCARTESIANPOINT((0.0,0.0,0.0)); 65 | #75= IFCAXIS2PLACEMENT3D(#74,$,$); 66 | #76= IFCLOCALPLACEMENT(#12,#75); 67 | #77= IFCCOLUMN('0RGc8lepr7BRF_EtHrWJ45',$,'SemiCircle',$,$,#76,#85,$,$); 68 | #78= IFCCARTESIANPOINT((0.0,0.0,2000.0)); 69 | #79= IFCPOLYLINE((#15,#78)); 70 | #80= IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Axis','Model',*,*,*,*,#28,$,.MODEL_VIEW.,$); 71 | #81= IFCSHAPEREPRESENTATION(#80,'Axis','Curve3D',(#79)); 72 | #82= IFCEXTRUDEDAREASOLID(#64,$,#83,2000.0); 73 | #83= IFCDIRECTION((0.0,0.0,1.0)); 74 | #84= IFCSHAPEREPRESENTATION(#32,'Body','SweptSolid',(#82)); 75 | #85= IFCPRODUCTDEFINITIONSHAPE($,$,(#81,#84)); 76 | #100= IFCCARTESIANPOINT((0.0,1000.0)); 77 | #101= IFCAXIS2PLACEMENT2D(#100,#102); 78 | #102= IFCDIRECTION((-1.0,0.0)); 79 | #103= IFCCIRCLE(#101,1732.05081); 80 | #104= IFCTRIMMEDCURVE(#103,(IFCPARAMETERVALUE(1.0471975511966)),(IFCPARAMETERVALUE(2.0943951023932)),.T.,.PARAMETER.); 81 | #105= IFCCOMPOSITECURVESEGMENT(.CONTINUOUS.,.T.,#104); 82 | #106= IFCCARTESIANPOINT((-866.0254,-500.0)); 83 | #107= IFCAXIS2PLACEMENT2D(#106,#108); 84 | #108= IFCDIRECTION((0.0,-1.0)); 85 | #109= IFCCIRCLE(#107,1732.05081); 86 | #110= IFCTRIMMEDCURVE(#109,(IFCPARAMETERVALUE(1.5707963267949)),(IFCPARAMETERVALUE(2.61799387799149)),.T.,.PARAMETER.); 87 | #111= IFCCOMPOSITECURVESEGMENT(.CONTINUOUS.,.T.,#110); 88 | #112= IFCCARTESIANPOINT((866.0254,-500.0)); 89 | #113= IFCAXIS2PLACEMENT2D(#112,#114); 90 | #114= IFCDIRECTION((0.0,1.0)); 91 | #115= IFCCIRCLE(#113,1732.05081); 92 | #116= IFCTRIMMEDCURVE(#115,(IFCPARAMETERVALUE(0.523598775598299)),(IFCPARAMETERVALUE(1.5707963267949)),.T.,.PARAMETER.); 93 | #117= IFCCOMPOSITECURVESEGMENT(.CONTINUOUS.,.T.,#116); 94 | #118= IFCCOMPOSITECURVE((#105,#111,#117),.U.); 95 | #119= IFCARBITRARYCLOSEDPROFILEDEF(.AREA.,'CurviLinearTriangle',#118); 96 | #120= IFCMATERIALPROFILE('CurviLinearTriangle',$,#50,#119,$,$); 97 | #122= IFCMATERIALPROFILESET('CurviLinearTriangle',$,(#120),$); 98 | #123= IFCRELASSOCIATESMATERIAL('1M5oofzjD3IOM43brXW6wT',$,'MatAssoc','Material Associates',(#124),#122); 99 | #124= IFCCOLUMNTYPE('3N_qc_BjX1hvEgwfRvVcb_',$,'CurviLinearTriangle',$,$,$,$,$,$,.COLUMN.); 100 | #125= IFCRELDEFINESBYTYPE('3tGocD1N51oOvSvHbJI_qD',$,'NameNotAssigned',$,(#131),#124); 101 | #126= IFCMATERIALPROFILESETUSAGE(#122,5,$); 102 | #127= IFCRELASSOCIATESMATERIAL('0gnTzVmkbE9hPsJDxOUOL3',$,'MatAssoc','Material Associates',(#131),#126); 103 | #128= IFCCARTESIANPOINT((2500.0,0.0,0.0)); 104 | #129= IFCAXIS2PLACEMENT3D(#128,$,$); 105 | #130= IFCLOCALPLACEMENT(#12,#129); 106 | #131= IFCCOLUMN('0bmIILAwj8$PLHK1jcmad0',$,'CurviLinearTriangle',$,$,#130,#137,$,$); 107 | #132= IFCCARTESIANPOINT((0.0,0.0,2000.0)); 108 | #133= IFCPOLYLINE((#15,#132)); 109 | #134= IFCSHAPEREPRESENTATION(#80,'Axis','Curve3D',(#133)); 110 | #135= IFCEXTRUDEDAREASOLID(#119,$,#83,2000.0); 111 | #136= IFCSHAPEREPRESENTATION(#32,'Body','SweptSolid',(#135)); 112 | #137= IFCPRODUCTDEFINITIONSHAPE($,$,(#134,#136)); 113 | #150= IFCCARTESIANPOINT((0.0,0.0)); 114 | #151= IFCAXIS2PLACEMENT2D(#150,$); 115 | #152= IFCELLIPSE(#151,1000.0,500.0); 116 | #153= IFCTRIMMEDCURVE(#152,(IFCPARAMETERVALUE(0.0)),(IFCPARAMETERVALUE(0.785398163397448)),.T.,.PARAMETER.); 117 | #154= IFCCOMPOSITECURVESEGMENT(.CONTINUOUS.,.T.,#153); 118 | #155= IFCCARTESIANPOINT((0.0,0.0)); 119 | #156= IFCDIRECTION((0.89442719,0.4472136)); 120 | #157= IFCVECTOR(#156,1.0); 121 | #158= IFCLINE(#155,#157); 122 | #159= IFCTRIMMEDCURVE(#158,(IFCPARAMETERVALUE(0.0)),(IFCPARAMETERVALUE(790.569415042095)),.F.,.PARAMETER.); 123 | #160= IFCCOMPOSITECURVESEGMENT(.CONTINUOUS.,.T.,#159); 124 | #161= IFCCARTESIANPOINT((0.0,0.0)); 125 | #162= IFCDIRECTION((1.0,0.0)); 126 | #163= IFCVECTOR(#162,1.0); 127 | #164= IFCLINE(#161,#163); 128 | #165= IFCTRIMMEDCURVE(#164,(IFCPARAMETERVALUE(0.0)),(IFCPARAMETERVALUE(1000.0)),.T.,.PARAMETER.); 129 | #166= IFCCOMPOSITECURVESEGMENT(.CONTINUOUS.,.T.,#165); 130 | #167= IFCCOMPOSITECURVE((#154,#160,#166),.U.); 131 | #168= IFCARBITRARYCLOSEDPROFILEDEF(.AREA.,'PartialEllipse',#167); 132 | #169= IFCMATERIALPROFILE('PartialEllipse',$,#50,#168,$,$); 133 | #171= IFCMATERIALPROFILESET('PartialEllipse',$,(#169),$); 134 | #172= IFCRELASSOCIATESMATERIAL('2OfhB1Dcz2cAdV$CDh9PHV',$,'MatAssoc','Material Associates',(#173),#171); 135 | #173= IFCCOLUMNTYPE('0dtemVu1P2682BcO3CPWAy',$,'PartialEllipse',$,$,$,$,$,$,.COLUMN.); 136 | #174= IFCRELDEFINESBYTYPE('0rNx6sqCH2mOt1cWOT6zSU',$,'NameNotAssigned',$,(#180),#173); 137 | #175= IFCMATERIALPROFILESETUSAGE(#171,5,$); 138 | #176= IFCRELASSOCIATESMATERIAL('3bTNkVsf9099xrALHA6WhF',$,'MatAssoc','Material Associates',(#180),#175); 139 | #177= IFCCARTESIANPOINT((5000.0,0.0,0.0)); 140 | #178= IFCAXIS2PLACEMENT3D(#177,$,$); 141 | #179= IFCLOCALPLACEMENT(#12,#178); 142 | #180= IFCCOLUMN('1JCvykjKH71R7_uck4n6hN',$,'PartialEllipse',$,$,#179,#186,$,$); 143 | #181= IFCCARTESIANPOINT((0.0,0.0,2000.0)); 144 | #182= IFCPOLYLINE((#15,#181)); 145 | #183= IFCSHAPEREPRESENTATION(#80,'Axis','Curve3D',(#182)); 146 | #184= IFCEXTRUDEDAREASOLID(#168,$,#83,2000.0); 147 | #185= IFCSHAPEREPRESENTATION(#32,'Body','SweptSolid',(#184)); 148 | #186= IFCPRODUCTDEFINITIONSHAPE($,$,(#183,#185)); 149 | ENDSEC; 150 | 151 | END-ISO-10303-21; 152 | 153 | -------------------------------------------------------------------------------- /Examples/Images/BasinAdvancedBrep.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/buildingsmart-community/IfcScript/8edfee3119500f4adb741c0578a4bd272d018586/Examples/Images/BasinAdvancedBrep.png -------------------------------------------------------------------------------- /Examples/Images/BasinBrep.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/buildingsmart-community/IfcScript/8edfee3119500f4adb741c0578a4bd272d018586/Examples/Images/BasinBrep.png -------------------------------------------------------------------------------- /Examples/Images/BasinTessellation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/buildingsmart-community/IfcScript/8edfee3119500f4adb741c0578a4bd272d018586/Examples/Images/BasinTessellation.png -------------------------------------------------------------------------------- /Examples/Images/Bath.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/buildingsmart-community/IfcScript/8edfee3119500f4adb741c0578a4bd272d018586/Examples/Images/Bath.png -------------------------------------------------------------------------------- /Examples/Images/BeamExtruded.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/buildingsmart-community/IfcScript/8edfee3119500f4adb741c0578a4bd272d018586/Examples/Images/BeamExtruded.png -------------------------------------------------------------------------------- /Examples/Images/BeamTessellated.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/buildingsmart-community/IfcScript/8edfee3119500f4adb741c0578a4bd272d018586/Examples/Images/BeamTessellated.png -------------------------------------------------------------------------------- /Examples/Images/BeamUnitTestsVaryingCardinal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/buildingsmart-community/IfcScript/8edfee3119500f4adb741c0578a4bd272d018586/Examples/Images/BeamUnitTestsVaryingCardinal.png -------------------------------------------------------------------------------- /Examples/Images/BeamUnitTestsVaryingPath.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/buildingsmart-community/IfcScript/8edfee3119500f4adb741c0578a4bd272d018586/Examples/Images/BeamUnitTestsVaryingPath.png -------------------------------------------------------------------------------- /Examples/Images/BeamUnitTestsVaryingProfile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/buildingsmart-community/IfcScript/8edfee3119500f4adb741c0578a4bd272d018586/Examples/Images/BeamUnitTestsVaryingProfile.png -------------------------------------------------------------------------------- /Examples/Images/Column.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/buildingsmart-community/IfcScript/8edfee3119500f4adb741c0578a4bd272d018586/Examples/Images/Column.png -------------------------------------------------------------------------------- /Examples/Images/CurveParameters.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/buildingsmart-community/IfcScript/8edfee3119500f4adb741c0578a4bd272d018586/Examples/Images/CurveParameters.png -------------------------------------------------------------------------------- /Examples/Images/IndexedColourMap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/buildingsmart-community/IfcScript/8edfee3119500f4adb741c0578a4bd272d018586/Examples/Images/IndexedColourMap.png -------------------------------------------------------------------------------- /Examples/Images/ReinforcingAssembly.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/buildingsmart-community/IfcScript/8edfee3119500f4adb741c0578a4bd272d018586/Examples/Images/ReinforcingAssembly.png -------------------------------------------------------------------------------- /Examples/Images/ReinforcingBar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/buildingsmart-community/IfcScript/8edfee3119500f4adb741c0578a4bd272d018586/Examples/Images/ReinforcingBar.png -------------------------------------------------------------------------------- /Examples/Images/SlabOpenings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/buildingsmart-community/IfcScript/8edfee3119500f4adb741c0578a4bd272d018586/Examples/Images/SlabOpenings.png -------------------------------------------------------------------------------- /Examples/Images/slab.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/buildingsmart-community/IfcScript/8edfee3119500f4adb741c0578a4bd272d018586/Examples/Images/slab.png -------------------------------------------------------------------------------- /Examples/Images/wall.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/buildingsmart-community/IfcScript/8edfee3119500f4adb741c0578a4bd272d018586/Examples/Images/wall.png -------------------------------------------------------------------------------- /Examples/IndexedColourMap.ifc: -------------------------------------------------------------------------------- 1 | ISO-10303-21; 2 | HEADER; 3 | FILE_DESCRIPTION(('ViewDefinition [DesignTransferView_V1]'),'2;1'); 4 | FILE_NAME( 5 | /* name */ 'C:\\My Work\\Geometry Gym\\documents\\building smart\\github\\ifcscript\\examples\\IndexedColourMap.ifc', 6 | /* time_stamp */ '2017-06-27T13:32:38', 7 | /* author */ ('jonm'), 8 | /* organization */ ('Geometry Gym'), 9 | /* preprocessor_version */ 'GeometryGymIFC v0.0.15.0 by Geometry Gym Pty Ltd built 2017-06-27T02:48:24', 10 | /* originating_system */ 'IFCExamples v0.0.1.0', 11 | /* authorization */ 'None'); 12 | 13 | FILE_SCHEMA (('IFC4')); 14 | ENDSEC; 15 | 16 | DATA; 17 | #10= IFCCARTESIANPOINT((0.0,0.0,0.0)); 18 | #11= IFCAXIS2PLACEMENT3D(#10,$,$); 19 | #12= IFCLOCALPLACEMENT($,#11); 20 | /* defines the default building (as required as the minimum spatial element) */ 21 | #13= IFCBUILDING('39t4Pu3nTC4ekXYRIHJB9W',$,'IfcBuilding',$,$,#12,$,$,$,$,$,#18); 22 | #14= IFCRELCONTAINEDINSPATIALSTRUCTURE('3Sa3dTJGn0H8TQIGiuGQd5',$,'Building','Building Container for Elements',(#302),#13); 23 | #15= IFCCARTESIANPOINT((0.0,0.0,0.0)); 24 | #16= IFCAXIS2PLACEMENT3D(#15,$,$); 25 | #18= IFCPOSTALADDRESS($,$,$,$,('Unknown'),$,'Unknown',$,'Unknown','Unknown'); 26 | /* general entities required for all IFC sets, defining the context for the exchange */ 27 | #20= IFCPROJECT('0$WU4A9R19$vKWO$AdOnKA',$,'IfcProject',$,$,$,$,(#28),#21); 28 | #21= IFCUNITASSIGNMENT((#22,#23,#24,#25,#26)); 29 | #22= IFCSIUNIT(*,.LENGTHUNIT.,.MILLI.,.METRE.); 30 | #23= IFCSIUNIT(*,.AREAUNIT.,$,.SQUARE_METRE.); 31 | #24= IFCSIUNIT(*,.VOLUMEUNIT.,$,.CUBIC_METRE.); 32 | #25= IFCSIUNIT(*,.PLANEANGLEUNIT.,$,.RADIAN.); 33 | #26= IFCSIUNIT(*,.TIMEUNIT.,$,.SECOND.); 34 | #27= IFCRELAGGREGATES('091a6ewbvCMQ2Vyiqspa7a',$,'Project Container','Project Container for Buildings',#20,(#13)); 35 | #28= IFCGEOMETRICREPRESENTATIONCONTEXT($,'Model',3,0.0001,#30,#31); 36 | #29= IFCCARTESIANPOINT((0.0,0.0,0.0)); 37 | #30= IFCAXIS2PLACEMENT3D(#29,$,$); 38 | #31= IFCDIRECTION((0.0,1.0)); 39 | #32= IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Body','Model',*,*,*,*,#28,$,.MODEL_VIEW.,$); 40 | /* Example data for IndexedColourMap */ 41 | #50= IFCCARTESIANPOINTLIST3D(((0.0,0.0,0.0),(1000.0,0.0,0.0),(1000.0,1000.0,0.0),(0.0,1000.0,0.0),(0.0,0.0,2000.0),(1000.0,0.0,2000.0),(1000.0,1000.0,2000.0),(0.0,1000.0,2000.0))); 42 | #51= IFCTRIANGULATEDFACESET(#50,$,.T.,((1,6,5),(1,2,6),(6,2,7),(7,2,3),(7,8,6),(6,8,5),(5,8,1),(1,8,4),(4,2,1),(2,4,3),(4,8,7),(7,3,4)),$,$); 43 | #52= IFCCOLOURRGBLIST(((1.0,0.0,0.0),(0.0,0.501960784313725,0.0),(1.0,1.0,0.0))); 44 | #53= IFCINDEXEDCOLOURMAP(#51,$,#52,(1,1,2,2,3,3,1,1,1,1,1,1)); 45 | #300= IFCSHAPEREPRESENTATION(#32,'Body','Tessellation',(#51)); 46 | #301= IFCPRODUCTDEFINITIONSHAPE($,$,(#300)); 47 | #302= IFCBUILDINGELEMENTPROXY('25c34fWeL1NQux73WfnXox',$,'NOTDEFINED',$,$,#303,#301,$,$); 48 | #303= IFCLOCALPLACEMENT(#12,#16); 49 | ENDSEC; 50 | 51 | END-ISO-10303-21; 52 | 53 | -------------------------------------------------------------------------------- /Examples/ReinforcingAssembly.ifc: -------------------------------------------------------------------------------- 1 | ISO-10303-21; 2 | HEADER; 3 | FILE_DESCRIPTION(('ViewDefinition [DesignTransferView_V1]'),'2;1'); 4 | FILE_NAME( 5 | /* name */ 'C:\\My Work\\Geometry Gym\\documents\\building smart\\github\\ifcscript\\examples\\ReinforcingAssembly.ifc', 6 | /* time_stamp */ '2017-06-27T13:32:40', 7 | /* author */ ('jonm'), 8 | /* organization */ ('Geometry Gym'), 9 | /* preprocessor_version */ 'GeometryGymIFC v0.0.15.0 by Geometry Gym Pty Ltd built 2017-06-27T02:48:24', 10 | /* originating_system */ 'IFCExamples v0.0.1.0', 11 | /* authorization */ 'None'); 12 | 13 | FILE_SCHEMA (('IFC4')); 14 | ENDSEC; 15 | 16 | DATA; 17 | #10= IFCCARTESIANPOINT((0.0,0.0,0.0)); 18 | #11= IFCAXIS2PLACEMENT3D(#10,$,$); 19 | #12= IFCLOCALPLACEMENT($,#11); 20 | /* defines the default building (as required as the minimum spatial element) */ 21 | #13= IFCBUILDING('39t4Pu3nTC4ekXYRIHJB9W',$,'IfcBuilding',$,$,#12,$,$,$,$,$,#18); 22 | #14= IFCRELCONTAINEDINSPATIALSTRUCTURE('3Sa3dTJGn0H8TQIGiuGQd5',$,'Building','Building Container for Elements',(#74),#13); 23 | #15= IFCCARTESIANPOINT((0.0,0.0,0.0)); 24 | #16= IFCAXIS2PLACEMENT3D(#15,$,$); 25 | #18= IFCPOSTALADDRESS($,$,$,$,('Unknown'),$,'Unknown',$,'Unknown','Unknown'); 26 | /* general entities required for all IFC sets, defining the context for the exchange */ 27 | #20= IFCPROJECT('0$WU4A9R19$vKWO$AdOnKA',$,'IfcProject',$,$,$,$,(#28),#21); 28 | #21= IFCUNITASSIGNMENT((#22,#23,#24,#25,#26)); 29 | #22= IFCSIUNIT(*,.LENGTHUNIT.,.MILLI.,.METRE.); 30 | #23= IFCSIUNIT(*,.AREAUNIT.,$,.SQUARE_METRE.); 31 | #24= IFCSIUNIT(*,.VOLUMEUNIT.,$,.CUBIC_METRE.); 32 | #25= IFCSIUNIT(*,.PLANEANGLEUNIT.,$,.RADIAN.); 33 | #26= IFCSIUNIT(*,.TIMEUNIT.,$,.SECOND.); 34 | #27= IFCRELAGGREGATES('091a6ewbvCMQ2Vyiqspa7a',$,'Project Container','Project Container for Buildings',#20,(#13)); 35 | #28= IFCGEOMETRICREPRESENTATIONCONTEXT($,'Model',3,0.0001,#30,#31); 36 | #29= IFCCARTESIANPOINT((0.0,0.0,0.0)); 37 | #30= IFCAXIS2PLACEMENT3D(#29,$,$); 38 | #31= IFCDIRECTION((0.0,1.0)); 39 | #32= IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Body','Model',*,*,*,*,#28,$,.MODEL_VIEW.,$); 40 | /* Example data for ReinforcingAssembly */ 41 | #50= IFCDOCUMENTREFERENCE($,'MyCodeISO3766','MyReinforcementCode',$,$); 42 | #51= IFCRELASSOCIATESDOCUMENT('1R7R97$uLAAv4wci$KGwn8',$,$,$,(#20),#50); 43 | #52= IFCMATERIAL('ReinforcingSteel',$,$); 44 | #53= IFCRELASSOCIATESMATERIAL('3gfVO40P5EfQyKZ_bF0R$6',$,'MatAssoc','Material Associates',(#59),#52); 45 | #54= IFCCARTESIANPOINTLIST3D(((-69.0,0.0,-122.0),(-69.0,0.0,-79.0),(-54.94113,0.0,-45.05887),(-21.0,0.0,-31.0),(21.0,0.0,-31.0),(54.94113,0.0,-45.05887),(69.0,0.0,-79.0),(69.0,0.0,-321.0),(54.99398,1.21791,-354.94113),(21.18045,4.15822,-369.0),(-20.66165,7.79667,-369.0),(-54.47518,10.73697,-354.94113),(-68.4812,11.95489,-321.0),(-69.0,12.0,-79.0),(-54.94113,12.0,-45.05887),(-21.0,12.0,-31.0),(21.0,12.0,-31.0),(54.94113,12.0,-45.05887),(69.0,12.0,-79.0),(69.0,12.0,-122.0))); 46 | #55= IFCINDEXEDPOLYCURVE(#54,(IFCLINEINDEX((1,2)),IFCARCINDEX((2,3,4)),IFCLINEINDEX((4,5)),IFCARCINDEX((5,6,7)),IFCLINEINDEX((7,8)),IFCARCINDEX((8,9,10)),IFCLINEINDEX((10,11)),IFCARCINDEX((11,12,13)),IFCLINEINDEX((13,14)),IFCARCINDEX((14,15,16)),IFCLINEINDEX((16,17)),IFCARCINDEX((17,18,19)),IFCLINEINDEX((19,20))),$); 47 | #56= IFCSWEPTDISKSOLID(#55,6.0,$,$,$); 48 | #57= IFCREPRESENTATIONMAP(#16,#58); 49 | #58= IFCSHAPEREPRESENTATION(#32,'Body','SolidModel',(#56)); 50 | #59= IFCREINFORCINGBARTYPE('0jMRtfHYXE7u4s_CQ2uVE9',$,'12 Diameter Ligature',$,$,$,(#57),$,$,.LIGATURE.,12.0,113.097335529233,1150.0,.TEXTURED.,$,$); 51 | #60= IFCRELDEFINESBYTYPE('1iAfl2ERbFmwi7uniy1H7j',$,'NameNotAssigned',$,(#100,#108,#115,#122,#129,#136,#143,#150,#157,#164,#171,#178,#185,#192,#199,#206,#213,#220,#227,#234,#241,#248,#255,#262,#269,#276,#283,#290,#297,#304,#311,#318,#325,#332),#59); 52 | #61= IFCRELDECLARES('1Cjr05W9T0fx0M3_mdVqMd',$,$,$,#20,(#59,#69)); 53 | #62= IFCMATERIAL('Concrete','Concrete',$); 54 | #64= IFCRECTANGLEPROFILEDEF(.AREA.,'400x200RC',$,200.0,400.0); 55 | #65= IFCMATERIALPROFILE('400x200RC',$,#62,#64,$,$); 56 | #67= IFCMATERIALPROFILESET('400x200RC',$,(#65),$); 57 | #68= IFCRELASSOCIATESMATERIAL('2ZEgyI2v184hwa$_diRqS9',$,'MatAssoc','Material Associates',(#69),#67); 58 | #69= IFCBEAMTYPE('3bdpqVuWTCbxJ2S3ODYv6q',$,'400x200RC',$,$,$,$,$,$,.BEAM.); 59 | #70= IFCRELDEFINESBYTYPE('2oaQVVf79BrwRouvtRuQVg',$,'NameNotAssigned',$,(#82),#69); 60 | #71= IFCCARTESIANPOINT((0.0,0.0,0.0)); 61 | #72= IFCAXIS2PLACEMENT3D(#71,$,$); 62 | #73= IFCLOCALPLACEMENT(#12,#72); 63 | #74= IFCBEAM('1_KSmTR8T8bO37iRs24GkM',$,$,'Reinforced Beam',$,#73,$,$,$); 64 | #75= IFCMATERIALPROFILESETUSAGE(#67,8,$); 65 | #76= IFCRELASSOCIATESMATERIAL('3DWeleqqjEG9KshbOZXUdY',$,'MatAssoc','Material Associates',(#82),#75); 66 | #77= IFCCARTESIANPOINT((0.0,0.0,0.0)); 67 | #78= IFCDIRECTION((0.0,1.0,0.0)); 68 | #79= IFCDIRECTION((-1.0,0.0,0.0)); 69 | #80= IFCAXIS2PLACEMENT3D(#77,#78,#79); 70 | #81= IFCLOCALPLACEMENT(#73,#80); 71 | #82= IFCBEAM('1yjQ2DwLnCC8k3i3X6D_ut',$,$,$,$,#81,#93,$,$); 72 | #83= IFCRELAGGREGATES('1b1SnKocD0WRevlg8Aqhj5',$,'Beam Container','Beam Container for Elements',#74,(#82,#94)); 73 | #84= IFCCARTESIANPOINT((0.0,0.0,5000.0)); 74 | #85= IFCPOLYLINE((#15,#84)); 75 | #86= IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Axis','Model',*,*,*,*,#28,$,.MODEL_VIEW.,$); 76 | #87= IFCSHAPEREPRESENTATION(#86,'Axis','Curve3D',(#85)); 77 | #88= IFCCARTESIANPOINT((0.0,-200.0,0.0)); 78 | #89= IFCAXIS2PLACEMENT3D(#88,$,$); 79 | #90= IFCEXTRUDEDAREASOLID(#64,#89,#91,5000.0); 80 | #91= IFCDIRECTION((0.0,0.0,1.0)); 81 | #92= IFCSHAPEREPRESENTATION(#32,'Body','SweptSolid',(#90)); 82 | #93= IFCPRODUCTDEFINITIONSHAPE($,$,(#87,#92)); 83 | #94= IFCELEMENTASSEMBLY('0Q1tCJWdj4kOkZUg7rkf2h',$,$,$,$,$,$,$,.FACTORY.,.REINFORCEMENT_UNIT.); 84 | #95= IFCCARTESIANTRANSFORMATIONOPERATOR3D($,$,#96,1.0,$); 85 | #96= IFCCARTESIANPOINT((0.0,25.0,0.0)); 86 | #97= IFCMAPPEDITEM(#57,#95); 87 | #98= IFCSHAPEREPRESENTATION(#32,'Body','MappedRepresentation',(#97)); 88 | #99= IFCPRODUCTDEFINITIONSHAPE($,$,(#98)); 89 | #100= IFCREINFORCINGBAR('0ohBfsArr3ruXYxacT4yl5',$,$,$,$,#102,#99,$,$,$,$,$,$,$); 90 | #101= IFCRELAGGREGATES('1WdB196Kb72f_pKgj5rklU',$,'ElementAssembly Container','ElementAssembly Container for Elements',#94,(#100,#108,#115,#122,#129,#136,#143,#150,#157,#164,#171,#178,#185,#192,#199,#206,#213,#220,#227,#234,#241,#248,#255,#262,#269,#276,#283,#290,#297,#304,#311,#318,#325,#332)); 91 | #102= IFCLOCALPLACEMENT($,#16); 92 | #103= IFCCARTESIANTRANSFORMATIONOPERATOR3D($,$,#104,1.0,$); 93 | #104= IFCCARTESIANPOINT((0.0,175.0,0.0)); 94 | #105= IFCMAPPEDITEM(#57,#103); 95 | #106= IFCSHAPEREPRESENTATION(#32,'Body','MappedRepresentation',(#105)); 96 | #107= IFCPRODUCTDEFINITIONSHAPE($,$,(#106)); 97 | #108= IFCREINFORCINGBAR('3YrK7RbE122fNRsP5djFAe',$,$,$,$,#109,#107,$,$,$,$,$,$,$); 98 | #109= IFCLOCALPLACEMENT($,#16); 99 | #110= IFCCARTESIANTRANSFORMATIONOPERATOR3D($,$,#111,1.0,$); 100 | #111= IFCCARTESIANPOINT((0.0,325.0,0.0)); 101 | #112= IFCMAPPEDITEM(#57,#110); 102 | #113= IFCSHAPEREPRESENTATION(#32,'Body','MappedRepresentation',(#112)); 103 | #114= IFCPRODUCTDEFINITIONSHAPE($,$,(#113)); 104 | #115= IFCREINFORCINGBAR('0wxAc63nj5AezFhfks7wLL',$,$,$,$,#116,#114,$,$,$,$,$,$,$); 105 | #116= IFCLOCALPLACEMENT($,#16); 106 | #117= IFCCARTESIANTRANSFORMATIONOPERATOR3D($,$,#118,1.0,$); 107 | #118= IFCCARTESIANPOINT((0.0,475.0,0.0)); 108 | #119= IFCMAPPEDITEM(#57,#117); 109 | #120= IFCSHAPEREPRESENTATION(#32,'Body','MappedRepresentation',(#119)); 110 | #121= IFCPRODUCTDEFINITIONSHAPE($,$,(#120)); 111 | #122= IFCREINFORCINGBAR('0bsov2wZL6tRRZmKy4vuUU',$,$,$,$,#123,#121,$,$,$,$,$,$,$); 112 | #123= IFCLOCALPLACEMENT($,#16); 113 | #124= IFCCARTESIANTRANSFORMATIONOPERATOR3D($,$,#125,1.0,$); 114 | #125= IFCCARTESIANPOINT((0.0,625.0,0.0)); 115 | #126= IFCMAPPEDITEM(#57,#124); 116 | #127= IFCSHAPEREPRESENTATION(#32,'Body','MappedRepresentation',(#126)); 117 | #128= IFCPRODUCTDEFINITIONSHAPE($,$,(#127)); 118 | #129= IFCREINFORCINGBAR('3qrgfIBb92ZegJTle7jou3',$,$,$,$,#130,#128,$,$,$,$,$,$,$); 119 | #130= IFCLOCALPLACEMENT($,#16); 120 | #131= IFCCARTESIANTRANSFORMATIONOPERATOR3D($,$,#132,1.0,$); 121 | #132= IFCCARTESIANPOINT((0.0,775.0,0.0)); 122 | #133= IFCMAPPEDITEM(#57,#131); 123 | #134= IFCSHAPEREPRESENTATION(#32,'Body','MappedRepresentation',(#133)); 124 | #135= IFCPRODUCTDEFINITIONSHAPE($,$,(#134)); 125 | #136= IFCREINFORCINGBAR('16m6R3JeT83fJPCze2yU$a',$,$,$,$,#137,#135,$,$,$,$,$,$,$); 126 | #137= IFCLOCALPLACEMENT($,#16); 127 | #138= IFCCARTESIANTRANSFORMATIONOPERATOR3D($,$,#139,1.0,$); 128 | #139= IFCCARTESIANPOINT((0.0,925.0,0.0)); 129 | #140= IFCMAPPEDITEM(#57,#138); 130 | #141= IFCSHAPEREPRESENTATION(#32,'Body','MappedRepresentation',(#140)); 131 | #142= IFCPRODUCTDEFINITIONSHAPE($,$,(#141)); 132 | #143= IFCREINFORCINGBAR('2SGIIYjSbCuu3HVwoLt1yh',$,$,$,$,#144,#142,$,$,$,$,$,$,$); 133 | #144= IFCLOCALPLACEMENT($,#16); 134 | #145= IFCCARTESIANTRANSFORMATIONOPERATOR3D($,$,#146,1.0,$); 135 | #146= IFCCARTESIANPOINT((0.0,1075.0,0.0)); 136 | #147= IFCMAPPEDITEM(#57,#145); 137 | #148= IFCSHAPEREPRESENTATION(#32,'Body','MappedRepresentation',(#147)); 138 | #149= IFCPRODUCTDEFINITIONSHAPE($,$,(#148)); 139 | #150= IFCREINFORCINGBAR('0PsLby6eL8_hVEt4QwK0lZ',$,$,$,$,#151,#149,$,$,$,$,$,$,$); 140 | #151= IFCLOCALPLACEMENT($,#16); 141 | #152= IFCCARTESIANTRANSFORMATIONOPERATOR3D($,$,#153,1.0,$); 142 | #153= IFCCARTESIANPOINT((0.0,1225.0,0.0)); 143 | #154= IFCMAPPEDITEM(#57,#152); 144 | #155= IFCSHAPEREPRESENTATION(#32,'Body','MappedRepresentation',(#154)); 145 | #156= IFCPRODUCTDEFINITIONSHAPE($,$,(#155)); 146 | #157= IFCREINFORCINGBAR('1325VJou5AngWp1djcV0hL',$,$,$,$,#158,#156,$,$,$,$,$,$,$); 147 | #158= IFCLOCALPLACEMENT($,#16); 148 | #159= IFCCARTESIANTRANSFORMATIONOPERATOR3D($,$,#160,1.0,$); 149 | #160= IFCCARTESIANPOINT((0.0,1375.0,0.0)); 150 | #161= IFCMAPPEDITEM(#57,#159); 151 | #162= IFCSHAPEREPRESENTATION(#32,'Body','MappedRepresentation',(#161)); 152 | #163= IFCPRODUCTDEFINITIONSHAPE($,$,(#162)); 153 | #164= IFCREINFORCINGBAR('20zj_$BcH74xRgR4bDrLNb',$,$,$,$,#165,#163,$,$,$,$,$,$,$); 154 | #165= IFCLOCALPLACEMENT($,#16); 155 | #166= IFCCARTESIANTRANSFORMATIONOPERATOR3D($,$,#167,1.0,$); 156 | #167= IFCCARTESIANPOINT((0.0,1525.0,0.0)); 157 | #168= IFCMAPPEDITEM(#57,#166); 158 | #169= IFCSHAPEREPRESENTATION(#32,'Body','MappedRepresentation',(#168)); 159 | #170= IFCPRODUCTDEFINITIONSHAPE($,$,(#169)); 160 | #171= IFCREINFORCINGBAR('3M4SfEMtHEJukgZR4hw$eV',$,$,$,$,#172,#170,$,$,$,$,$,$,$); 161 | #172= IFCLOCALPLACEMENT($,#16); 162 | #173= IFCCARTESIANTRANSFORMATIONOPERATOR3D($,$,#174,1.0,$); 163 | #174= IFCCARTESIANPOINT((0.0,1675.0,0.0)); 164 | #175= IFCMAPPEDITEM(#57,#173); 165 | #176= IFCSHAPEREPRESENTATION(#32,'Body','MappedRepresentation',(#175)); 166 | #177= IFCPRODUCTDEFINITIONSHAPE($,$,(#176)); 167 | #178= IFCREINFORCINGBAR('23BYnIaOLBZPVTrKVEDJiy',$,$,$,$,#179,#177,$,$,$,$,$,$,$); 168 | #179= IFCLOCALPLACEMENT($,#16); 169 | #180= IFCCARTESIANTRANSFORMATIONOPERATOR3D($,$,#181,1.0,$); 170 | #181= IFCCARTESIANPOINT((0.0,1825.0,0.0)); 171 | #182= IFCMAPPEDITEM(#57,#180); 172 | #183= IFCSHAPEREPRESENTATION(#32,'Body','MappedRepresentation',(#182)); 173 | #184= IFCPRODUCTDEFINITIONSHAPE($,$,(#183)); 174 | #185= IFCREINFORCINGBAR('2XulRByDL8ugyo4Uqv9rJr',$,$,$,$,#186,#184,$,$,$,$,$,$,$); 175 | #186= IFCLOCALPLACEMENT($,#16); 176 | #187= IFCCARTESIANTRANSFORMATIONOPERATOR3D($,$,#188,1.0,$); 177 | #188= IFCCARTESIANPOINT((0.0,1975.0,0.0)); 178 | #189= IFCMAPPEDITEM(#57,#187); 179 | #190= IFCSHAPEREPRESENTATION(#32,'Body','MappedRepresentation',(#189)); 180 | #191= IFCPRODUCTDEFINITIONSHAPE($,$,(#190)); 181 | #192= IFCREINFORCINGBAR('2xvQMSga96XOT3VeCS6ZsK',$,$,$,$,#193,#191,$,$,$,$,$,$,$); 182 | #193= IFCLOCALPLACEMENT($,#16); 183 | #194= IFCCARTESIANTRANSFORMATIONOPERATOR3D($,$,#195,1.0,$); 184 | #195= IFCCARTESIANPOINT((0.0,2125.0,0.0)); 185 | #196= IFCMAPPEDITEM(#57,#194); 186 | #197= IFCSHAPEREPRESENTATION(#32,'Body','MappedRepresentation',(#196)); 187 | #198= IFCPRODUCTDEFINITIONSHAPE($,$,(#197)); 188 | #199= IFCREINFORCINGBAR('2gUE6_w3j77f8YJGz_2RMl',$,$,$,$,#200,#198,$,$,$,$,$,$,$); 189 | #200= IFCLOCALPLACEMENT($,#16); 190 | #201= IFCCARTESIANTRANSFORMATIONOPERATOR3D($,$,#202,1.0,$); 191 | #202= IFCCARTESIANPOINT((0.0,2275.0,0.0)); 192 | #203= IFCMAPPEDITEM(#57,#201); 193 | #204= IFCSHAPEREPRESENTATION(#32,'Body','MappedRepresentation',(#203)); 194 | #205= IFCPRODUCTDEFINITIONSHAPE($,$,(#204)); 195 | #206= IFCREINFORCINGBAR('0J0dRL4tT93REAabfASDom',$,$,$,$,#207,#205,$,$,$,$,$,$,$); 196 | #207= IFCLOCALPLACEMENT($,#16); 197 | #208= IFCCARTESIANTRANSFORMATIONOPERATOR3D($,$,#209,1.0,$); 198 | #209= IFCCARTESIANPOINT((0.0,2425.0,0.0)); 199 | #210= IFCMAPPEDITEM(#57,#208); 200 | #211= IFCSHAPEREPRESENTATION(#32,'Body','MappedRepresentation',(#210)); 201 | #212= IFCPRODUCTDEFINITIONSHAPE($,$,(#211)); 202 | #213= IFCREINFORCINGBAR('048RJ151b81PqODsTMD4EA',$,$,$,$,#214,#212,$,$,$,$,$,$,$); 203 | #214= IFCLOCALPLACEMENT($,#16); 204 | #215= IFCCARTESIANTRANSFORMATIONOPERATOR3D($,$,#216,1.0,$); 205 | #216= IFCCARTESIANPOINT((0.0,2575.0,0.0)); 206 | #217= IFCMAPPEDITEM(#57,#215); 207 | #218= IFCSHAPEREPRESENTATION(#32,'Body','MappedRepresentation',(#217)); 208 | #219= IFCPRODUCTDEFINITIONSHAPE($,$,(#218)); 209 | #220= IFCREINFORCINGBAR('3hXx9Kb6b5bvjgr9pwvpz0',$,$,$,$,#221,#219,$,$,$,$,$,$,$); 210 | #221= IFCLOCALPLACEMENT($,#16); 211 | #222= IFCCARTESIANTRANSFORMATIONOPERATOR3D($,$,#223,1.0,$); 212 | #223= IFCCARTESIANPOINT((0.0,2725.0,0.0)); 213 | #224= IFCMAPPEDITEM(#57,#222); 214 | #225= IFCSHAPEREPRESENTATION(#32,'Body','MappedRepresentation',(#224)); 215 | #226= IFCPRODUCTDEFINITIONSHAPE($,$,(#225)); 216 | #227= IFCREINFORCINGBAR('0FmUHg8ZX0ZfY$0f5nkM2l',$,$,$,$,#228,#226,$,$,$,$,$,$,$); 217 | #228= IFCLOCALPLACEMENT($,#16); 218 | #229= IFCCARTESIANTRANSFORMATIONOPERATOR3D($,$,#230,1.0,$); 219 | #230= IFCCARTESIANPOINT((0.0,2875.0,0.0)); 220 | #231= IFCMAPPEDITEM(#57,#229); 221 | #232= IFCSHAPEREPRESENTATION(#32,'Body','MappedRepresentation',(#231)); 222 | #233= IFCPRODUCTDEFINITIONSHAPE($,$,(#232)); 223 | #234= IFCREINFORCINGBAR('2_zvpwRdvAuRiTlHXX$Qp8',$,$,$,$,#235,#233,$,$,$,$,$,$,$); 224 | #235= IFCLOCALPLACEMENT($,#16); 225 | #236= IFCCARTESIANTRANSFORMATIONOPERATOR3D($,$,#237,1.0,$); 226 | #237= IFCCARTESIANPOINT((0.0,3025.0,0.0)); 227 | #238= IFCMAPPEDITEM(#57,#236); 228 | #239= IFCSHAPEREPRESENTATION(#32,'Body','MappedRepresentation',(#238)); 229 | #240= IFCPRODUCTDEFINITIONSHAPE($,$,(#239)); 230 | #241= IFCREINFORCINGBAR('1mhkXHKfX6PxdS2vZn17wX',$,$,$,$,#242,#240,$,$,$,$,$,$,$); 231 | #242= IFCLOCALPLACEMENT($,#16); 232 | #243= IFCCARTESIANTRANSFORMATIONOPERATOR3D($,$,#244,1.0,$); 233 | #244= IFCCARTESIANPOINT((0.0,3175.0,0.0)); 234 | #245= IFCMAPPEDITEM(#57,#243); 235 | #246= IFCSHAPEREPRESENTATION(#32,'Body','MappedRepresentation',(#245)); 236 | #247= IFCPRODUCTDEFINITIONSHAPE($,$,(#246)); 237 | #248= IFCREINFORCINGBAR('0CeIQzUqP5qOOeAjMtH2OX',$,$,$,$,#249,#247,$,$,$,$,$,$,$); 238 | #249= IFCLOCALPLACEMENT($,#16); 239 | #250= IFCCARTESIANTRANSFORMATIONOPERATOR3D($,$,#251,1.0,$); 240 | #251= IFCCARTESIANPOINT((0.0,3325.0,0.0)); 241 | #252= IFCMAPPEDITEM(#57,#250); 242 | #253= IFCSHAPEREPRESENTATION(#32,'Body','MappedRepresentation',(#252)); 243 | #254= IFCPRODUCTDEFINITIONSHAPE($,$,(#253)); 244 | #255= IFCREINFORCINGBAR('3shtoAQL5BAhvwA_1Ph$lC',$,$,$,$,#256,#254,$,$,$,$,$,$,$); 245 | #256= IFCLOCALPLACEMENT($,#16); 246 | #257= IFCCARTESIANTRANSFORMATIONOPERATOR3D($,$,#258,1.0,$); 247 | #258= IFCCARTESIANPOINT((0.0,3475.0,0.0)); 248 | #259= IFCMAPPEDITEM(#57,#257); 249 | #260= IFCSHAPEREPRESENTATION(#32,'Body','MappedRepresentation',(#259)); 250 | #261= IFCPRODUCTDEFINITIONSHAPE($,$,(#260)); 251 | #262= IFCREINFORCINGBAR('22j4RNKqD2IBRDGig5eaCF',$,$,$,$,#263,#261,$,$,$,$,$,$,$); 252 | #263= IFCLOCALPLACEMENT($,#16); 253 | #264= IFCCARTESIANTRANSFORMATIONOPERATOR3D($,$,#265,1.0,$); 254 | #265= IFCCARTESIANPOINT((0.0,3625.0,0.0)); 255 | #266= IFCMAPPEDITEM(#57,#264); 256 | #267= IFCSHAPEREPRESENTATION(#32,'Body','MappedRepresentation',(#266)); 257 | #268= IFCPRODUCTDEFINITIONSHAPE($,$,(#267)); 258 | #269= IFCREINFORCINGBAR('3Wvu6qGJH4ChhTV3pl9CGh',$,$,$,$,#270,#268,$,$,$,$,$,$,$); 259 | #270= IFCLOCALPLACEMENT($,#16); 260 | #271= IFCCARTESIANTRANSFORMATIONOPERATOR3D($,$,#272,1.0,$); 261 | #272= IFCCARTESIANPOINT((0.0,3775.0,0.0)); 262 | #273= IFCMAPPEDITEM(#57,#271); 263 | #274= IFCSHAPEREPRESENTATION(#32,'Body','MappedRepresentation',(#273)); 264 | #275= IFCPRODUCTDEFINITIONSHAPE($,$,(#274)); 265 | #276= IFCREINFORCINGBAR('37Qrf07Iz3tRMbSxEA4ynH',$,$,$,$,#277,#275,$,$,$,$,$,$,$); 266 | #277= IFCLOCALPLACEMENT($,#16); 267 | #278= IFCCARTESIANTRANSFORMATIONOPERATOR3D($,$,#279,1.0,$); 268 | #279= IFCCARTESIANPOINT((0.0,3925.0,0.0)); 269 | #280= IFCMAPPEDITEM(#57,#278); 270 | #281= IFCSHAPEREPRESENTATION(#32,'Body','MappedRepresentation',(#280)); 271 | #282= IFCPRODUCTDEFINITIONSHAPE($,$,(#281)); 272 | #283= IFCREINFORCINGBAR('2gelqZ1Wv8BvCy6TstVGkd',$,$,$,$,#284,#282,$,$,$,$,$,$,$); 273 | #284= IFCLOCALPLACEMENT($,#16); 274 | #285= IFCCARTESIANTRANSFORMATIONOPERATOR3D($,$,#286,1.0,$); 275 | #286= IFCCARTESIANPOINT((0.0,4075.0,0.0)); 276 | #287= IFCMAPPEDITEM(#57,#285); 277 | #288= IFCSHAPEREPRESENTATION(#32,'Body','MappedRepresentation',(#287)); 278 | #289= IFCPRODUCTDEFINITIONSHAPE($,$,(#288)); 279 | #290= IFCREINFORCINGBAR('1Q21dHc_X7eRppCHrT69Vb',$,$,$,$,#291,#289,$,$,$,$,$,$,$); 280 | #291= IFCLOCALPLACEMENT($,#16); 281 | #292= IFCCARTESIANTRANSFORMATIONOPERATOR3D($,$,#293,1.0,$); 282 | #293= IFCCARTESIANPOINT((0.0,4225.0,0.0)); 283 | #294= IFCMAPPEDITEM(#57,#292); 284 | #295= IFCSHAPEREPRESENTATION(#32,'Body','MappedRepresentation',(#294)); 285 | #296= IFCPRODUCTDEFINITIONSHAPE($,$,(#295)); 286 | #297= IFCREINFORCINGBAR('0e6Wc08NLD59ueqCAK1gxp',$,$,$,$,#298,#296,$,$,$,$,$,$,$); 287 | #298= IFCLOCALPLACEMENT($,#16); 288 | #299= IFCCARTESIANTRANSFORMATIONOPERATOR3D($,$,#300,1.0,$); 289 | #300= IFCCARTESIANPOINT((0.0,4375.0,0.0)); 290 | #301= IFCMAPPEDITEM(#57,#299); 291 | #302= IFCSHAPEREPRESENTATION(#32,'Body','MappedRepresentation',(#301)); 292 | #303= IFCPRODUCTDEFINITIONSHAPE($,$,(#302)); 293 | #304= IFCREINFORCINGBAR('3xdMOSZMj3cBOV_QTbXZha',$,$,$,$,#305,#303,$,$,$,$,$,$,$); 294 | #305= IFCLOCALPLACEMENT($,#16); 295 | #306= IFCCARTESIANTRANSFORMATIONOPERATOR3D($,$,#307,1.0,$); 296 | #307= IFCCARTESIANPOINT((0.0,4525.0,0.0)); 297 | #308= IFCMAPPEDITEM(#57,#306); 298 | #309= IFCSHAPEREPRESENTATION(#32,'Body','MappedRepresentation',(#308)); 299 | #310= IFCPRODUCTDEFINITIONSHAPE($,$,(#309)); 300 | #311= IFCREINFORCINGBAR('1r_U9JTkHDWwkv_nfWFHVe',$,$,$,$,#312,#310,$,$,$,$,$,$,$); 301 | #312= IFCLOCALPLACEMENT($,#16); 302 | #313= IFCCARTESIANTRANSFORMATIONOPERATOR3D($,$,#314,1.0,$); 303 | #314= IFCCARTESIANPOINT((0.0,4675.0,0.0)); 304 | #315= IFCMAPPEDITEM(#57,#313); 305 | #316= IFCSHAPEREPRESENTATION(#32,'Body','MappedRepresentation',(#315)); 306 | #317= IFCPRODUCTDEFINITIONSHAPE($,$,(#316)); 307 | #318= IFCREINFORCINGBAR('29I7_S2fT3WRD4zPH4YjmD',$,$,$,$,#319,#317,$,$,$,$,$,$,$); 308 | #319= IFCLOCALPLACEMENT($,#16); 309 | #320= IFCCARTESIANTRANSFORMATIONOPERATOR3D($,$,#321,1.0,$); 310 | #321= IFCCARTESIANPOINT((0.0,4825.0,0.0)); 311 | #322= IFCMAPPEDITEM(#57,#320); 312 | #323= IFCSHAPEREPRESENTATION(#32,'Body','MappedRepresentation',(#322)); 313 | #324= IFCPRODUCTDEFINITIONSHAPE($,$,(#323)); 314 | #325= IFCREINFORCINGBAR('0$ciATTaP17PJMHQD0$N3Y',$,$,$,$,#326,#324,$,$,$,$,$,$,$); 315 | #326= IFCLOCALPLACEMENT($,#16); 316 | #327= IFCCARTESIANTRANSFORMATIONOPERATOR3D($,$,#328,1.0,$); 317 | #328= IFCCARTESIANPOINT((0.0,4975.0,0.0)); 318 | #329= IFCMAPPEDITEM(#57,#327); 319 | #330= IFCSHAPEREPRESENTATION(#32,'Body','MappedRepresentation',(#329)); 320 | #331= IFCPRODUCTDEFINITIONSHAPE($,$,(#330)); 321 | #332= IFCREINFORCINGBAR('1irBeCCUf82wdGg7qTPCbW',$,$,$,$,#333,#331,$,$,$,$,$,$,$); 322 | #333= IFCLOCALPLACEMENT($,#16); 323 | ENDSEC; 324 | 325 | END-ISO-10303-21; 326 | 327 | -------------------------------------------------------------------------------- /Examples/ReinforcingBar.ifc: -------------------------------------------------------------------------------- 1 | ISO-10303-21; 2 | HEADER; 3 | FILE_DESCRIPTION(('ViewDefinition [DesignTransferView_V1]'),'2;1'); 4 | FILE_NAME( 5 | /* name */ 'C:\\My Work\\Geometry Gym\\documents\\building smart\\github\\ifcscript\\examples\\ReinforcingBar.ifc', 6 | /* time_stamp */ '2017-06-27T13:32:40', 7 | /* author */ ('jonm'), 8 | /* organization */ ('Geometry Gym'), 9 | /* preprocessor_version */ 'GeometryGymIFC v0.0.15.0 by Geometry Gym Pty Ltd built 2017-06-27T02:48:24', 10 | /* originating_system */ 'IFCExamples v0.0.1.0', 11 | /* authorization */ 'None'); 12 | 13 | FILE_SCHEMA (('IFC4')); 14 | ENDSEC; 15 | 16 | DATA; 17 | #10= IFCCARTESIANPOINT((0.0,0.0,0.0)); 18 | #11= IFCAXIS2PLACEMENT3D(#10,$,$); 19 | #12= IFCLOCALPLACEMENT($,#11); 20 | /* defines the default building (as required as the minimum spatial element) */ 21 | #13= IFCBUILDING('39t4Pu3nTC4ekXYRIHJB9W',$,'IfcBuilding',$,$,#12,$,$,$,$,$,#18); 22 | #14= IFCRELCONTAINEDINSPATIALSTRUCTURE('3Sa3dTJGn0H8TQIGiuGQd5',$,'Building','Building Container for Elements',(#66),#13); 23 | #15= IFCCARTESIANPOINT((0.0,0.0,0.0)); 24 | #16= IFCAXIS2PLACEMENT3D(#15,$,$); 25 | #18= IFCPOSTALADDRESS($,$,$,$,('Unknown'),$,'Unknown',$,'Unknown','Unknown'); 26 | /* general entities required for all IFC sets, defining the context for the exchange */ 27 | #20= IFCPROJECT('0$WU4A9R19$vKWO$AdOnKA',$,'IfcProject',$,$,$,$,(#28),#21); 28 | #21= IFCUNITASSIGNMENT((#22,#23,#24,#25,#26)); 29 | #22= IFCSIUNIT(*,.LENGTHUNIT.,.MILLI.,.METRE.); 30 | #23= IFCSIUNIT(*,.AREAUNIT.,$,.SQUARE_METRE.); 31 | #24= IFCSIUNIT(*,.VOLUMEUNIT.,$,.CUBIC_METRE.); 32 | #25= IFCSIUNIT(*,.PLANEANGLEUNIT.,$,.RADIAN.); 33 | #26= IFCSIUNIT(*,.TIMEUNIT.,$,.SECOND.); 34 | #27= IFCRELAGGREGATES('091a6ewbvCMQ2Vyiqspa7a',$,'Project Container','Project Container for Buildings',#20,(#13)); 35 | #28= IFCGEOMETRICREPRESENTATIONCONTEXT($,'Model',3,0.0001,#30,#31); 36 | #29= IFCCARTESIANPOINT((0.0,0.0,0.0)); 37 | #30= IFCAXIS2PLACEMENT3D(#29,$,$); 38 | #31= IFCDIRECTION((0.0,1.0)); 39 | #32= IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Body','Model',*,*,*,*,#28,$,.MODEL_VIEW.,$); 40 | /* Example data for ReinforcingBar */ 41 | #50= IFCDOCUMENTREFERENCE($,'MyCodeISO3766','MyReinforcementCode',$,$); 42 | #51= IFCRELASSOCIATESDOCUMENT('1R7R97$uLAAv4wci$KGwn8',$,$,$,(#20),#50); 43 | #52= IFCMATERIAL('ReinforcingSteel',$,$); 44 | #53= IFCRELASSOCIATESMATERIAL('3gfVO40P5EfQyKZ_bF0R$6',$,'MatAssoc','Material Associates',(#59),#52); 45 | #54= IFCCARTESIANPOINTLIST3D(((-69.0,0.0,-122.0),(-69.0,0.0,-79.0),(-54.94113,0.0,-45.05887),(-21.0,0.0,-31.0),(21.0,0.0,-31.0),(54.94113,0.0,-45.05887),(69.0,0.0,-79.0),(69.0,0.0,-321.0),(54.99398,1.21791,-354.94113),(21.18045,4.15822,-369.0),(-20.66165,7.79667,-369.0),(-54.47518,10.73697,-354.94113),(-68.4812,11.95489,-321.0),(-69.0,12.0,-79.0),(-54.94113,12.0,-45.05887),(-21.0,12.0,-31.0),(21.0,12.0,-31.0),(54.94113,12.0,-45.05887),(69.0,12.0,-79.0),(69.0,12.0,-122.0))); 46 | #55= IFCINDEXEDPOLYCURVE(#54,(IFCLINEINDEX((1,2)),IFCARCINDEX((2,3,4)),IFCLINEINDEX((4,5)),IFCARCINDEX((5,6,7)),IFCLINEINDEX((7,8)),IFCARCINDEX((8,9,10)),IFCLINEINDEX((10,11)),IFCARCINDEX((11,12,13)),IFCLINEINDEX((13,14)),IFCARCINDEX((14,15,16)),IFCLINEINDEX((16,17)),IFCARCINDEX((17,18,19)),IFCLINEINDEX((19,20))),$); 47 | #56= IFCSWEPTDISKSOLID(#55,6.0,$,$,$); 48 | #57= IFCREPRESENTATIONMAP(#16,#58); 49 | #58= IFCSHAPEREPRESENTATION(#32,'Body','SolidModel',(#56)); 50 | #59= IFCREINFORCINGBARTYPE('0jMRtfHYXE7u4s_CQ2uVE9',$,'12 Diameter Ligature',$,$,$,(#57),$,$,.LIGATURE.,12.0,113.097335529233,1150.0,.TEXTURED.,$,$); 51 | #60= IFCRELDEFINESBYTYPE('1iAfl2ERbFmwi7uniy1H7j',$,'NameNotAssigned',$,(#66),#59); 52 | #61= IFCRELDECLARES('1Cjr05W9T0fx0M3_mdVqMd',$,$,$,#20,(#59)); 53 | #62= IFCCARTESIANTRANSFORMATIONOPERATOR3D($,$,#15,1.0,$); 54 | #63= IFCMAPPEDITEM(#57,#62); 55 | #64= IFCSHAPEREPRESENTATION(#32,'Body','MappedRepresentation',(#63)); 56 | #65= IFCPRODUCTDEFINITIONSHAPE($,$,(#64)); 57 | #66= IFCREINFORCINGBAR('0WUveBtSTDbunNjDLsuRn$',$,$,$,$,#67,#65,$,$,$,$,$,$,$); 58 | #67= IFCLOCALPLACEMENT(#12,#16); 59 | ENDSEC; 60 | 61 | END-ISO-10303-21; 62 | 63 | -------------------------------------------------------------------------------- /Examples/Slab.ifc: -------------------------------------------------------------------------------- 1 | ISO-10303-21; 2 | HEADER; 3 | FILE_DESCRIPTION(('ViewDefinition [DesignTransferView_V1]'),'2;1'); 4 | FILE_NAME( 5 | /* name */ 'C:\\My Work\\Geometry Gym\\documents\\building smart\\github\\ifcscript\\examples\\Slab.ifc', 6 | /* time_stamp */ '2017-06-27T13:32:39', 7 | /* author */ ('jonm'), 8 | /* organization */ ('Geometry Gym'), 9 | /* preprocessor_version */ 'GeometryGymIFC v0.0.15.0 by Geometry Gym Pty Ltd built 2017-06-27T02:48:24', 10 | /* originating_system */ 'IFCExamples v0.0.1.0', 11 | /* authorization */ 'None'); 12 | 13 | FILE_SCHEMA (('IFC4')); 14 | ENDSEC; 15 | 16 | DATA; 17 | #10= IFCCARTESIANPOINT((0.0,0.0,0.0)); 18 | #11= IFCAXIS2PLACEMENT3D(#10,$,$); 19 | #12= IFCLOCALPLACEMENT($,#11); 20 | /* defines the default building (as required as the minimum spatial element) */ 21 | #13= IFCBUILDING('39t4Pu3nTC4ekXYRIHJB9W',$,'IfcBuilding',$,$,#12,$,$,$,$,$,#18); 22 | #14= IFCRELCONTAINEDINSPATIALSTRUCTURE('3Sa3dTJGn0H8TQIGiuGQd5',$,'Building','Building Container for Elements',(#311),#13); 23 | #15= IFCCARTESIANPOINT((0.0,0.0,0.0)); 24 | #16= IFCAXIS2PLACEMENT3D(#15,$,$); 25 | #18= IFCPOSTALADDRESS($,$,$,$,('Unknown'),$,'Unknown',$,'Unknown','Unknown'); 26 | /* general entities required for all IFC sets, defining the context for the exchange */ 27 | #20= IFCPROJECT('0$WU4A9R19$vKWO$AdOnKA',$,'IfcProject',$,$,$,$,(#28),#21); 28 | #21= IFCUNITASSIGNMENT((#22,#23,#24,#25,#26)); 29 | #22= IFCSIUNIT(*,.LENGTHUNIT.,.MILLI.,.METRE.); 30 | #23= IFCSIUNIT(*,.AREAUNIT.,$,.SQUARE_METRE.); 31 | #24= IFCSIUNIT(*,.VOLUMEUNIT.,$,.CUBIC_METRE.); 32 | #25= IFCSIUNIT(*,.PLANEANGLEUNIT.,$,.RADIAN.); 33 | #26= IFCSIUNIT(*,.TIMEUNIT.,$,.SECOND.); 34 | #27= IFCRELAGGREGATES('091a6ewbvCMQ2Vyiqspa7a',$,'Project Container','Project Container for Buildings',#20,(#13)); 35 | #28= IFCGEOMETRICREPRESENTATIONCONTEXT($,'Model',3,0.0001,#30,#31); 36 | #29= IFCCARTESIANPOINT((0.0,0.0,0.0)); 37 | #30= IFCAXIS2PLACEMENT3D(#29,$,$); 38 | #31= IFCDIRECTION((0.0,1.0)); 39 | #32= IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Body','Model',*,*,*,*,#28,$,.MODEL_VIEW.,$); 40 | /* Example data for Slab */ 41 | #50= IFCMATERIAL('Concrete','Concrete',$); 42 | #52= IFCMATERIALLAYER(#50,200.0,.F.,'Core',$,$,$); 43 | #54= IFCMATERIALLAYERSET((#52),'200mm Concrete',$); 44 | #55= IFCRELASSOCIATESMATERIAL('2l_enLhI93reVwnim9gXUq',$,'MatAssoc','Material Associates',(#300),#54); 45 | #300= IFCSLABTYPE('0RSW$KKbzCZ9QaSm3GoEan',$,'200mm Concrete',$,$,$,$,$,$,.FLOOR.); 46 | #301= IFCRELDEFINESBYTYPE('3wwDcmW5T3HfafURQewdD0',$,'NameNotAssigned',$,(#311),#300); 47 | #302= IFCRELDECLARES('1Cjr05W9T0fx0M3_mdVqMd',$,$,$,#20,(#300)); 48 | #303= IFCCARTESIANPOINTLIST2D(((0.0,0.0),(1000.0,0.0),(1400.0,2000.0),(1000.0,4000.0),(0.0,4000.0),(-400.0,2000.0))); 49 | #304= IFCINDEXEDPOLYCURVE(#303,(IFCLINEINDEX((1,2)),IFCARCINDEX((2,3,4)),IFCLINEINDEX((4,5)),IFCARCINDEX((5,6,1))),$); 50 | #305= IFCMATERIALLAYERSETUSAGE(#54,.AXIS3.,.NEGATIVE.,0.0,$); 51 | #306= IFCRELASSOCIATESMATERIAL('3ESAzibgr9BvK9M75iV84w',$,'MatAssoc','Material Associates',(#311),#305); 52 | #307= IFCCARTESIANPOINT((0.0,0.0,0.0)); 53 | #308= IFCAXIS2PLACEMENT3D(#307,$,$); 54 | #309= IFCARBITRARYCLOSEDPROFILEDEF(.AREA.,'Slab Perimeter',#304); 55 | #310= IFCLOCALPLACEMENT(#12,#308); 56 | #311= IFCSLABSTANDARDCASE('1wAj$J2Az2V8wnBiVYd3bU',$,$,$,$,#310,#315,$,$); 57 | #312= IFCDIRECTION((0.0,0.0,-1.0)); 58 | #313= IFCEXTRUDEDAREASOLID(#309,$,#312,200.0); 59 | #314= IFCSHAPEREPRESENTATION(#32,'Body','SweptSolid',(#313)); 60 | #315= IFCPRODUCTDEFINITIONSHAPE($,$,(#314)); 61 | ENDSEC; 62 | 63 | END-ISO-10303-21; 64 | 65 | -------------------------------------------------------------------------------- /Examples/SlabOpenings.ifc: -------------------------------------------------------------------------------- 1 | ISO-10303-21; 2 | HEADER; 3 | FILE_DESCRIPTION(('ViewDefinition [DesignTransferView_V1]'),'2;1'); 4 | FILE_NAME( 5 | /* name */ 'C:\\My Work\\Geometry Gym\\documents\\building smart\\github\\ifcscript\\examples\\SlabOpenings.ifc', 6 | /* time_stamp */ '2017-06-27T13:32:39', 7 | /* author */ ('jonm'), 8 | /* organization */ ('Geometry Gym'), 9 | /* preprocessor_version */ 'GeometryGymIFC v0.0.15.0 by Geometry Gym Pty Ltd built 2017-06-27T02:48:24', 10 | /* originating_system */ 'IFCExamples v0.0.1.0', 11 | /* authorization */ 'None'); 12 | 13 | FILE_SCHEMA (('IFC4')); 14 | ENDSEC; 15 | 16 | DATA; 17 | #10= IFCCARTESIANPOINT((0.0,0.0,0.0)); 18 | #11= IFCAXIS2PLACEMENT3D(#10,$,$); 19 | #12= IFCLOCALPLACEMENT($,#11); 20 | /* defines the default building (as required as the minimum spatial element) */ 21 | #13= IFCBUILDING('39t4Pu3nTC4ekXYRIHJB9W',$,'IfcBuilding',$,$,#12,$,$,$,$,$,#18); 22 | #14= IFCRELCONTAINEDINSPATIALSTRUCTURE('3Sa3dTJGn0H8TQIGiuGQd5',$,'Building','Building Container for Elements',(#311),#13); 23 | #15= IFCCARTESIANPOINT((0.0,0.0,0.0)); 24 | #16= IFCAXIS2PLACEMENT3D(#15,$,$); 25 | #18= IFCPOSTALADDRESS($,$,$,$,('Unknown'),$,'Unknown',$,'Unknown','Unknown'); 26 | /* general entities required for all IFC sets, defining the context for the exchange */ 27 | #20= IFCPROJECT('0$WU4A9R19$vKWO$AdOnKA',$,'IfcProject',$,$,$,$,(#28),#21); 28 | #21= IFCUNITASSIGNMENT((#22,#23,#24,#25,#26)); 29 | #22= IFCSIUNIT(*,.LENGTHUNIT.,.MILLI.,.METRE.); 30 | #23= IFCSIUNIT(*,.AREAUNIT.,$,.SQUARE_METRE.); 31 | #24= IFCSIUNIT(*,.VOLUMEUNIT.,$,.CUBIC_METRE.); 32 | #25= IFCSIUNIT(*,.PLANEANGLEUNIT.,$,.RADIAN.); 33 | #26= IFCSIUNIT(*,.TIMEUNIT.,$,.SECOND.); 34 | #27= IFCRELAGGREGATES('091a6ewbvCMQ2Vyiqspa7a',$,'Project Container','Project Container for Buildings',#20,(#13)); 35 | #28= IFCGEOMETRICREPRESENTATIONCONTEXT($,'Model',3,0.0001,#30,#31); 36 | #29= IFCCARTESIANPOINT((0.0,0.0,0.0)); 37 | #30= IFCAXIS2PLACEMENT3D(#29,$,$); 38 | #31= IFCDIRECTION((0.0,1.0)); 39 | #32= IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Body','Model',*,*,*,*,#28,$,.MODEL_VIEW.,$); 40 | /* Example data for SlabOpenings */ 41 | #50= IFCMATERIAL('Concrete','Concrete',$); 42 | #52= IFCMATERIALLAYER(#50,200.0,.F.,'Core',$,$,$); 43 | #54= IFCMATERIALLAYERSET((#52),'200mm Concrete',$); 44 | #55= IFCRELASSOCIATESMATERIAL('2l_enLhI93reVwnim9gXUq',$,'MatAssoc','Material Associates',(#300),#54); 45 | #300= IFCSLABTYPE('0RSW$KKbzCZ9QaSm3GoEan',$,'200mm Concrete',$,$,$,$,$,$,.FLOOR.); 46 | #301= IFCRELDEFINESBYTYPE('3wwDcmW5T3HfafURQewdD0',$,'NameNotAssigned',$,(#311),#300); 47 | #302= IFCRELDECLARES('1Cjr05W9T0fx0M3_mdVqMd',$,$,$,#20,(#300)); 48 | #303= IFCCARTESIANPOINTLIST2D(((0.0,0.0),(1000.0,0.0),(1400.0,2000.0),(1000.0,4000.0),(0.0,4000.0),(-400.0,2000.0))); 49 | #304= IFCINDEXEDPOLYCURVE(#303,(IFCLINEINDEX((1,2)),IFCARCINDEX((2,3,4)),IFCLINEINDEX((4,5)),IFCARCINDEX((5,6,1))),$); 50 | #305= IFCMATERIALLAYERSETUSAGE(#54,.AXIS3.,.NEGATIVE.,0.0,$); 51 | #306= IFCRELASSOCIATESMATERIAL('3ESAzibgr9BvK9M75iV84w',$,'MatAssoc','Material Associates',(#311),#305); 52 | #307= IFCCARTESIANPOINT((0.0,0.0,0.0)); 53 | #308= IFCAXIS2PLACEMENT3D(#307,$,$); 54 | #309= IFCARBITRARYCLOSEDPROFILEDEF(.AREA.,'Slab Perimeter',#304); 55 | #310= IFCLOCALPLACEMENT(#12,#308); 56 | #311= IFCSLABSTANDARDCASE('1wAj$J2Az2V8wnBiVYd3bU',$,$,$,$,#310,#315,$,$); 57 | #312= IFCDIRECTION((0.0,0.0,-1.0)); 58 | #313= IFCEXTRUDEDAREASOLID(#309,$,#312,200.0); 59 | #314= IFCSHAPEREPRESENTATION(#32,'Body','SweptSolid',(#313)); 60 | #315= IFCPRODUCTDEFINITIONSHAPE($,$,(#314)); 61 | #316= IFCCIRCLEPROFILEDEF(.AREA.,'100DIA',$,50.0); 62 | #317= IFCCARTESIANPOINT((100.0,300.0,-200.0)); 63 | #318= IFCAXIS2PLACEMENT3D(#317,$,$); 64 | #319= IFCDIRECTION((0.0,0.0,1.0)); 65 | #320= IFCEXTRUDEDAREASOLID(#316,#318,#319,200.0); 66 | #321= IFCSHAPEREPRESENTATION(#32,'Body','SweptSolid',(#320)); 67 | #322= IFCPRODUCTDEFINITIONSHAPE($,$,(#321)); 68 | #323= IFCOPENINGSTANDARDCASE('15RSTHd8nFVQWMRE7og7sd',$,'Opening',$,$,#325,#322,$,$); 69 | #324= IFCAXIS2PLACEMENT3D(#15,$,$); 70 | #325= IFCLOCALPLACEMENT(#310,#324); 71 | #326= IFCRELVOIDSELEMENT('0gqEDsyEzFXvY$fc_rUxyO',$,$,$,#311,#323); 72 | #327= IFCRECTANGLEPROFILEDEF(.AREA.,'RecessRectangle',$,500.0,1000.0); 73 | #328= IFCCARTESIANPOINT((500.0,1000.0,-50.0)); 74 | #329= IFCAXIS2PLACEMENT3D(#328,$,$); 75 | #330= IFCDIRECTION((0.0,0.0,1.0)); 76 | #331= IFCEXTRUDEDAREASOLID(#327,#329,#330,50.0); 77 | #332= IFCSHAPEREPRESENTATION(#32,'Body','SweptSolid',(#331)); 78 | #333= IFCPRODUCTDEFINITIONSHAPE($,$,(#332)); 79 | #334= IFCOPENINGELEMENT('0w93HZ19H2D99zbAVNb4o2',$,'Recess',$,$,#336,#333,$,.RECESS.); 80 | #335= IFCAXIS2PLACEMENT3D(#15,$,$); 81 | #336= IFCLOCALPLACEMENT(#310,#335); 82 | #337= IFCRELVOIDSELEMENT('3iUkij4q1DmxlXuHzQVJaM',$,$,$,#311,#334); 83 | ENDSEC; 84 | 85 | END-ISO-10303-21; 86 | 87 | -------------------------------------------------------------------------------- /Examples/Wall.ifc: -------------------------------------------------------------------------------- 1 | ISO-10303-21; 2 | HEADER; 3 | FILE_DESCRIPTION(('ViewDefinition [DesignTransferView_V1]'),'2;1'); 4 | FILE_NAME( 5 | /* name */ 'C:\\My Work\\Geometry Gym\\documents\\building smart\\github\\ifcscript\\examples\\Wall.ifc', 6 | /* time_stamp */ '2017-06-27T13:32:39', 7 | /* author */ ('jonm'), 8 | /* organization */ ('Geometry Gym'), 9 | /* preprocessor_version */ 'GeometryGymIFC v0.0.15.0 by Geometry Gym Pty Ltd built 2017-06-27T02:48:24', 10 | /* originating_system */ 'IFCExamples v0.0.1.0', 11 | /* authorization */ 'None'); 12 | 13 | FILE_SCHEMA (('IFC4')); 14 | ENDSEC; 15 | 16 | DATA; 17 | #10= IFCCARTESIANPOINT((0.0,0.0,0.0)); 18 | #11= IFCAXIS2PLACEMENT3D(#10,$,$); 19 | #12= IFCLOCALPLACEMENT($,#11); 20 | /* defines the default building (as required as the minimum spatial element) */ 21 | #13= IFCBUILDING('39t4Pu3nTC4ekXYRIHJB9W',$,'IfcBuilding',$,$,#12,$,$,$,$,$,#18); 22 | #14= IFCRELCONTAINEDINSPATIALSTRUCTURE('3Sa3dTJGn0H8TQIGiuGQd5',$,'Building','Building Container for Elements',(#307),#13); 23 | #15= IFCCARTESIANPOINT((0.0,0.0,0.0)); 24 | #16= IFCAXIS2PLACEMENT3D(#15,$,$); 25 | #18= IFCPOSTALADDRESS($,$,$,$,('Unknown'),$,'Unknown',$,'Unknown','Unknown'); 26 | /* general entities required for all IFC sets, defining the context for the exchange */ 27 | #20= IFCPROJECT('0$WU4A9R19$vKWO$AdOnKA',$,'IfcProject',$,$,$,$,(#28),#21); 28 | #21= IFCUNITASSIGNMENT((#22,#23,#24,#25,#26)); 29 | #22= IFCSIUNIT(*,.LENGTHUNIT.,.MILLI.,.METRE.); 30 | #23= IFCSIUNIT(*,.AREAUNIT.,$,.SQUARE_METRE.); 31 | #24= IFCSIUNIT(*,.VOLUMEUNIT.,$,.CUBIC_METRE.); 32 | #25= IFCSIUNIT(*,.PLANEANGLEUNIT.,$,.RADIAN.); 33 | #26= IFCSIUNIT(*,.TIMEUNIT.,$,.SECOND.); 34 | #27= IFCRELAGGREGATES('091a6ewbvCMQ2Vyiqspa7a',$,'Project Container','Project Container for Buildings',#20,(#13)); 35 | #28= IFCGEOMETRICREPRESENTATIONCONTEXT($,'Model',3,0.0001,#30,#31); 36 | #29= IFCCARTESIANPOINT((0.0,0.0,0.0)); 37 | #30= IFCAXIS2PLACEMENT3D(#29,$,$); 38 | #31= IFCDIRECTION((0.0,1.0)); 39 | #32= IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Body','Model',*,*,*,*,#28,$,.MODEL_VIEW.,$); 40 | /* Example data for Wall */ 41 | #50= IFCMATERIAL('Masonry - Brick - Brown',$,$); 42 | #52= IFCMATERIAL('Masonry',$,$); 43 | #54= IFCMATERIALLAYER(#50,110.0,.F.,'Finish',$,$,$); 44 | #56= IFCMATERIALLAYER($,50.0,.T.,'Air Infiltration Barrier',$,$,$); 45 | #58= IFCMATERIALLAYER(#52,110.0,.F.,'Core',$,$,$); 46 | #60= IFCMATERIALLAYERSET((#54,#56,#58),'Double Brick - 270',$); 47 | #61= IFCRELASSOCIATESMATERIAL('36U74BIPDD89cYkx9bkV$Y',$,'MatAssoc','Material Associates',(#300),#60); 48 | #300= IFCWALLTYPE('2aG1gZj7PD2PztLOx2$IVX',$,'Double Brick - 270',$,$,$,$,$,$,.NOTDEFINED.); 49 | #302= IFCMATERIALLAYERSETUSAGE(#60,.AXIS2.,.POSITIVE.,-135.0,$); 50 | #303= IFCRELASSOCIATESMATERIAL('1BYoVhjtLADPUZYzipA826',$,'MatAssoc','Material Associates',(#307),#302); 51 | #304= IFCCARTESIANPOINT((0.0,0.0,0.0)); 52 | #305= IFCAXIS2PLACEMENT3D(#304,$,$); 53 | #306= IFCLOCALPLACEMENT(#12,#305); 54 | #307= IFCWALLSTANDARDCASE('0DWgwt6o1FOx7466fPk$jl',$,$,$,$,#306,#319,$,$); 55 | #308= IFCCARTESIANPOINT((0.0,0.0,0.0)); 56 | #309= IFCCARTESIANPOINT((5000.0,0.0,0.0)); 57 | #310= IFCPOLYLINE((#308,#309)); 58 | #311= IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Axis','Model',*,*,*,*,#28,$,.MODEL_VIEW.,$); 59 | #312= IFCSHAPEREPRESENTATION(#311,'Axis','Curve3D',(#310)); 60 | #313= IFCRECTANGLEPROFILEDEF(.AREA.,$,$,5000.0,270.0); 61 | #314= IFCCARTESIANPOINT((2500.0,0.0,0.0)); 62 | #315= IFCAXIS2PLACEMENT3D(#314,$,$); 63 | #316= IFCEXTRUDEDAREASOLID(#313,#315,#317,2000.0); 64 | #317= IFCDIRECTION((0.0,0.0,1.0)); 65 | #318= IFCSHAPEREPRESENTATION(#32,'Body','SweptSolid',(#316)); 66 | #319= IFCPRODUCTDEFINITIONSHAPE($,$,(#312,#318)); 67 | #320= IFCRELDECLARES('1Cjr05W9T0fx0M3_mdVqMd',$,$,$,#20,(#300)); 68 | ENDSEC; 69 | 70 | END-ISO-10303-21; 71 | 72 | -------------------------------------------------------------------------------- /IfcScript.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 11.00 3 | # Visual Studio 2010 4 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IfcScript", "IfcScript\IfcScript.csproj", "{09B75B8A-44EC-49D8-BF76-CBD21C5EEB43}" 5 | EndProject 6 | Global 7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 8 | Debug|x64 = Debug|x64 9 | Debug|x86 = Debug|x86 10 | Release|x64 = Release|x64 11 | Release|x86 = Release|x86 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {09B75B8A-44EC-49D8-BF76-CBD21C5EEB43}.Debug|x64.ActiveCfg = Debug|x64 15 | {09B75B8A-44EC-49D8-BF76-CBD21C5EEB43}.Debug|x64.Build.0 = Debug|x64 16 | {09B75B8A-44EC-49D8-BF76-CBD21C5EEB43}.Debug|x86.ActiveCfg = Release|Any CPU 17 | {09B75B8A-44EC-49D8-BF76-CBD21C5EEB43}.Debug|x86.Build.0 = Release|Any CPU 18 | {09B75B8A-44EC-49D8-BF76-CBD21C5EEB43}.Release|x64.ActiveCfg = Release|x64 19 | {09B75B8A-44EC-49D8-BF76-CBD21C5EEB43}.Release|x64.Build.0 = Release|x64 20 | {09B75B8A-44EC-49D8-BF76-CBD21C5EEB43}.Release|x86.ActiveCfg = Release|x64 21 | {09B75B8A-44EC-49D8-BF76-CBD21C5EEB43}.Release|x86.Build.0 = Release|x64 22 | EndGlobalSection 23 | GlobalSection(SolutionProperties) = preSolution 24 | HideSolutionNode = FALSE 25 | EndGlobalSection 26 | EndGlobal 27 | -------------------------------------------------------------------------------- /IfcScript/Examples/Bath.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Drawing; 6 | using GeometryGym.Ifc; 7 | 8 | namespace IFC.Examples 9 | { 10 | class Bath : IFCExampleInstance 11 | { 12 | protected override void GenerateInstance(IfcBuilding building) 13 | { 14 | DatabaseIfc db = building.Database; 15 | IfcBlock block = new IfcBlock(new IfcAxis2Placement3D(new IfcCartesianPoint(db,0,0,0)), 2000,800,800); 16 | IfcRoundedRectangleProfileDef roundedRectangle = new IfcRoundedRectangleProfileDef(db, "VoidProfile",1800,600,200); 17 | IfcExtrudedAreaSolid extrudedAreaSolid = new IfcExtrudedAreaSolid(roundedRectangle,new IfcAxis2Placement3D(new IfcCartesianPoint(db, 1000,400,100)),new IfcDirection(db,0,0,1),700); 18 | IfcBooleanResult booleanResult = new IfcBooleanResult(IfcBooleanOperator.DIFFERENCE, block, extrudedAreaSolid); 19 | IfcCsgSolid csgSolid = new IfcCsgSolid(booleanResult); 20 | IfcRepresentationMap representationMap = new IfcRepresentationMap(csgSolid); 21 | IfcMaterial ceramic = new IfcMaterial(db, "Ceramic"); 22 | IfcSanitaryTerminalType sanitaryTerminalType = new IfcSanitaryTerminalType(db, "Bath", IfcSanitaryTerminalTypeEnum.BATH) { MaterialSelect = ceramic }; 23 | sanitaryTerminalType.AddRepresentationMap(representationMap); 24 | IfcElement element = sanitaryTerminalType.GenerateMappedItemElement(building, new IfcCartesianTransformationOperator3D(db)); 25 | db.Context.AddDeclared(sanitaryTerminalType); 26 | 27 | //Unique ids assigned to generate constant IfcScript sample files, remove otherwise 28 | sanitaryTerminalType.GlobalId = "1HarmwaPv3OeJSXpaoPKpg"; 29 | ceramic.Associates.GlobalId = "0Pkhszwjv1qRMYyCFg9fjB"; 30 | sanitaryTerminalType.ObjectTypeOf.GlobalId = "1lO$X3e3j9lfVMhNy4MzKB"; 31 | element.GlobalId = "3$$o7C03j0KQeLnoj018fc"; 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /IfcScript/Examples/Beam.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using GeometryGym.Ifc; 6 | 7 | using CoordIndex = System.Tuple; 8 | using Coord2d = System.Tuple; 9 | 10 | namespace IFC.Examples 11 | { 12 | internal class BeamTessellated : Beam 13 | { 14 | protected override void GenerateInstance(IfcBuilding building) 15 | { 16 | base.GenerateInstance(building, true); 17 | } 18 | } 19 | internal class BeamExtruded : Beam 20 | { 21 | protected override void GenerateInstance(IfcBuilding building) 22 | { 23 | base.GenerateInstance(building, false); 24 | } 25 | } 26 | 27 | internal class BeamFixedReferenceSweep : Beam 28 | { 29 | protected override void GenerateInstance(IfcBuilding building) 30 | { 31 | DatabaseIfc database = building.Database; 32 | IfcBeamType beamType = GetParametericIPE200(database); 33 | IfcMaterialProfileSet materialProfileSet = beamType.MaterialSelect as IfcMaterialProfileSet; 34 | IfcAxis2Placement3D axis2dPlacement3d = new IfcAxis2Placement3D(new IfcCartesianPoint(database, 0, 0, 0), database.Factory.YAxis, database.Factory.XAxisNegative); 35 | IfcMaterialProfileSetUsage materialProfileSetUsage = new IfcMaterialProfileSetUsage(materialProfileSet, IfcCardinalPointReference.TOPMID); 36 | 37 | //IfcBeam beam = new IfcBeam(building,materialProfileSetUsage, axis2dPlacement3d, 1000) { Name = beamType.Name, RelatingType = beamType }; 38 | } 39 | } 40 | 41 | internal abstract class Beam: IFCExampleInstance 42 | { 43 | protected void GenerateInstance(IfcBuilding building, bool tessellated) 44 | { 45 | IfcBeam beam = GenerateIPE200(building, tessellated); 46 | } 47 | 48 | private IfcBeam GenerateIPE200(IfcBuilding building, bool tessellated) 49 | { 50 | DatabaseIfc db = building.Database; 51 | if (tessellated) 52 | { 53 | List> coords = new List>() { new Tuple(1000.0, 50.0, -91.5), new Tuple(1000.0, 14.8, -91.5), new Tuple(1000.0, 50.0, -100.0), new Tuple(1000.0, -50.0, -100.0), new Tuple(1000.0, -50.0, -91.5), new Tuple(1000.0, -14.8, -91.5), new Tuple(1000.0, -2.8, 79.5), new Tuple(1000.0, -2.8, -79.5), new Tuple(1000.0, -50.0, 91.5), new Tuple(1000.0, -14.8, 91.5), new Tuple(1000.0, -50.0, 100.0), new Tuple(1000.0, 50.0, 100.0), new Tuple(1000.0, 50.0, 91.5), new Tuple(1000.0, 14.8, 91.5), new Tuple(1000.0, 2.8, -79.5), new Tuple(1000.0, 2.8, 79.5), new Tuple(0.0, 2.8, 79.5), new Tuple(0.0, 2.8, -79.5), new Tuple(0.0, 50.0, 91.5), new Tuple(0.0, 14.8, 91.5), new Tuple(0.0, 50.0, 100.0), new Tuple(0.0, -50.0, 100.0), new Tuple(0.0, -50.0, 91.5), new Tuple(0.0, -14.8, 91.5), new Tuple(0.0, -2.8, -79.5), new Tuple(0.0, -2.8, 79.5), new Tuple(0.0, -50.0, -91.5), new Tuple(0.0, -14.8, -91.5), new Tuple(0.0, -50.0, -100.0), new Tuple(0.0, 50.0, -100.0), new Tuple(0.0, 50.0, -91.5), new Tuple(0.0, 14.8, -91.5), new Tuple(0.0, 14.8, -91.5), new Tuple(0.0, 2.8, -79.5), new Tuple(1000.0, 14.8, -91.5), new Tuple(1000.0, 2.8, -79.5), new Tuple(500.0, 2.8, -79.5), new Tuple(500.0, 14.8, -91.5), new Tuple(0.0, 2.8, -79.5), new Tuple(0.0, 2.8, 79.5), new Tuple(1000.0, 2.8, -79.5), new Tuple(1000.0, 2.8, 79.5), new Tuple(500.0, 2.8, -79.5), new Tuple(500.0, 2.8, 79.5), new Tuple(0.0, 2.8, 79.5), new Tuple(0.0, 14.8, 91.5), new Tuple(1000.0, 2.8, 79.5), new Tuple(1000.0, 14.8, 91.5), new Tuple(500.0, 2.8, 79.5), new Tuple(500.0, 14.8, 91.5), new Tuple(0.0, 14.8, 91.5), new Tuple(0.0, 50.0, 91.5), new Tuple(1000.0, 14.8, 91.5), new Tuple(1000.0, 50.0, 91.5), new Tuple(500.0, 14.8, 91.5), new Tuple(500.0, 50.0, 91.5), new Tuple(0.0, 50.0, 91.5), new Tuple(0.0, 50.0, 100.0), new Tuple(1000.0, 50.0, 91.5), new Tuple(1000.0, 50.0, 100.0), new Tuple(500.0, 50.0, 91.5), new Tuple(500.0, 50.0, 100.0), new Tuple(0.0, 50.0, 100.0), new Tuple(0.0, -50.0, 100.0), new Tuple(1000.0, 50.0, 100.0), new Tuple(1000.0, -50.0, 100.0), new Tuple(500.0, 50.0, 100.0), new Tuple(500.0, -50.0, 100.0), new Tuple(0.0, -50.0, 100.0), new Tuple(0.0, -50.0, 91.5), new Tuple(1000.0, -50.0, 100.0), new Tuple(1000.0, -50.0, 91.5), new Tuple(500.0, -50.0, 100.0), new Tuple(500.0, -50.0, 91.5), new Tuple(0.0, -50.0, 91.5), new Tuple(0.0, -14.8, 91.5), new Tuple(1000.0, -50.0, 91.5), new Tuple(1000.0, -14.8, 91.5), new Tuple(500.0, -50.0, 91.5), new Tuple(500.0, -14.8, 91.5), new Tuple(0.0, -14.8, 91.5), new Tuple(0.0, -2.8, 79.5), new Tuple(1000.0, -14.8, 91.5), new Tuple(1000.0, -2.8, 79.5), new Tuple(500.0, -14.8, 91.5), new Tuple(500.0, -2.8, 79.5), new Tuple(0.0, -2.8, 79.5), new Tuple(0.0, -2.8, -79.5), new Tuple(1000.0, -2.8, 79.5), new Tuple(1000.0, -2.8, -79.5), new Tuple(500.0, -2.8, 79.5), new Tuple(500.0, -2.8, -79.5), new Tuple(0.0, -2.8, -79.5), new Tuple(0.0, -14.8, -91.5), new Tuple(1000.0, -2.8, -79.5), new Tuple(1000.0, -14.8, -91.5), new Tuple(500.0, -2.8, -79.5), new Tuple(500.0, -14.8, -91.5), new Tuple(0.0, -14.8, -91.5), new Tuple(0.0, -50.0, -91.5), new Tuple(1000.0, -14.8, -91.5), new Tuple(1000.0, -50.0, -91.5), new Tuple(500.0, -14.8, -91.5), new Tuple(500.0, -50.0, -91.5), new Tuple(0.0, -50.0, -91.5), new Tuple(0.0, -50.0, -100.0), new Tuple(1000.0, -50.0, -91.5), new Tuple(1000.0, -50.0, -100.0), new Tuple(500.0, -50.0, -91.5), new Tuple(500.0, -50.0, -100.0), new Tuple(0.0, -50.0, -100.0), new Tuple(0.0, 50.0, -100.0), new Tuple(1000.0, -50.0, -100.0), new Tuple(1000.0, 50.0, -100.0), new Tuple(500.0, -50.0, -100.0), new Tuple(500.0, 50.0, -100.0), new Tuple(0.0, 50.0, -100.0), new Tuple(0.0, 50.0, -91.5), new Tuple(1000.0, 50.0, -100.0), new Tuple(1000.0, 50.0, -91.5), new Tuple(500.0, 50.0, -100.0), new Tuple(500.0, 50.0, -91.5), new Tuple(0.0, 50.0, -91.5), new Tuple(0.0, 14.8, -91.5), new Tuple(1000.0, 50.0, -91.5), new Tuple(1000.0, 14.8, -91.5), new Tuple(500.0, 50.0, -91.5), new Tuple(500.0, 14.8, -91.5) }; 54 | IfcCartesianPointList3D cartesianPointList3D = new IfcCartesianPointList3D(db, coords); 55 | cartesianPointList3D.Comments.Add("the geometric representation of the beam is provided as a triangulated face set"); 56 | cartesianPointList3D.Comments.Add("the meshing depends on the creating software system"); 57 | 58 | List coordIndex = new List() { new CoordIndex(6, 5, 4), new CoordIndex(15, 8, 6), new CoordIndex(6, 4, 3), new CoordIndex(10, 11, 9), new CoordIndex(16, 10, 7), new CoordIndex(14, 11, 10), new CoordIndex(7, 8, 16), new CoordIndex(6, 2, 15), new CoordIndex(2, 3, 1), new CoordIndex(3, 2, 6), new CoordIndex(10, 16, 14), new CoordIndex(14, 13, 12), new CoordIndex(11, 14, 12), new CoordIndex(8, 15, 16), new CoordIndex(24, 23, 22), new CoordIndex(17, 26, 24), new CoordIndex(22, 21, 20), new CoordIndex(28, 29, 27), new CoordIndex(32, 28, 25), new CoordIndex(30, 29, 28), new CoordIndex(18, 25, 26), new CoordIndex(24, 20, 17), new CoordIndex(20, 21, 19), new CoordIndex(32, 31, 30), new CoordIndex(28, 32, 30), new CoordIndex(33, 34, 37), new CoordIndex(36, 35, 38), new CoordIndex(40, 44, 43), new CoordIndex(41, 43, 44), new CoordIndex(46, 50, 49), new CoordIndex(47, 49, 50), new CoordIndex(56, 55, 51), new CoordIndex(55, 56, 54), new CoordIndex(57, 58, 62), new CoordIndex(60, 59, 61), new CoordIndex(63, 64, 68), new CoordIndex(66, 65, 67), new CoordIndex(69, 70, 74), new CoordIndex(72, 71, 73), new CoordIndex(80, 79, 75), new CoordIndex(79, 80, 78), new CoordIndex(81, 82, 86), new CoordIndex(84, 83, 85), new CoordIndex(88, 92, 91), new CoordIndex(89, 91, 92), new CoordIndex(94, 98, 97), new CoordIndex(95, 97, 98), new CoordIndex(104, 103, 99), new CoordIndex(103, 104, 102), new CoordIndex(105, 106, 110), new CoordIndex(108, 107, 109), new CoordIndex(111, 112, 116), new CoordIndex(114, 113, 115), new CoordIndex(117, 118, 122), new CoordIndex(120, 119, 121), new CoordIndex(128, 127, 123), new CoordIndex(127, 128, 126), new CoordIndex(22, 20, 24), new CoordIndex(32, 25, 18), new CoordIndex(18, 26, 17), new CoordIndex(33, 37, 38), new CoordIndex(36, 38, 37), new CoordIndex(40, 43, 39), new CoordIndex(41, 44, 42), new CoordIndex(46, 49, 45), new CoordIndex(47, 50, 48), new CoordIndex(56, 51, 52), new CoordIndex(55, 54, 53), new CoordIndex(57, 62, 61), new CoordIndex(60, 61, 62), new CoordIndex(63, 68, 67), new CoordIndex(66, 67, 68), new CoordIndex(69, 74, 73), new CoordIndex(72, 73, 74), new CoordIndex(80, 75, 76), new CoordIndex(79, 78, 77), new CoordIndex(81, 86, 85), new CoordIndex(84, 85, 86), new CoordIndex(88, 91, 87), new CoordIndex(89, 92, 90), new CoordIndex(94, 97, 93), new CoordIndex(95, 98, 96), new CoordIndex(104, 99, 100), new CoordIndex(103, 102, 101), new CoordIndex(105, 110, 109), new CoordIndex(108, 109, 110), new CoordIndex(111, 116, 115), new CoordIndex(114, 115, 116), new CoordIndex(117, 122, 121), new CoordIndex(120, 121, 122), new CoordIndex(128, 123, 124), new CoordIndex(127, 126, 125) }; 59 | IfcTriangulatedFaceSet triangulatedFaceSet = new IfcTriangulatedFaceSet(cartesianPointList3D, true, coordIndex); 60 | 61 | //Unique ids assigned to generate constant IfcScript sample files, remove otherwise 62 | return new IfcBeam(building,null, new IfcProductDefinitionShape(new IfcShapeRepresentation(triangulatedFaceSet))) { GlobalId = "0EF5_zZRv0pQPddeofU3KT", Name = "ExampleBeamName",Description = "ExampleBeamDescription",Tag = "Tag" }; 63 | } 64 | 65 | List points = new List() {new Coord2d(2.8,-79.5),new Coord2d(2.8,79.5),new Coord2d(6.314719,87.985281),new Coord2d(14.8,91.5), new Coord2d(50.0,91.5), new Coord2d(50.0,100.0), new Coord2d(-50.0,100.0), new Coord2d(-50.0,91.5), new Coord2d(-14.8,91.5), new Coord2d(-6.314719,87.985281), new Coord2d(-2.8,79.5), new Coord2d(-2.8,-79.5), new Coord2d(-6.314719,-87.985281), new Coord2d(-14.8,-91.5), new Coord2d(-50.0,-91.5), new Coord2d(-50.0,-100.0), new Coord2d(50.0,-100.0), new Coord2d(50.0,-91.5), new Coord2d(14.8,-91.5), new Coord2d(6.314719,-87.985281) }; 66 | List segments = new List(); 67 | segments.Add(new IfcLineIndex(1, 2)); 68 | segments.Add(new IfcArcIndex(2, 3, 4)); 69 | segments.Add(new IfcLineIndex(4, 5)); 70 | segments.Add(new IfcLineIndex(5, 6)); 71 | segments.Add(new IfcLineIndex(6, 7)); 72 | segments.Add(new IfcLineIndex(7, 8)); 73 | segments.Add(new IfcLineIndex(8, 9)); 74 | segments.Add(new IfcArcIndex(9, 10, 11)); 75 | segments.Add(new IfcLineIndex(11, 12)); 76 | segments.Add(new IfcArcIndex(12, 13, 14)); 77 | segments.Add(new IfcLineIndex(14, 15)); 78 | segments.Add(new IfcLineIndex(15, 16)); 79 | segments.Add(new IfcLineIndex(16, 17)); 80 | segments.Add(new IfcLineIndex(17, 18)); 81 | segments.Add(new IfcLineIndex(18, 19)); 82 | segments.Add(new IfcArcIndex(19, 20, 1)); 83 | IfcBoundedCurve boundedCurve = IfcBoundedCurve.Generate(db,points, segments); 84 | IfcArbitraryClosedProfileDef arbitraryClosedProfileDef = new IfcArbitraryClosedProfileDef("IPE200",boundedCurve); 85 | IfcAxis2Placement3D axis2Placement3D = new IfcAxis2Placement3D(new IfcCartesianPoint(db,0,0,0),new IfcDirection(db,0,1,0),new IfcDirection(db,1,0,0)); 86 | IfcExtrudedAreaSolid extrudedAreaSolid = new IfcExtrudedAreaSolid(arbitraryClosedProfileDef, axis2Placement3D,new IfcDirection(db,0,0,1),1000); 87 | IfcBeam beam = new IfcBeam(building,null,new IfcProductDefinitionShape(new IfcShapeRepresentation (extrudedAreaSolid))) { Name = "ExampleBeamName",Description = "ExampleBeamDescription", Tag = "Tag" }; 88 | 89 | //Unique ids assigned to generate constant IfcScript sample files, remove otherwise 90 | beam.GlobalId = "0EF5_zZRv0pQPddeofU3KT"; 91 | 92 | return beam; 93 | } 94 | } 95 | } 96 | -------------------------------------------------------------------------------- /IfcScript/Examples/BeamUnitTests.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using GeometryGym.Ifc; 6 | 7 | namespace IFC.Examples 8 | { 9 | internal class BeamUnitTestsVaryingProfile : IFCExampleInstance 10 | { 11 | protected override void GenerateInstance(IfcBuilding building) 12 | { 13 | DatabaseIfc database = building.Database; 14 | IfcBeamType beamType = GetParametericIPE200(database); 15 | IfcMaterialProfileSet materialProfileSet = beamType.MaterialSelect as IfcMaterialProfileSet; 16 | IfcAxis2Placement3D axis2dPlacement3d = new IfcAxis2Placement3D(new IfcCartesianPoint(database, 0, 0, 0), database.Factory.YAxis, database.Factory.XAxisNegative); 17 | IfcBeamStandardCase beamStandardCase = new IfcBeamStandardCase(building, new IfcMaterialProfileSetUsage(materialProfileSet,IfcCardinalPointReference.MID), axis2dPlacement3d, 1000) { Name = beamType.Name, RelatingType = beamType }; 18 | database.NextObjectRecord = 300; 19 | string name = "CHS219.1x6.3"; 20 | IfcCircleHollowProfileDef chs219x6 = new IfcCircleHollowProfileDef(database, name, 219.1 / 2.0, 6.3); 21 | materialProfileSet = beamType.MaterialSelect as IfcMaterialProfileSet; 22 | IfcMaterialProfile materialProfile2 = new IfcMaterialProfile(name, materialProfileSet.MaterialProfiles[0].Material, chs219x6); 23 | IfcBeamType beamType2 = new IfcBeamType(name, materialProfile2, IfcBeamTypeEnum.BEAM); 24 | materialProfileSet = beamType2.MaterialSelect as IfcMaterialProfileSet; 25 | axis2dPlacement3d = new IfcAxis2Placement3D(new IfcCartesianPoint(database, 500, 0, 0), database.Factory.YAxis, database.Factory.XAxisNegative); 26 | IfcBeamStandardCase beamStandardCase2 = new IfcBeamStandardCase(building, new IfcMaterialProfileSetUsage(materialProfileSet, IfcCardinalPointReference.MID),axis2dPlacement3d, 1000) { Name = name, RelatingType = beamType2 }; 27 | 28 | //Unique ids assigned to generate constant IfcScript sample files, remove otherwise 29 | beamType.ObjectTypeOf.GlobalId = "3s_DqAVvb3LguudTShJHVo"; 30 | beamType.MaterialSelect.Associates.GlobalId = "3tlx8qcefDouGWiGFgBV8d"; 31 | beamStandardCase.GlobalId = "0uo2yx7G19uwCu9sIjn6DQ"; 32 | beamStandardCase.MaterialSelect.Associates.GlobalId = "2SL41bR1rCj99SIKuKXeFl"; 33 | beamType2.GlobalId = "3l_OKNTJr4yBOR5rYl6b9w"; 34 | beamType2.ObjectTypeOf.GlobalId = "3LrutsCpn4DPF9Zt4YdIEU"; 35 | beamType2.MaterialSelect.Associates.GlobalId = "14nDe0n1bErgiI78N83Oxd"; 36 | beamStandardCase2.GlobalId = "3_NFDdmqr7mxekvlvcgwa7"; 37 | beamStandardCase2.MaterialSelect.Associates.GlobalId = "1Set5Cyu9BFOWznvoQe1ho"; 38 | } 39 | } 40 | internal class BeamUnitTestsVaryingPath : IFCExampleInstance 41 | { 42 | protected override void GenerateInstance(IfcBuilding building) 43 | { 44 | DatabaseIfc database = building.Database; 45 | IfcBeamType beamType = GetParametericIPE200(database); 46 | IfcMaterialProfileSetUsage materialProfileSetUsage = new IfcMaterialProfileSetUsage( beamType.MaterialSelect as IfcMaterialProfileSet, IfcCardinalPointReference.TOPMID); 47 | IfcAxis2Placement3D axis2Placement3d = new IfcAxis2Placement3D(new IfcCartesianPoint(database, 0, 0, 0), database.Factory.YAxis, database.Factory.XAxisNegative); 48 | IfcBeamStandardCase beamStandardCase = new IfcBeamStandardCase(building, materialProfileSetUsage, axis2Placement3d, 1000) { Name = "Extrusion", RelatingType = beamType }; 49 | axis2Placement3d = new IfcAxis2Placement3D(new IfcCartesianPoint(database, 0, 0, 400), new IfcDirection(database, -0.38461538, 0.92307692, 0), new IfcDirection(database, -0.92307692, -0.38461538, 0)); 50 | IfcBeamStandardCase beamStandardCase2 = new IfcBeamStandardCase(building, materialProfileSetUsage, axis2Placement3d, new Tuple(-1300,0), 0.789582239399523) { Name = "Revolution", RelatingType = beamType }; 51 | 52 | //Unique ids assigned to generate constant IfcScript sample files, remove otherwise 53 | beamStandardCase.GlobalId = "0a_qfeQLDA8e5qT$Do6J_t"; 54 | beamStandardCase.MaterialSelect.Associates.GlobalId = "2uxxMWfA51AAznk5bQJylf"; 55 | beamStandardCase2.GlobalId = "1zqFh80l11VgfEm3ZWh6Xv"; 56 | } 57 | } 58 | 59 | internal class BeamUnitTestsVaryingCardinal : IFCExampleInstance 60 | { 61 | protected override void GenerateInstance(IfcBuilding building) 62 | { 63 | DatabaseIfc database = building.Database; 64 | IfcBeamType beamType = GetParametericIPE200(database); 65 | IfcMaterialProfileSet materialProfileSet = beamType.MaterialSelect as IfcMaterialProfileSet; 66 | 67 | IfcAxis2Placement3D axis2Placement3d = new IfcAxis2Placement3D(new IfcCartesianPoint(database, 0, 0, 0), database.Factory.YAxis, database.Factory.XAxisNegative); 68 | IfcMaterialProfileSetUsage materialProfileSetUsage = new IfcMaterialProfileSetUsage(materialProfileSet, IfcCardinalPointReference.TOPMID); 69 | IfcBeamStandardCase beamStandardCase1 = new IfcBeamStandardCase(building, materialProfileSetUsage, axis2Placement3d, 1000) { Name = "TopMid", RelatingType = beamType }; 70 | axis2Placement3d = new IfcAxis2Placement3D(new IfcCartesianPoint(database, 0, 0, 0), database.Factory.YAxis, database.Factory.XAxisNegative); 71 | materialProfileSetUsage = new IfcMaterialProfileSetUsage(materialProfileSet, IfcCardinalPointReference.BOTMID); 72 | IfcBeamStandardCase beamStandardCase2 = new IfcBeamStandardCase(building, materialProfileSetUsage, axis2Placement3d, 1000) { Name = "BotMid", RelatingType = beamType }; 73 | axis2Placement3d = new IfcAxis2Placement3D(new IfcCartesianPoint(database, 500, 0, 0), database.Factory.YAxis, database.Factory.XAxisNegative); 74 | materialProfileSetUsage = new IfcMaterialProfileSetUsage(materialProfileSet, IfcCardinalPointReference.BOTLEFT); 75 | IfcBeamStandardCase beamStandardCase3 = new IfcBeamStandardCase(building, materialProfileSetUsage, axis2Placement3d, 1000) { Name = "BotLeft", RelatingType = beamType }; 76 | axis2Placement3d = new IfcAxis2Placement3D(new IfcCartesianPoint(database, 500, 0, 0), database.Factory.YAxis, database.Factory.XAxisNegative); 77 | materialProfileSetUsage = new IfcMaterialProfileSetUsage(materialProfileSet, IfcCardinalPointReference.TOPRIGHT); 78 | IfcBeamStandardCase beamStandardCase4 = new IfcBeamStandardCase(building, materialProfileSetUsage, axis2Placement3d, 1000) { Name = "TopRight", RelatingType = beamType }; 79 | 80 | //Unique ids assigned to generate constant IfcScript sample files, remove otherwise 81 | beamStandardCase1.GlobalId = "2YX3YEaA13qOf$B1iBgAf6"; 82 | beamStandardCase1.MaterialSelect.Associates.GlobalId = "2v53tpkKfC1QI$UVEwGxEy"; 83 | beamStandardCase2.GlobalId = "39IDqhhC14BxCj_Ryk$esj"; 84 | beamStandardCase2.MaterialSelect.Associates.GlobalId = "2GHGDnjC1BI8mr5FS1ysvq"; 85 | beamStandardCase3.GlobalId = "17CqI$IjrDARuaYNcWcoRH"; 86 | beamStandardCase3.MaterialSelect.Associates.GlobalId = "1v094xksfDT9bOdSPNsjLB"; 87 | beamStandardCase4.GlobalId = "3TOzuh11rACgRkioYYOjj5"; 88 | beamStandardCase4.MaterialSelect.Associates.GlobalId = "0ys4PwYgT5dAduf$ECulk$"; 89 | } 90 | } 91 | } 92 | -------------------------------------------------------------------------------- /IfcScript/Examples/Column.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using GeometryGym.Ifc; 6 | 7 | namespace IFC.Examples 8 | { 9 | internal class Column : IFCExampleInstance 10 | { 11 | protected override void GenerateInstance(IfcBuilding building) 12 | { 13 | DatabaseIfc database = building.Database; 14 | IfcMaterialProfile materialProfile = GetParametericIPE200Profile(database); 15 | IfcColumnType columnType = new IfcColumnType(materialProfile.Name, materialProfile, IfcColumnTypeEnum.COLUMN); 16 | IfcMaterialProfileSet materialProfileSet = columnType.MaterialSelect as IfcMaterialProfileSet; 17 | IfcColumnStandardCase column = new IfcColumnStandardCase(building, new IfcMaterialProfileSetUsage( materialProfileSet,IfcCardinalPointReference.MID), new IfcAxis2Placement3D(new IfcCartesianPoint(database,0,0,0)), 2000) { Name= materialProfile.Name, RelatingType = columnType }; 18 | database.Context.AddDeclared(columnType); 19 | 20 | //Unique ids assigned to generate constant IfcScript sample files, remove otherwise 21 | columnType.GlobalId = "3qJDCKcPj1tgEHrIL1MUed"; 22 | column.GlobalId = "3S1GK_wA565RDoiWQEJc_l"; 23 | columnType.ObjectTypeOf.GlobalId = "0QSJIMj99DcOpmktgECZT7"; 24 | columnType.MaterialSelect.Associates.GlobalId = "2RR6JzjWrDuRIDIKRwxCJZ"; 25 | column.MaterialSelect.Associates.GlobalId = "2JRmkBe255UBkcHeZrq_Bl"; 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /IfcScript/Examples/CurveParameters.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | using Coord3d = System.Tuple; 8 | using Coord2d = System.Tuple; 9 | using GeometryGym.Ifc; 10 | 11 | namespace IFC.Examples 12 | { 13 | internal class CurveParametersDegrees : CurveParameters 14 | { 15 | protected override void GenerateInstance(IfcBuilding building) 16 | { 17 | base.GenerateInstance(building); 18 | } 19 | } 20 | internal class CurveParametersRadians : CurveParameters 21 | { 22 | protected override void GenerateInstance(IfcBuilding building) 23 | { 24 | base.GenerateInstance(building); 25 | } 26 | } 27 | internal abstract class CurveParameters : IFCExampleInstance 28 | { 29 | protected override void GenerateInstance(IfcBuilding building) 30 | { 31 | DatabaseIfc database = building.Database; 32 | double angFactor = database.Factory.Options.AngleUnitsInRadians ? 1 : 180 / Math.PI; 33 | building.Comments.Add("These profile curves are intentionally expressed in a more complicated manner than possible to test parameterization"); 34 | IfcMaterial material = new IfcMaterial(database, "Steel"); 35 | 36 | //-IfcBSplineCurve 37 | //- IfcCompositeCurve 38 | //- IfcCompositeCurveSegment 39 | //- IfcIndexedPolyCurve 40 | //- IfcTrimmedCurve 41 | //- IfcPCurve ? 42 | double root2 = Math.Sqrt(2), root2div2 = Math.Sqrt(2) / 2.0, root3 = Math.Sqrt(3), root3div2 = Math.Sqrt(3)/2.0; 43 | 44 | List segments = new List(); 45 | IfcLine line = new IfcLine(new IfcCartesianPoint(database, -1000, 1000), new IfcVector(new IfcDirection(database, 1, -1), 1000 * Math.Sqrt(2))); 46 | IfcTrimmedCurve trimmedCurve = new IfcTrimmedCurve(line, new IfcTrimmingSelect((root2-1)/root2), new IfcTrimmingSelect(1 + (1/root2)),true, IfcTrimmingPreference.PARAMETER); 47 | segments.Add(new IfcCompositeCurveSegment(IfcTransitionCode.CONTINUOUS, true, trimmedCurve)); 48 | IfcCircle circle = new IfcCircle(database, 1000); 49 | trimmedCurve = new IfcTrimmedCurve(circle, new IfcTrimmingSelect(7.0 / 4 * Math.PI * angFactor), new IfcTrimmingSelect(3.0 / 4 * Math.PI * angFactor), true, IfcTrimmingPreference.PARAMETER); 50 | segments.Add(new IfcCompositeCurveSegment(IfcTransitionCode.CONTINUOUS, true, trimmedCurve)); 51 | 52 | string name = "SemiCircle"; 53 | IfcArbitraryClosedProfileDef profile = new IfcArbitraryClosedProfileDef(name,new IfcCompositeCurve(segments)); 54 | IfcMaterialProfileSet materialProfileSet = new IfcMaterialProfileSet(name, new IfcMaterialProfile(name,material,profile)); 55 | IfcColumnType columnType = new IfcColumnType(name, materialProfileSet, IfcColumnTypeEnum.COLUMN); 56 | database.Context.AddDeclared(columnType); 57 | IfcColumnStandardCase column = new IfcColumnStandardCase(building, new IfcMaterialProfileSetUsage(materialProfileSet, IfcCardinalPointReference.MID), new IfcAxis2Placement3D(new IfcCartesianPoint(database, 0, 0, 0)), 2000) { Name = name, RelatingType = columnType }; 58 | 59 | //Unique ids assigned to generate constant IfcScript sample files, remove otherwise 60 | columnType.GlobalId = "24mq0gwVr7bgEMXPmo$TrF"; 61 | column.GlobalId = "0RGc8lepr7BRF_EtHrWJ45"; 62 | columnType.ObjectTypeOf.GlobalId = "0devdSRyf3uBEQbSqWTDjo"; 63 | columnType.MaterialSelect.Associates.GlobalId = "1gdVo5TjPETPZlW8HSRupM"; 64 | column.MaterialSelect.Associates.GlobalId = "35z8gDFbb6gvrCOz$24tUJ"; 65 | 66 | database.NextObjectRecord = 100; 67 | circle = new IfcCircle(new IfcAxis2Placement2D(new IfcCartesianPoint(database, 0, 1000)) { RefDirection = new IfcDirection(database,-1,0) },root3*1000); 68 | segments = new List(); 69 | trimmedCurve = new IfcTrimmedCurve(circle, new IfcTrimmingSelect(Math.PI/3 * angFactor), new IfcTrimmingSelect(2*Math.PI/3 * angFactor),true, IfcTrimmingPreference.PARAMETER); 70 | segments.Add(new IfcCompositeCurveSegment(IfcTransitionCode.CONTINUOUS, true, trimmedCurve)); 71 | circle = new IfcCircle(new IfcAxis2Placement2D(new IfcCartesianPoint(database, -1000*root3div2, -500)) { RefDirection = new IfcDirection(database,0,-1) },root3*1000); 72 | trimmedCurve = new IfcTrimmedCurve(circle, new IfcTrimmingSelect(Math.PI/2 * angFactor), new IfcTrimmingSelect(5*Math.PI/6 * angFactor),true, IfcTrimmingPreference.PARAMETER); 73 | segments.Add(new IfcCompositeCurveSegment(IfcTransitionCode.CONTINUOUS, true, trimmedCurve)); 74 | circle = new IfcCircle(new IfcAxis2Placement2D(new IfcCartesianPoint(database, 1000*root3div2, -500)) { RefDirection = new IfcDirection(database,0,1) },root3*1000); 75 | trimmedCurve = new IfcTrimmedCurve(circle, new IfcTrimmingSelect(Math.PI/6 * angFactor), new IfcTrimmingSelect(Math.PI/2 * angFactor),true, IfcTrimmingPreference.PARAMETER); 76 | segments.Add(new IfcCompositeCurveSegment(IfcTransitionCode.CONTINUOUS, true, trimmedCurve)); 77 | 78 | name = "CurviLinearTriangle"; 79 | profile = new IfcArbitraryClosedProfileDef(name, new IfcCompositeCurve(segments)); 80 | materialProfileSet = new IfcMaterialProfileSet(name, new IfcMaterialProfile(name,material,profile)); 81 | columnType = new IfcColumnType(name, materialProfileSet, IfcColumnTypeEnum.COLUMN); 82 | database.Context.AddDeclared(columnType); 83 | column = new IfcColumnStandardCase(building, new IfcMaterialProfileSetUsage(materialProfileSet, IfcCardinalPointReference.MID), new IfcAxis2Placement3D(new IfcCartesianPoint(database, 2500, 0, 0)), 2000) { Name = name, RelatingType = columnType }; 84 | 85 | //Unique ids assigned to generate constant IfcScript sample files, remove otherwise 86 | columnType.GlobalId = "3N_qc_BjX1hvEgwfRvVcb_"; 87 | column.GlobalId = "0bmIILAwj8$PLHK1jcmad0"; 88 | columnType.ObjectTypeOf.GlobalId = "3tGocD1N51oOvSvHbJI_qD"; 89 | columnType.MaterialSelect.Associates.GlobalId = "1M5oofzjD3IOM43brXW6wT"; 90 | column.MaterialSelect.Associates.GlobalId = "0gnTzVmkbE9hPsJDxOUOL3"; 91 | 92 | database.NextObjectRecord = 150; 93 | IfcEllipse ellipse = new IfcEllipse(new IfcAxis2Placement2D(database),1000,500); 94 | segments = new List(); 95 | trimmedCurve = new IfcTrimmedCurve(ellipse, new IfcTrimmingSelect(0), new IfcTrimmingSelect(Math.PI/4 * angFactor), true, IfcTrimmingPreference.PARAMETER); 96 | segments.Add(new IfcCompositeCurveSegment(IfcTransitionCode.CONTINUOUS, true, trimmedCurve)); 97 | double x = root2div2, y = 0.5 * root2div2, len = Math.Sqrt(0.5 + Math.Pow(y, 2)); 98 | line = new IfcLine(new IfcCartesianPoint(database, 0, 0), new IfcVector(new IfcDirection(database,x/len,y/len),1)); 99 | trimmedCurve = new IfcTrimmedCurve(line, new IfcTrimmingSelect(0), new IfcTrimmingSelect(len * 1000), false, IfcTrimmingPreference.PARAMETER); 100 | segments.Add(new IfcCompositeCurveSegment(IfcTransitionCode.CONTINUOUS, true, trimmedCurve)); 101 | line = new IfcLine(new IfcCartesianPoint(database, 0, 0), new IfcVector(new IfcDirection(database,1,0),1)); 102 | trimmedCurve = new IfcTrimmedCurve(line, new IfcTrimmingSelect(0), new IfcTrimmingSelect(1000), true, IfcTrimmingPreference.PARAMETER); 103 | segments.Add(new IfcCompositeCurveSegment(IfcTransitionCode.CONTINUOUS, true, trimmedCurve)); 104 | 105 | name = "PartialEllipse"; 106 | profile = new IfcArbitraryClosedProfileDef(name, new IfcCompositeCurve(segments)); 107 | materialProfileSet = new IfcMaterialProfileSet(name, new IfcMaterialProfile(name,material,profile)); 108 | columnType = new IfcColumnType(name, materialProfileSet, IfcColumnTypeEnum.COLUMN); 109 | database.Context.AddDeclared(columnType); 110 | column = new IfcColumnStandardCase(building, new IfcMaterialProfileSetUsage(materialProfileSet, IfcCardinalPointReference.MID), new IfcAxis2Placement3D(new IfcCartesianPoint(database, 5000, 0, 0)), 2000) { Name = name, RelatingType = columnType }; 111 | 112 | //Unique ids assigned to generate constant IfcScript sample files, remove otherwise 113 | columnType.GlobalId = "0dtemVu1P2682BcO3CPWAy"; 114 | column.GlobalId = "1JCvykjKH71R7_uck4n6hN"; 115 | columnType.ObjectTypeOf.GlobalId = "0rNx6sqCH2mOt1cWOT6zSU"; 116 | columnType.MaterialSelect.Associates.GlobalId = "2OfhB1Dcz2cAdV$CDh9PHV"; 117 | column.MaterialSelect.Associates.GlobalId = "3bTNkVsf9099xrALHA6WhF"; 118 | } 119 | } 120 | } 121 | -------------------------------------------------------------------------------- /IfcScript/Examples/IndexedColourMap.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Drawing; 6 | using GeometryGym.Ifc; 7 | 8 | using Coord3d = System.Tuple; 9 | using CoordIndex = System.Tuple; 10 | 11 | namespace IFC.Examples 12 | { 13 | class IndexedColourMap : IFCExampleInstance 14 | { 15 | protected override void GenerateInstance(IfcBuilding building) 16 | { 17 | DatabaseIfc db = building.Database; 18 | List points = new List() { new Coord3d(0, 0, 0), new Coord3d(1000, 0, 0), new Coord3d(1000, 1000, 0), new Coord3d(0, 1000, 0), new Coord3d(0, 0, 2000), new Coord3d(1000, 0, 2000), new Coord3d(1000, 1000, 2000), new Coord3d(0, 1000, 2000) }; 19 | IfcCartesianPointList3D cartesianPointList3D = new IfcCartesianPointList3D(db, points); 20 | List coordIndex = new List() { new CoordIndex(1, 6, 5), new CoordIndex(1, 2, 6), new CoordIndex(6, 2, 7), new CoordIndex(7, 2, 3), new CoordIndex(7, 8, 6), new CoordIndex(6, 8, 5), new CoordIndex(5, 8, 1), new CoordIndex(1, 8, 4), new CoordIndex(4, 2, 1), new CoordIndex(2, 4, 3), new CoordIndex(4, 8, 7), new CoordIndex(7, 3, 4) }; 21 | IfcTriangulatedFaceSet triangulatedFaceSet = new IfcTriangulatedFaceSet(cartesianPointList3D, true, coordIndex); 22 | IfcColourRgbList colourRgbList = new IfcColourRgbList(db, new List() { Color.Red, Color.Green, Color.Yellow }); 23 | IfcIndexedColourMap indexedColourMap = new IfcIndexedColourMap(triangulatedFaceSet, colourRgbList, new List() { 1, 1, 2, 2, 3, 3, 1, 1, 1, 1, 1,1 }); 24 | 25 | db.NextObjectRecord = 300; 26 | IfcBuildingElementProxy buildingElementProxy = new IfcBuildingElementProxy(building,null,new IfcProductDefinitionShape(new IfcShapeRepresentation( triangulatedFaceSet))); 27 | 28 | //Unique ids assigned to generate constant IfcScript sample files, remove otherwise 29 | buildingElementProxy.GlobalId = "25c34fWeL1NQux73WfnXox"; 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /IfcScript/Examples/Reinforcement.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Drawing; 6 | using GeometryGym.Ifc; 7 | 8 | namespace IFC.Examples 9 | { 10 | internal class ReinforcingAssembly : IFCExampleInstance 11 | { 12 | protected override void GenerateInstance(IfcBuilding building) 13 | { 14 | ReinforcingExample.GenerateInstance(building, true); 15 | } 16 | } 17 | internal class ReinforcingBar : IFCExampleInstance 18 | { 19 | protected override void GenerateInstance(IfcBuilding building) 20 | { 21 | ReinforcingExample.GenerateInstance( building, false); 22 | } 23 | } 24 | internal class ReinforcingExample 25 | { 26 | internal static void GenerateInstance(IfcBuilding building, bool assembly) 27 | { 28 | DatabaseIfc db = building.Database; 29 | IfcDocumentReference documentReference = new IfcDocumentReference(db) {Name = "MyReinforcementCode", Identification = "MyCodeISO3766" }; 30 | IfcRelAssociatesDocument associatesDocument = new IfcRelAssociatesDocument(db.Project, documentReference) { GlobalId = "1R7R97$uLAAv4wci$KGwn8" }; 31 | IfcMaterial material = new IfcMaterial(db, "ReinforcingSteel"); 32 | List> points = new List>() { new Tuple(-69.0, 0.0, -122.0), new Tuple(-69.0, 0.0, -79.0), new Tuple(-54.9411254969541, 0.0, -45.0588745030455), new Tuple(-21.0, 0.0, -31.0), new Tuple(21.0, 0.0, -31.0), new Tuple(54.9411254969541, 0.0, -45.0588745030455), new Tuple(69.0, 0.0, -78.9999999999999), new Tuple(69.0, 0.00000000000000089, -321.0), new Tuple(54.9939785957165, 1.21791490472034, -354.941125496954), new Tuple(21.1804517666074, 4.15822158551252, -369.0), new Tuple(-20.6616529376114, 7.79666547283599, -369.0), new Tuple(-54.4751797667207, 10.7369721536282, -354.941125496954), new Tuple(-68.4812011710042, 11.9548870583485, -321.0), new Tuple(-69.0, 12.0, -79.0), new Tuple(-54.9411254969541, 12.0, -45.0588745030455), new Tuple(-21.0, 12.0, -31.0), new Tuple(21.0, 12.0, -31.0), new Tuple(54.9411254969541, 12.0, -45.0588745030455), new Tuple(69.0, 12.0, -78.9999999999999),new Tuple(69.0, 12.0, -122.0), }; 33 | IfcBoundedCurve directrix = null; 34 | if (db.Release == ReleaseVersion.IFC2x3) 35 | directrix = new IfcPolyline(db, points); 36 | else 37 | { 38 | List segments = new List(); 39 | segments.Add(new IfcLineIndex(1, 2)); 40 | segments.Add(new IfcArcIndex(2,3,4)); 41 | segments.Add(new IfcLineIndex(4,5)); 42 | segments.Add(new IfcArcIndex(5,6,7)); 43 | segments.Add(new IfcLineIndex(7,8)); 44 | segments.Add(new IfcArcIndex(8,9,10)); 45 | segments.Add(new IfcLineIndex(10,11)); 46 | segments.Add(new IfcArcIndex(11,12,13)); 47 | segments.Add(new IfcLineIndex(13,14)); 48 | segments.Add(new IfcArcIndex(14,15,16)); 49 | segments.Add(new IfcLineIndex(16,17)); 50 | segments.Add(new IfcArcIndex(17,18,19)); 51 | segments.Add(new IfcLineIndex(19,20)); 52 | directrix = new IfcIndexedPolyCurve(new IfcCartesianPointList3D(db, points), segments); 53 | } 54 | double barDiameter = 12, area = Math.PI * Math.Pow( barDiameter,2) / 4; 55 | IfcSweptDiskSolid sweptDiskSolid = new IfcSweptDiskSolid(directrix, barDiameter/2.0); 56 | IfcRepresentationMap representationMap = new IfcRepresentationMap(sweptDiskSolid); 57 | string shapeCode = ""; //Todo 58 | IfcReinforcingBarType reinforcingBarType = new IfcReinforcingBarType(db, "12 Diameter Ligature", IfcReinforcingBarTypeEnum.LIGATURE, barDiameter, area, 1150, IfcReinforcingBarSurfaceEnum.TEXTURED, shapeCode, null) { GlobalId = "0jMRtfHYXE7u4s_CQ2uVE9", MaterialSelect = material }; 59 | reinforcingBarType.AddRepresentationMap(representationMap); 60 | db.Context.AddDeclared(reinforcingBarType); 61 | if (assembly) 62 | { 63 | IfcMaterial concrete = new IfcMaterial(db,"Concrete") { Category = "Concrete" }; 64 | string name = "400x200RC"; 65 | IfcRectangleProfileDef rectangleProfileDef = new IfcRectangleProfileDef(db, name, 200, 400); 66 | IfcMaterialProfile materialProfile = new IfcMaterialProfile(name,concrete,rectangleProfileDef); 67 | 68 | IfcBeamType beamType = new IfcBeamType(name, materialProfile, IfcBeamTypeEnum.BEAM); 69 | db.Context.AddDeclared(beamType); 70 | IfcMaterialProfileSet materialProfileSet = beamType.MaterialSelect as IfcMaterialProfileSet; 71 | IfcBeam beam = new IfcBeam(building, new IfcLocalPlacement(building.Placement, new IfcAxis2Placement3D(new IfcCartesianPoint(db, 0, 0, 0))), null) { Description = "Reinforced Beam" }; 72 | IfcBeamStandardCase beamStandardCase = new IfcBeamStandardCase(beam, new IfcMaterialProfileSetUsage(materialProfileSet, IfcCardinalPointReference.TOPMID), new IfcAxis2Placement3D(new IfcCartesianPoint(db, 0, 0, 0), new IfcDirection(db, 0, 1, 0), new IfcDirection(db, -1, 0, 0)), 5000) { GlobalId = "1yjQ2DwLnCC8k3i3X6D_ut", RelatingType = beamType }; 73 | IfcElementAssembly elementAssembly = new IfcElementAssembly(beam, IfcAssemblyPlaceEnum.FACTORY, IfcElementAssemblyTypeEnum.REINFORCEMENT_UNIT); 74 | List ids = new List() { "0ohBfsArr3ruXYxacT4yl5","3YrK7RbE122fNRsP5djFAe","0wxAc63nj5AezFhfks7wLL","0bsov2wZL6tRRZmKy4vuUU","3qrgfIBb92ZegJTle7jou3","16m6R3JeT83fJPCze2yU$a","2SGIIYjSbCuu3HVwoLt1yh","0PsLby6eL8_hVEt4QwK0lZ","1325VJou5AngWp1djcV0hL","20zj_$BcH74xRgR4bDrLNb","3M4SfEMtHEJukgZR4hw$eV","23BYnIaOLBZPVTrKVEDJiy","2XulRByDL8ugyo4Uqv9rJr","2xvQMSga96XOT3VeCS6ZsK","2gUE6_w3j77f8YJGz_2RMl","0J0dRL4tT93REAabfASDom","048RJ151b81PqODsTMD4EA","3hXx9Kb6b5bvjgr9pwvpz0","0FmUHg8ZX0ZfY$0f5nkM2l","2_zvpwRdvAuRiTlHXX$Qp8","1mhkXHKfX6PxdS2vZn17wX","0CeIQzUqP5qOOeAjMtH2OX","3shtoAQL5BAhvwA_1Ph$lC","22j4RNKqD2IBRDGig5eaCF","3Wvu6qGJH4ChhTV3pl9CGh","37Qrf07Iz3tRMbSxEA4ynH","2gelqZ1Wv8BvCy6TstVGkd","1Q21dHc_X7eRppCHrT69Vb","0e6Wc08NLD59ueqCAK1gxp","3xdMOSZMj3cBOV_QTbXZha","1r_U9JTkHDWwkv_nfWFHVe","29I7_S2fT3WRD4zPH4YjmD","0$ciATTaP17PJMHQD0$N3Y","1irBeCCUf82wdGg7qTPCbW" }; 75 | int jcounter = 0; 76 | for (int icounter = 25; icounter < 5000; icounter += 150) 77 | { 78 | IfcElement element = reinforcingBarType.GenerateMappedItemElement(elementAssembly, new IfcCartesianTransformationOperator3D(db) { LocalOrigin = new IfcCartesianPoint(db, 0, icounter, 0) } ); 79 | //Unique ids assigned to generate constant IfcScript sample files, remove otherwise 80 | element.GlobalId = ids[jcounter++]; 81 | } 82 | 83 | //Unique ids assigned to generate constant IfcScript sample files, remove otherwise 84 | beam.GlobalId = "1_KSmTR8T8bO37iRs24GkM"; 85 | beamType.GlobalId = "3bdpqVuWTCbxJ2S3ODYv6q"; 86 | beamType.ObjectTypeOf.GlobalId = "2oaQVVf79BrwRouvtRuQVg"; 87 | beamType.MaterialSelect.Associates.GlobalId = "2ZEgyI2v184hwa$_diRqS9"; 88 | beamStandardCase.MaterialSelect.Associates.GlobalId = "3DWeleqqjEG9KshbOZXUdY"; 89 | elementAssembly.GlobalId = "0Q1tCJWdj4kOkZUg7rkf2h"; 90 | elementAssembly.IsDecomposedBy[0].GlobalId = "1WdB196Kb72f_pKgj5rklU"; 91 | beam.IsDecomposedBy[0].GlobalId = "1b1SnKocD0WRevlg8Aqhj5"; 92 | } 93 | else 94 | { 95 | IfcElement element = reinforcingBarType.GenerateMappedItemElement(building, new IfcCartesianTransformationOperator3D(db)); 96 | 97 | //Unique ids assigned to generate constant IfcScript sample files, remove otherwise 98 | element.GlobalId = "0WUveBtSTDbunNjDLsuRn$"; 99 | } 100 | 101 | //Unique ids assigned to generate constant IfcScript sample files, remove otherwise 102 | 103 | reinforcingBarType.ObjectTypeOf.GlobalId = "1iAfl2ERbFmwi7uniy1H7j"; 104 | reinforcingBarType.MaterialSelect.Associates.GlobalId = "3gfVO40P5EfQyKZ_bF0R$6"; 105 | } 106 | } 107 | 108 | } 109 | -------------------------------------------------------------------------------- /IfcScript/Examples/Slab.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Drawing; 6 | using GeometryGym.Ifc; 7 | 8 | using Coord2d = System.Tuple; 9 | using Coord3d = System.Tuple; 10 | using CoordIndex = System.Tuple; 11 | 12 | 13 | namespace IFC.Examples 14 | { 15 | class Slab : IFCExampleInstance 16 | { 17 | protected override void GenerateInstance(IfcBuilding building) 18 | { 19 | SlabGenerator.GenerateInstance( building, false); 20 | } 21 | } 22 | class SlabOpenings : IFCExampleInstance 23 | { 24 | protected override void GenerateInstance(IfcBuilding building) 25 | { 26 | SlabGenerator.GenerateInstance(building, true); 27 | } 28 | } 29 | class SlabGenerator 30 | { 31 | internal static void GenerateInstance(IfcBuilding building, bool openings) 32 | { 33 | DatabaseIfc db = building.Database; 34 | IfcMaterial concrete = new IfcMaterial(db, "Concrete") { Category = "Concrete" }; 35 | int thickness = 200; 36 | IfcMaterialLayer materialLayer = new IfcMaterialLayer(concrete, thickness,"Core"); 37 | string name = thickness + "mm Concrete"; 38 | IfcMaterialLayerSet materialLayerSet = new IfcMaterialLayerSet( materialLayer, name); 39 | db.NextObjectRecord = 300; 40 | IfcSlabType slabType = new IfcSlabType(name, materialLayerSet, IfcSlabTypeEnum.FLOOR); 41 | db.Context.AddDeclared(slabType); 42 | List points = new List() { new Coord2d(0,0), new Coord2d(1000,0), new Coord2d(1400,2000), new Coord2d(1000,4000),new Coord2d(0,4000), new Coord2d(-400,2000) }; 43 | 44 | List segments = new List(); 45 | segments.Add(new IfcLineIndex(1, 2)); 46 | segments.Add(new IfcArcIndex(2, 3, 4)); 47 | segments.Add(new IfcLineIndex(4, 5)); 48 | segments.Add(new IfcArcIndex(5, 6, 1)); 49 | IfcBoundedCurve boundedCurve = IfcBoundedCurve.Generate(db, points, segments); 50 | IfcMaterialLayerSetUsage layerSetUsage = new IfcMaterialLayerSetUsage(materialLayerSet, IfcLayerSetDirectionEnum.AXIS3, IfcDirectionSenseEnum.NEGATIVE, 0); 51 | IfcSlab slabStandardCase = new IfcSlabStandardCase(building, layerSetUsage,new IfcAxis2Placement3D(new IfcCartesianPoint(db,0,0,0)),new IfcArbitraryClosedProfileDef("Slab Perimeter",boundedCurve)) { RelatingType = slabType }; 52 | slabStandardCase.RelatingType = slabType; 53 | if (openings) 54 | { 55 | IfcCircleProfileDef cpd = new IfcCircleProfileDef(db, "100DIA", 50); 56 | IfcExtrudedAreaSolid eas = new IfcExtrudedAreaSolid(cpd,new IfcAxis2Placement3D(new IfcCartesianPoint(db,100,300,-200)),new IfcDirection(db,0,0,1),thickness); 57 | IfcOpeningStandardCase opening = new IfcOpeningStandardCase(slabStandardCase, null, eas) { Name = "Opening" }; 58 | IfcRectangleProfileDef rpd = new IfcRectangleProfileDef(db, "RecessRectangle", 500, 1000); 59 | eas = new IfcExtrudedAreaSolid(rpd, new IfcAxis2Placement3D(new IfcCartesianPoint(db,500, 1000, -50)), new IfcDirection(db, 0, 0, 1), 50); 60 | IfcOpeningElement recess = new IfcOpeningElement(slabStandardCase,null,new IfcProductDefinitionShape(new IfcShapeRepresentation( eas))) { Name = "Recess", PredefinedType = IfcOpeningElementTypeEnum.RECESS }; 61 | 62 | //Unique ids assigned to generate constant IfcScript sample files, remove otherwise 63 | opening.GlobalId = "15RSTHd8nFVQWMRE7og7sd"; 64 | opening.VoidsElement.GlobalId = "0gqEDsyEzFXvY$fc_rUxyO"; 65 | recess.GlobalId = "0w93HZ19H2D99zbAVNb4o2"; 66 | recess.VoidsElement.GlobalId = "3iUkij4q1DmxlXuHzQVJaM"; 67 | } 68 | 69 | //Unique ids assigned to generate constant IfcScript sample files, remove otherwise 70 | slabType.GlobalId = "0RSW$KKbzCZ9QaSm3GoEan"; 71 | slabStandardCase.GlobalId = "1wAj$J2Az2V8wnBiVYd3bU"; 72 | materialLayerSet.Associates.GlobalId = "2l_enLhI93reVwnim9gXUq"; 73 | slabType.ObjectTypeOf.GlobalId = "3wwDcmW5T3HfafURQewdD0"; 74 | slabStandardCase.MaterialSelect.Associates.GlobalId = "3ESAzibgr9BvK9M75iV84w"; 75 | } 76 | } 77 | } 78 | -------------------------------------------------------------------------------- /IfcScript/Examples/Wall.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Drawing; 6 | using GeometryGym.Ifc; 7 | 8 | namespace IFC.Examples 9 | { 10 | class Wall : IFCExampleInstance 11 | { 12 | protected override void GenerateInstance(IfcBuilding building) 13 | { 14 | DatabaseIfc db = building.Database; 15 | IfcMaterial masonryFinish = new IfcMaterial(db, "Masonry - Brick - Brown"); 16 | IfcMaterial masonry = new IfcMaterial(db, "Masonry"); 17 | IfcMaterialLayer layerFinish = new IfcMaterialLayer(masonryFinish, 110, "Finish"); 18 | IfcMaterialLayer airInfiltrationBarrier = new IfcMaterialLayer(db, 50, "Air Infiltration Barrier") { IsVentilated = IfcLogicalEnum.TRUE }; 19 | IfcMaterialLayer structure = new IfcMaterialLayer(masonry, 110, "Core"); 20 | string name = "Double Brick - 270"; 21 | IfcMaterialLayerSet materialLayerSet = new IfcMaterialLayerSet( new List() { layerFinish, airInfiltrationBarrier, structure }, name); 22 | db.NextObjectRecord = 300; 23 | IfcWallType wallType = new IfcWallType(name, materialLayerSet, IfcWallTypeEnum.NOTDEFINED); 24 | IfcMaterialLayerSetUsage layerSetUsage = new IfcMaterialLayerSetUsage(materialLayerSet, IfcLayerSetDirectionEnum.AXIS2, IfcDirectionSenseEnum.POSITIVE, -materialLayerSet.MaterialLayers.Sum(x => x.LayerThickness) / 2.0); 25 | IfcWallStandardCase wallStandardCase = new IfcWallStandardCase(building, layerSetUsage, new IfcAxis2Placement3D(new IfcCartesianPoint(db,0,0,0)),5000, 2000); 26 | db.Context.AddDeclared(wallType); 27 | 28 | //Unique ids assigned to generate constant IfcScript sample files, remove otherwise 29 | wallType.GlobalId = "2aG1gZj7PD2PztLOx2$IVX"; 30 | wallStandardCase.GlobalId = "0DWgwt6o1FOx7466fPk$jl"; 31 | materialLayerSet.Associates.GlobalId = "36U74BIPDD89cYkx9bkV$Y"; 32 | wallStandardCase.MaterialSelect.Associates.GlobalId = "1BYoVhjtLADPUZYzipA826"; 33 | } 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /IfcScript/Examples/Window.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Drawing; 6 | using GeometryGym.Ifc; 7 | 8 | namespace IFC.Examples 9 | { 10 | class WindowType : IFCExampleLibrary 11 | { 12 | protected override void GenerateLibrary(DatabaseIfc db) 13 | { 14 | IfcWindowType windowType = new IfcWindowType(db, "WindowType", IfcWindowTypeEnum.WINDOW); 15 | 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /IfcScript/Form1.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace IFCExamples 2 | { 3 | partial class Form1 4 | { 5 | /// 6 | /// Required designer variable. 7 | /// 8 | private System.ComponentModel.IContainer components = null; 9 | 10 | /// 11 | /// Clean up any resources being used. 12 | /// 13 | /// true if managed resources should be disposed; otherwise, false. 14 | protected override void Dispose(bool disposing) 15 | { 16 | if (disposing && (components != null)) 17 | { 18 | components.Dispose(); 19 | } 20 | base.Dispose(disposing); 21 | } 22 | 23 | #region Windows Form Designer generated code 24 | 25 | /// 26 | /// Required method for Designer support - do not modify 27 | /// the contents of this method with the code editor. 28 | /// 29 | private void InitializeComponent() 30 | { 31 | System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form1)); 32 | this.button1 = new System.Windows.Forms.Button(); 33 | this.SuspendLayout(); 34 | // 35 | // button1 36 | // 37 | this.button1.Location = new System.Drawing.Point(25, 34); 38 | this.button1.Name = "button1"; 39 | this.button1.Size = new System.Drawing.Size(247, 23); 40 | this.button1.TabIndex = 0; 41 | this.button1.Text = "Generate Samples"; 42 | this.button1.UseVisualStyleBackColor = true; 43 | this.button1.Click += new System.EventHandler(this.button1_Click); 44 | // 45 | // Form1 46 | // 47 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); 48 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 49 | this.ClientSize = new System.Drawing.Size(293, 80); 50 | this.Controls.Add(this.button1); 51 | this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; 52 | this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); 53 | this.Name = "Form1"; 54 | this.Text = "IFC Examples"; 55 | this.ResumeLayout(false); 56 | 57 | } 58 | 59 | #endregion 60 | 61 | private System.Windows.Forms.Button button1; 62 | } 63 | } 64 | 65 | -------------------------------------------------------------------------------- /IfcScript/Form1.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Data; 5 | using System.Drawing; 6 | using System.Linq; 7 | using System.Text; 8 | using System.IO; 9 | using System.Reflection; 10 | using System.Windows.Forms; 11 | using IFC.Examples; 12 | using GeometryGym.Ifc; 13 | 14 | namespace IFCExamples 15 | { 16 | public partial class Form1 : Form 17 | { 18 | public Form1() 19 | { 20 | InitializeComponent(); 21 | } 22 | 23 | private void button1_Click(object sender, EventArgs e) 24 | { 25 | DirectoryInfo di = Directory.GetParent(Path.GetDirectoryName(Assembly.GetEntryAssembly().Location)); 26 | di = Directory.GetParent(di.FullName); 27 | 28 | string path = Path.Combine(di.FullName, "examples"); 29 | if (!Directory.Exists(path)) 30 | Directory.CreateDirectory(path); 31 | new BeamExtruded().GenerateExample(path,ModelView.Ifc4Reference); 32 | new BeamTessellated().GenerateExample(path, ModelView.Ifc4Reference); 33 | 34 | new IndexedColourMap().GenerateExample(path,ModelView.Ifc4DesignTransfer); 35 | new BeamUnitTestsVaryingProfile().GenerateExample(path, ModelView.Ifc4DesignTransfer); 36 | new BeamUnitTestsVaryingPath().GenerateExample(path, ModelView.Ifc4DesignTransfer); 37 | new BeamUnitTestsVaryingCardinal().GenerateExample(path, ModelView.Ifc4DesignTransfer); 38 | //todo tapered 39 | new Slab().GenerateExample(path, ModelView.Ifc4DesignTransfer); 40 | new SlabOpenings().GenerateExample(path, ModelView.Ifc4DesignTransfer); 41 | new Wall().GenerateExample(path, ModelView.Ifc4DesignTransfer); 42 | //todo wall with Openings 43 | new Bath().GenerateExample(path, ModelView.Ifc4DesignTransfer); 44 | new BasinAdvancedBrep().GenerateExample(path, ModelView.Ifc4DesignTransfer); 45 | new BasinBrep().GenerateExample(path, ModelView.Ifc4DesignTransfer); 46 | new BasinTessellation().GenerateExample(path, ModelView.Ifc4Reference); 47 | new ReinforcingBar().GenerateExample(path, ModelView.Ifc4DesignTransfer); 48 | new ReinforcingAssembly().GenerateExample(path, ModelView.Ifc4DesignTransfer); 49 | new Column().GenerateExample(path, ModelView.Ifc4DesignTransfer); 50 | new CurveParametersRadians().GenerateExample(path, ModelView.Ifc4DesignTransfer,true); 51 | new CurveParametersDegrees().GenerateExample(path, ModelView.Ifc4DesignTransfer,false); 52 | //new CurveParametersRadians().GenerateExample(path, ModelView.Ifc2x3Coordination,true); 53 | //new CurveParametersDegrees().GenerateExample(path, ModelView.Ifc2x3Coordination,false); 54 | //Possible Examples to add 55 | // IfcBuildingStorey with datums and local placements relative to building 56 | // IfcProjectLibrary 57 | // GeoSpatial SetOut of Building 58 | // 59 | } 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /IfcScript/IFCExampleBase.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Collections.ObjectModel; 4 | using System.Linq; 5 | using System.IO; 6 | 7 | using System.Text; 8 | using GeometryGym.Ifc; 9 | 10 | namespace IFC 11 | { 12 | internal abstract class IFCExampleBase 13 | { 14 | protected DatabaseIfc GenerateDatabase(ModelView modelView, bool radians) 15 | { 16 | DatabaseIfc database = new DatabaseIfc(false, modelView); 17 | database.Factory.Options.GenerateOwnerHistory = false; 18 | database.Factory.Options.AngleUnitsInRadians = radians; 19 | database.NextObjectRecord = 10; 20 | return database; 21 | } 22 | protected void WriteFile(DatabaseIfc database, string path) 23 | { 24 | string filePath = Path.Combine(path, this.GetType().Name + ".ifc"); 25 | if (File.Exists(filePath)) 26 | { 27 | string[] newLines = database.ToString().Split(new char[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries); 28 | List existingLines = new List(File.ReadAllLines(filePath)); 29 | existingLines.RemoveAll(x => string.IsNullOrEmpty(x)); 30 | 31 | if (newLines.Length == existingLines.Count) 32 | { 33 | bool identical = true; 34 | int icounter = 0; 35 | for (; icounter < newLines.Length; icounter++) 36 | { 37 | string s1 = newLines[icounter]; 38 | if (s1.StartsWith("FILE_SCHEMA")) 39 | break; 40 | } 41 | for (; icounter < newLines.Length; icounter++) 42 | { 43 | string s1 = newLines[icounter], s2 = existingLines[icounter]; 44 | if (s1.StartsWith("/* time_stamp */ ") && s2.StartsWith("/* time_stamp */ ")) 45 | continue; 46 | if (string.Compare(s1, s2, true) != 0) 47 | { 48 | identical = false; 49 | break; 50 | } 51 | } 52 | if (identical) 53 | return; 54 | } 55 | } 56 | database.WriteFile(filePath); 57 | } 58 | 59 | } 60 | 61 | internal abstract class IFCExampleLibrary : IFCExampleBase 62 | { 63 | internal void GenerateObjectLibrary(string path) 64 | { 65 | DatabaseIfc database = GenerateDatabase(ModelView.Ifc4DesignTransfer,true); 66 | IfcProjectLibrary projectLibrary = new IfcProjectLibrary(database, "ProjectLibrary", IfcUnitAssignment.Length.Millimetre); 67 | } 68 | protected virtual void GenerateLibrary(DatabaseIfc db) { } 69 | } 70 | internal abstract class IFCExampleInstance : IFCExampleBase 71 | { 72 | internal void GenerateExample(string path, ModelView modelView) { GenerateExample(path, modelView, true); } 73 | internal void GenerateExample(string path, ModelView modelView, bool radians) 74 | { 75 | DatabaseIfc database = GenerateDatabase(modelView, radians); 76 | IfcBuilding building = new IfcBuilding(database, "IfcBuilding"); 77 | building.Comments.Add("defines the default building (as required as the minimum spatial element) "); 78 | database.NextObjectRecord = 20; 79 | IfcProject project = new IfcProject(building, "IfcProject", IfcUnitAssignment.Length.Millimetre); 80 | project.Comments.Add("general entities required for all IFC sets, defining the context for the exchange"); 81 | database.Factory.SubContext(FactoryIfc.SubContextIdentifier.Body); 82 | database.NextObjectRecord = 50; 83 | GenerateInstance(building); 84 | ReadOnlyCollection rds = project.Declares; 85 | 86 | //Unique ids assigned to generate constant IfcScript sample files, remove otherwise 87 | if (rds.Count > 0) 88 | rds[0].GlobalId = "1Cjr05W9T0fx0M3_mdVqMd"; 89 | building.GlobalId = "39t4Pu3nTC4ekXYRIHJB9W"; 90 | building.ContainsElements[0].GlobalId = "3Sa3dTJGn0H8TQIGiuGQd5"; 91 | project.GlobalId = "0$WU4A9R19$vKWO$AdOnKA"; 92 | project.IsDecomposedBy[0].GlobalId = "091a6ewbvCMQ2Vyiqspa7a"; 93 | 94 | database[50].Comments.Add("Example data for " + this.GetType().Name); 95 | WriteFile(database, path); 96 | } 97 | protected abstract void GenerateInstance(IfcBuilding building); 98 | 99 | protected IfcBeamType GetParametericIPE200(DatabaseIfc database) 100 | { 101 | IfcMaterialProfile materialProfile = GetParametericIPE200Profile(database); 102 | IfcBeamType beamType = new IfcBeamType(materialProfile.Name, materialProfile, IfcBeamTypeEnum.JOIST) { GlobalId = "32b2OtzCP30umNyY5LsCfN" }; 103 | database.Context.AddDeclared(beamType); 104 | 105 | //Unique ids assigned to generate constant IfcScript sample files, remove otherwise 106 | beamType.ObjectTypeOf.GlobalId = "3s_DqAVvb3LguudTShJHVo"; 107 | beamType.MaterialSelect.Associates.GlobalId = "0NkGSIHVT3SeAR6bnw7pSa"; 108 | 109 | return beamType; 110 | } 111 | protected IfcMaterialProfile GetParametericIPE200Profile(DatabaseIfc database) 112 | { 113 | IfcMaterial material = new IfcMaterial(database, "S355JR") { Category = "Steel" }; 114 | 115 | //Unique ids assigned to generate constant IfcScript sample files, remove otherwise 116 | material.Associates.GlobalId = "1oJeVe14nCYf5cL0Mka0KL"; 117 | 118 | string name = "IPE200"; 119 | IfcIShapeProfileDef ipe200 = new IfcIShapeProfileDef(database, name, 200, 100, 5.6, 8.5, 12); 120 | return new IfcMaterialProfile(name, material, ipe200); 121 | } 122 | } 123 | } 124 | -------------------------------------------------------------------------------- /IfcScript/IfcScript.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | Debug 5 | x86 6 | 8.0.30703 7 | 2.0 8 | {09B75B8A-44EC-49D8-BF76-CBD21C5EEB43} 9 | WinExe 10 | Properties 11 | IFC 12 | IFCExamples 13 | v4.5 14 | 15 | 16 | 512 17 | 18 | 19 | x86 20 | true 21 | full 22 | false 23 | bin\Debug\ 24 | DEBUG;TRACE 25 | prompt 26 | 4 27 | false 28 | 29 | 30 | x86 31 | pdbonly 32 | true 33 | bin\Release\ 34 | TRACE 35 | prompt 36 | 4 37 | false 38 | 39 | 40 | true 41 | bin\Debug\ 42 | DEBUG;TRACE 43 | full 44 | AnyCPU 45 | prompt 46 | true 47 | true 48 | false 49 | 50 | 51 | bin\Release\ 52 | TRACE 53 | true 54 | pdbonly 55 | AnyCPU 56 | prompt 57 | true 58 | true 59 | false 60 | 61 | 62 | true 63 | bin\ 64 | TRACE;DEBUG 65 | full 66 | x64 67 | prompt 68 | true 69 | true 70 | false 71 | 72 | 73 | bin\x64\Release\ 74 | TRACE 75 | true 76 | pdbonly 77 | x64 78 | prompt 79 | true 80 | true 81 | false 82 | 83 | 84 | 85 | ..\packages\GeometryGymIFC.0.0.15\lib\net45\GeometryGymIFC.dll 86 | 87 | 88 | ..\packages\Newtonsoft.Json.10.0.3\lib\net45\Newtonsoft.Json.dll 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | Form 115 | 116 | 117 | Form1.cs 118 | 119 | 120 | 121 | 122 | 123 | Form1.cs 124 | 125 | 126 | ResXFileCodeGenerator 127 | Resources.Designer.cs 128 | Designer 129 | 130 | 131 | True 132 | Resources.resx 133 | True 134 | 135 | 136 | 137 | 138 | SettingsSingleFileGenerator 139 | Settings.Designer.cs 140 | 141 | 142 | True 143 | Settings.settings 144 | True 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 160 | 161 | -------------------------------------------------------------------------------- /IfcScript/Program.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Windows.Forms; 5 | 6 | namespace IFCExamples 7 | { 8 | static class Program 9 | { 10 | /// 11 | /// The main entry point for the application. 12 | /// 13 | [STAThread] 14 | static void Main() 15 | { 16 | Application.EnableVisualStyles(); 17 | Application.SetCompatibleTextRenderingDefault(false); 18 | Application.Run(new Form1()); 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /IfcScript/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("IFCExamples")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("Geometry Gym")] 12 | [assembly: AssemblyProduct("IFCExamples")] 13 | [assembly: AssemblyCopyright("Copyright © Geometry Gym 2014")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("388e429d-2d05-4d1a-9f12-87f4cada50f4")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("0.0.1.0")] 36 | [assembly: AssemblyFileVersion("0.0.1.0")] 37 | -------------------------------------------------------------------------------- /IfcScript/Properties/Resources.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.34209 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace IFC.Properties { 12 | using System; 13 | 14 | 15 | /// 16 | /// A strongly-typed resource class, for looking up localized strings, etc. 17 | /// 18 | // This class was auto-generated by the StronglyTypedResourceBuilder 19 | // class via a tool like ResGen or Visual Studio. 20 | // To add or remove a member, edit your .ResX file then rerun ResGen 21 | // with the /str option, or rebuild your VS project. 22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] 23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] 24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 25 | internal class Resources { 26 | 27 | private static global::System.Resources.ResourceManager resourceMan; 28 | 29 | private static global::System.Globalization.CultureInfo resourceCulture; 30 | 31 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] 32 | internal Resources() { 33 | } 34 | 35 | /// 36 | /// Returns the cached ResourceManager instance used by this class. 37 | /// 38 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 39 | internal static global::System.Resources.ResourceManager ResourceManager { 40 | get { 41 | if (object.ReferenceEquals(resourceMan, null)) { 42 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("IFC.Properties.Resources", typeof(Resources).Assembly); 43 | resourceMan = temp; 44 | } 45 | return resourceMan; 46 | } 47 | } 48 | 49 | /// 50 | /// Overrides the current thread's CurrentUICulture property for all 51 | /// resource lookups using this strongly typed resource class. 52 | /// 53 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 54 | internal static global::System.Globalization.CultureInfo Culture { 55 | get { 56 | return resourceCulture; 57 | } 58 | set { 59 | resourceCulture = value; 60 | } 61 | } 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /IfcScript/Properties/Resources.resx: -------------------------------------------------------------------------------- 1 |  2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | text/microsoft-resx 107 | 108 | 109 | 2.0 110 | 111 | 112 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 113 | 114 | 115 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | -------------------------------------------------------------------------------- /IfcScript/Properties/Settings.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.34209 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace IFC.Properties { 12 | 13 | 14 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 15 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "12.0.0.0")] 16 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { 17 | 18 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); 19 | 20 | public static Settings Default { 21 | get { 22 | return defaultInstance; 23 | } 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /IfcScript/Properties/Settings.settings: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /IfcScript/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /IfcScript/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | This is a project by buildingSMART to generate example IFC files. 2 | Primarily for IFC4 (but not restricted to this schema), it is 3 | intended to concentrate on samples and unit tests demonstrating 4 | features and improvements in IFC4. 5 | 6 | You can find an introduction and explanation of the project here 7 | https://www.youtube.com/watch?v=0g3rTPQKONE&list=UU01FBzTNN-umc7w1-MYnABw 8 | 9 | It uses the Geometry Gym open source toolkit (MIT License) available from 10 | https://github.com/jmirtsch/GeometryGymIFC or nuget to generate the classes and files. 11 | 12 | 13 | If you have suggestions or requests for further examples, or wish to 14 | contribute, then please don't hesitate to get in contact. 15 | --------------------------------------------------------------------------------