From bbd808f87432d2b1fef4e29d7766543bf8828961 Mon Sep 17 00:00:00 2001 From: MONGONGNON Guillaume Date: Wed, 8 Feb 2023 14:54:06 +0100 Subject: [PATCH 1/4] First Commit --- PullRequest/Sprint01_GMN16_3DS.ifc | 46 ++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 PullRequest/Sprint01_GMN16_3DS.ifc diff --git a/PullRequest/Sprint01_GMN16_3DS.ifc b/PullRequest/Sprint01_GMN16_3DS.ifc new file mode 100644 index 00000000..a05b1932 --- /dev/null +++ b/PullRequest/Sprint01_GMN16_3DS.ifc @@ -0,0 +1,46 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition[ReferenceView]'),'2;1'); + +FILE_NAME('\\\\?\\C:\\Users\\GMN16\\Documents\\IFC\\bSI\\Sprint10\\Site00000001_040A77B3-0000-4D00-63E3A53800021867 ---.000.ifc','2023-02-08T13:38:02+00:00',$,$,'3DEXPERIENCE PlatformUnofficial Packaging Version','3DEXPERIENCE Platform IFC4X4',$); + +FILE_SCHEMA(('IFC4X4')); + +ENDSEC; +DATA; +#5=IFCOWNERHISTORY(#3,#4,$,.NOTDEFINED.,$,$,$,1675863482) ; +#3=IFCPERSONANDORGANIZATION(#2,#1,$) ; +#2=IFCPERSON($,'FamilyName',$,$,$,$,$,$) ; +#1=IFCORGANIZATION($,'Name of Organization',$,$,$) ; +#4=IFCAPPLICATION(#1,'0.1','CATIA Data Exchange','CATIA') ; +#12=IFCCARTESIANPOINT((0.,0.,0.)) ; +#32=IFCCARTESIANPOINT((0.,0.,0.)) ; +#13=IFCDIRECTION((0.,0.,1.)) ; +#14=IFCDIRECTION((1.,0.,0.)) ; +#33=IFCDIRECTION((0.,0.,1.)) ; +#34=IFCDIRECTION((1.,0.,0.)) ; +#11=IFCAXIS2PLACEMENT3D(#12,#13,#14) ; +#31=IFCAXIS2PLACEMENT3D(#32,#33,#34) ; +#15=IFCGEOMETRICREPRESENTATIONCONTEXT($,'Model',3,1.E-05,#11,$) ; +#6=IFCUNITASSIGNMENT((#7,#8,#9,#10)) ; +#25=IFCELEMENTQUANTITY('0zl3657E1ccJu6J13SMEyb',#5,'Qto_SiteBaseQuantities',$,$,(#26,#27)) ; +#29=IFCLOCALPLACEMENT($,#31) ; +#16=IFCPROJECT('0ziZEGIuXCd5yDI69ZD3r8',#5,'Project','Default Project',$,$,$,(#15),#6) ; +#18=IFCPROPERTYSET('0zjLsC4L0gcwardt6BGCqy',#5,'Pset_SiteCommon',$,(#19,#20,#21,#22,#23)) ; +#19=IFCPROPERTYSINGLEVALUE('BuildableArea',$,IFCAREAMEASURE(0.),$) ; +#20=IFCPROPERTYSINGLEVALUE('SiteCoverageRatio',$,$,$) ; +#21=IFCPROPERTYSINGLEVALUE('FloorAreaRatio',$,$,$) ; +#22=IFCPROPERTYSINGLEVALUE('BuildingHeightLimit',$,$,$) ; +#23=IFCPROPERTYSINGLEVALUE('TotalArea',$,IFCAREAMEASURE(0.),$) ; +#27=IFCQUANTITYAREA('GrossArea',$,$,0.,$) ; +#26=IFCQUANTITYLENGTH('GrossPerimeter',$,$,0.,$) ; +#30=IFCRELAGGREGATES('0zmWL_A70YcDDM_YujSH0F',#5,'IFCPROJECT_Container','Container for children of IFCPROJECT',#16,(#17)) ; +#24=IFCRELDEFINESBYPROPERTIES('0zk0U9LnW8clHTzW2qJ5un',#5,'Pset_SiteCommon',$,(#17),#18) ; +#28=IFCRELDEFINESBYPROPERTIES('0zlrk1OgX4cOakeny5PO0Q',#5,'Qto_SiteBaseQuantities',$,(#17),#25) ; +#7=IFCSIUNIT(*,.LENGTHUNIT.,.MILLI.,.METRE.) ; +#8=IFCSIUNIT(*,.AREAUNIT.,$,.SQUARE_METRE.) ; +#9=IFCSIUNIT(*,.VOLUMEUNIT.,$,.CUBIC_METRE.) ; +#10=IFCSIUNIT(*,.PLANEANGLEUNIT.,$,.RADIAN.) ; +#17=IFCSITE('XWMFQSWkQuXuIrREJrl6hO',#5,'Site00000001_040A77B3-0000-4D00-63E3A53800021867',$,$,#29,$,$,.ELEMENT.,$,$,$,$,$) ; +ENDSEC; +END-ISO-10303-21; From 1674ebd0f6eb6a901a3d7baf8eb708ad181748d1 Mon Sep 17 00:00:00 2001 From: gmn3DS <124370855+gmn3DS@users.noreply.github.com> Date: Tue, 21 Feb 2023 14:20:27 +0100 Subject: [PATCH 2/4] Add files via upload --- ...DS_GMN16_IfcTunnel_Sprint_1_2_Georef_A.ifc | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 PullRequest/3DS_GMN16_IfcTunnel_Sprint_1_2_Georef_A.ifc diff --git a/PullRequest/3DS_GMN16_IfcTunnel_Sprint_1_2_Georef_A.ifc b/PullRequest/3DS_GMN16_IfcTunnel_Sprint_1_2_Georef_A.ifc new file mode 100644 index 00000000..ccb1e8f6 --- /dev/null +++ b/PullRequest/3DS_GMN16_IfcTunnel_Sprint_1_2_Georef_A.ifc @@ -0,0 +1,49 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition[ReferenceView]'),'2;1'); + +FILE_NAME('\\\\?\\C:\\Users\\GMN16\\Documents\\IFC\\bSI\\Sprint1.2\\3DS_GMN16_IfcTunnel_Sprint_1_2_Georef_A.ifc','2023-02-21T12:40:32+00:00',$,$,'3DEXPERIENCE PlatformUnofficial Packaging Version','3DEXPERIENCE Platform IFC4X4_17239AAA',$); + +FILE_SCHEMA(('IFC4X4_17239AAA')); + +ENDSEC; +DATA; +#5=IFCOWNERHISTORY(#3,#4,$,.NOTDEFINED.,$,$,$,1676983232) ; +#3=IFCPERSONANDORGANIZATION(#2,#1,$) ; +#2=IFCPERSON($,'FamilyName',$,$,$,$,$,$) ; +#1=IFCORGANIZATION($,'Name of Organization',$,$,$) ; +#4=IFCAPPLICATION(#1,'0.1','CATIA Data Exchange','CATIA') ; +#12=IFCCARTESIANPOINT((0.,0.,0.)) ; +#35=IFCCARTESIANPOINT((0.,0.,0.)) ; +#13=IFCDIRECTION((0.,0.,1.)) ; +#14=IFCDIRECTION((1.,0.,0.)) ; +#29=IFCDIRECTION((0.,1.,0.)) ; +#36=IFCDIRECTION((0.,0.,1.)) ; +#37=IFCDIRECTION((1.,0.,0.)) ; +#11=IFCAXIS2PLACEMENT3D(#12,#13,#14) ; +#34=IFCAXIS2PLACEMENT3D(#35,#36,#37) ; +#15=IFCGEOMETRICREPRESENTATIONCONTEXT('3D','Model',3,1.E-05,#11,#29) ; +#6=IFCUNITASSIGNMENT((#7,#8,#9,#10)) ; +#25=IFCELEMENTQUANTITY('09T4RvNOnWtNuap4Y0HlWa',#5,'Qto_SiteBaseQuantities',$,$,(#26,#27)) ; +#30=IFCLOCALPLACEMENT($,#34) ; +#33=IFCMAPCONVERSION(#15,#32,604177259.656,5362693120.45,0.,$,$,$) ; +#16=IFCPROJECT('09Qaa433D6tvuho1e78aP7',#5,'Project','Default Project',$,$,$,(#15),#6) ; +#32=IFCPROJECTEDCRS('EPSG:6893','WGS 84 / World Mercator + EGM2008 height',$,$,$,$,#7) ; +#18=IFCPROPERTYSET('09RNC0KViat_bJ7oelBjSx',#5,'Pset_SiteCommon',$,(#19,#20,#21,#22,#23)) ; +#19=IFCPROPERTYSINGLEVALUE('BuildableArea',$,IFCAREAMEASURE(0.),$) ; +#20=IFCPROPERTYSINGLEVALUE('SiteCoverageRatio',$,$,$) ; +#21=IFCPROPERTYSINGLEVALUE('FloorAreaRatio',$,$,$) ; +#22=IFCPROPERTYSINGLEVALUE('BuildingHeightLimit',$,$,$) ; +#23=IFCPROPERTYSINGLEVALUE('TotalArea',$,IFCAREAMEASURE(0.),$) ; +#27=IFCQUANTITYAREA('GrossArea',$,$,0.,$) ; +#26=IFCQUANTITYLENGTH('GrossPerimeter',$,$,0.,$) ; +#31=IFCRELAGGREGATES('09UnhoQHmSt1DrUcVHNXaE',#5,'IFCPROJECT_Container','Container for children of IFCPROJECT',#16,(#17)) ; +#24=IFCRELDEFINESBYPROPERTIES('09SHpz5yG2tZDyTZbNEcSm',#5,'Pset_SiteCommon',$,(#17),#18) ; +#28=IFCRELDEFINESBYPROPERTIES('09Tt3s8rG_tSXC8rYeKeaP',#5,'Qto_SiteBaseQuantities',$,(#17),#25) ; +#7=IFCSIUNIT(*,.LENGTHUNIT.,.MILLI.,.METRE.) ; +#8=IFCSIUNIT(*,.AREAUNIT.,$,.SQUARE_METRE.) ; +#9=IFCSIUNIT(*,.VOLUMEUNIT.,$,.CUBIC_METRE.) ; +#10=IFCSIUNIT(*,.PLANEANGLEUNIT.,$,.RADIAN.) ; +#17=IFCSITE('XWMFQSWkJVR4nZahhTlPpq',#5,'Site00000001_040A77B3-0000-4788-63F4BA1A00022E85',$,$,#30,$,$,.ELEMENT.,(43,31,27,699999),(5,25,38,700000),0.,$,$) ; +ENDSEC; +END-ISO-10303-21; From 7b93d2928052c6ec9b9ad15e69d2648034fb0267 Mon Sep 17 00:00:00 2001 From: gmn3DS <124370855+gmn3DS@users.noreply.github.com> Date: Tue, 21 Feb 2023 14:28:06 +0100 Subject: [PATCH 3/4] Delete 3DS_GMN16_IfcTunnel_Sprint_1_2_Georef_A.ifc --- ...DS_GMN16_IfcTunnel_Sprint_1_2_Georef_A.ifc | 49 ------------------- 1 file changed, 49 deletions(-) delete mode 100644 PullRequest/3DS_GMN16_IfcTunnel_Sprint_1_2_Georef_A.ifc diff --git a/PullRequest/3DS_GMN16_IfcTunnel_Sprint_1_2_Georef_A.ifc b/PullRequest/3DS_GMN16_IfcTunnel_Sprint_1_2_Georef_A.ifc deleted file mode 100644 index ccb1e8f6..00000000 --- a/PullRequest/3DS_GMN16_IfcTunnel_Sprint_1_2_Georef_A.ifc +++ /dev/null @@ -1,49 +0,0 @@ -ISO-10303-21; -HEADER; -FILE_DESCRIPTION(('ViewDefinition[ReferenceView]'),'2;1'); - -FILE_NAME('\\\\?\\C:\\Users\\GMN16\\Documents\\IFC\\bSI\\Sprint1.2\\3DS_GMN16_IfcTunnel_Sprint_1_2_Georef_A.ifc','2023-02-21T12:40:32+00:00',$,$,'3DEXPERIENCE PlatformUnofficial Packaging Version','3DEXPERIENCE Platform IFC4X4_17239AAA',$); - -FILE_SCHEMA(('IFC4X4_17239AAA')); - -ENDSEC; -DATA; -#5=IFCOWNERHISTORY(#3,#4,$,.NOTDEFINED.,$,$,$,1676983232) ; -#3=IFCPERSONANDORGANIZATION(#2,#1,$) ; -#2=IFCPERSON($,'FamilyName',$,$,$,$,$,$) ; -#1=IFCORGANIZATION($,'Name of Organization',$,$,$) ; -#4=IFCAPPLICATION(#1,'0.1','CATIA Data Exchange','CATIA') ; -#12=IFCCARTESIANPOINT((0.,0.,0.)) ; -#35=IFCCARTESIANPOINT((0.,0.,0.)) ; -#13=IFCDIRECTION((0.,0.,1.)) ; -#14=IFCDIRECTION((1.,0.,0.)) ; -#29=IFCDIRECTION((0.,1.,0.)) ; -#36=IFCDIRECTION((0.,0.,1.)) ; -#37=IFCDIRECTION((1.,0.,0.)) ; -#11=IFCAXIS2PLACEMENT3D(#12,#13,#14) ; -#34=IFCAXIS2PLACEMENT3D(#35,#36,#37) ; -#15=IFCGEOMETRICREPRESENTATIONCONTEXT('3D','Model',3,1.E-05,#11,#29) ; -#6=IFCUNITASSIGNMENT((#7,#8,#9,#10)) ; -#25=IFCELEMENTQUANTITY('09T4RvNOnWtNuap4Y0HlWa',#5,'Qto_SiteBaseQuantities',$,$,(#26,#27)) ; -#30=IFCLOCALPLACEMENT($,#34) ; -#33=IFCMAPCONVERSION(#15,#32,604177259.656,5362693120.45,0.,$,$,$) ; -#16=IFCPROJECT('09Qaa433D6tvuho1e78aP7',#5,'Project','Default Project',$,$,$,(#15),#6) ; -#32=IFCPROJECTEDCRS('EPSG:6893','WGS 84 / World Mercator + EGM2008 height',$,$,$,$,#7) ; -#18=IFCPROPERTYSET('09RNC0KViat_bJ7oelBjSx',#5,'Pset_SiteCommon',$,(#19,#20,#21,#22,#23)) ; -#19=IFCPROPERTYSINGLEVALUE('BuildableArea',$,IFCAREAMEASURE(0.),$) ; -#20=IFCPROPERTYSINGLEVALUE('SiteCoverageRatio',$,$,$) ; -#21=IFCPROPERTYSINGLEVALUE('FloorAreaRatio',$,$,$) ; -#22=IFCPROPERTYSINGLEVALUE('BuildingHeightLimit',$,$,$) ; -#23=IFCPROPERTYSINGLEVALUE('TotalArea',$,IFCAREAMEASURE(0.),$) ; -#27=IFCQUANTITYAREA('GrossArea',$,$,0.,$) ; -#26=IFCQUANTITYLENGTH('GrossPerimeter',$,$,0.,$) ; -#31=IFCRELAGGREGATES('09UnhoQHmSt1DrUcVHNXaE',#5,'IFCPROJECT_Container','Container for children of IFCPROJECT',#16,(#17)) ; -#24=IFCRELDEFINESBYPROPERTIES('09SHpz5yG2tZDyTZbNEcSm',#5,'Pset_SiteCommon',$,(#17),#18) ; -#28=IFCRELDEFINESBYPROPERTIES('09Tt3s8rG_tSXC8rYeKeaP',#5,'Qto_SiteBaseQuantities',$,(#17),#25) ; -#7=IFCSIUNIT(*,.LENGTHUNIT.,.MILLI.,.METRE.) ; -#8=IFCSIUNIT(*,.AREAUNIT.,$,.SQUARE_METRE.) ; -#9=IFCSIUNIT(*,.VOLUMEUNIT.,$,.CUBIC_METRE.) ; -#10=IFCSIUNIT(*,.PLANEANGLEUNIT.,$,.RADIAN.) ; -#17=IFCSITE('XWMFQSWkJVR4nZahhTlPpq',#5,'Site00000001_040A77B3-0000-4788-63F4BA1A00022E85',$,$,#30,$,$,.ELEMENT.,(43,31,27,699999),(5,25,38,700000),0.,$,$) ; -ENDSEC; -END-ISO-10303-21; From 92db7550e3c274afaf3719707346f09f798618d9 Mon Sep 17 00:00:00 2001 From: MONGONGNON Guillaume Date: Tue, 21 Feb 2023 14:50:02 +0100 Subject: [PATCH 4/4] - Sprint 1.2 - Georef_A --- .github/pull_request_template.md | 17 +++ .github/workflows/schema-check.yml | 118 ++++++++++++++++++ FAQ.md | 31 +++++ ...DS_GMN16_IfcTunnel_Sprint_1_2_Georef_A.ifc | 49 ++++++++ PullRequest/Sprint01_GMN16_3DS.ifc | 46 +++++++ README.md | 18 +++ Recordings/README.md | 5 + about.md | 75 +++++++++++ files/project_team/example_sprint_1.1.ifc | 58 +++++++++ files/project_team/larswik-test.ifc | 56 +++++++++ project_plan.pdf | Bin 0 -> 92320 bytes sprints/sprint1_1.md | 46 +++++++ sprints/sprint1_2.md | 28 +++++ sprints/sprint1_3.md | 28 +++++ sprints/sprint2_1.md | 35 ++++++ sprints/sprint2_2.md | 31 +++++ sprints/sprint2_3.md | 34 +++++ 17 files changed, 675 insertions(+) create mode 100644 .github/pull_request_template.md create mode 100644 .github/workflows/schema-check.yml create mode 100644 FAQ.md create mode 100644 PullRequest/3DS_GMN16_IfcTunnel_Sprint_1_2_Georef_A.ifc create mode 100644 PullRequest/Sprint01_GMN16_3DS.ifc create mode 100644 README.md create mode 100644 Recordings/README.md create mode 100644 about.md create mode 100644 files/project_team/example_sprint_1.1.ifc create mode 100644 files/project_team/larswik-test.ifc create mode 100644 project_plan.pdf create mode 100644 sprints/sprint1_1.md create mode 100644 sprints/sprint1_2.md create mode 100644 sprints/sprint1_3.md create mode 100644 sprints/sprint2_1.md create mode 100644 sprints/sprint2_2.md create mode 100644 sprints/sprint2_3.md diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 00000000..fa8a5388 --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,17 @@ +## File + +*Provide a short summary (3-5 lines):* +*For example, is it a new file, an update to an existing one?* +*Provide some bullet points about the content of the file, e.g. terrain model, tunnel structure, etc.* + + +## Covered Concept Templates - Usages Included + +*Please list all Usages you have implemented.* + +1. + + +## Miscellaneous + +*Please use this area to convey anything else.* diff --git a/.github/workflows/schema-check.yml b/.github/workflows/schema-check.yml new file mode 100644 index 00000000..f8f5a8ea --- /dev/null +++ b/.github/workflows/schema-check.yml @@ -0,0 +1,118 @@ +name: "IFC schema & usage check" + +on: + pull_request: + branches: + - main + +jobs: + filter: + runs-on: ubuntu-latest + outputs: + hasifcs: ${{ steps.file_changes.outputs.any_changed }} + allchangedfiles: ${{ steps.file_changes.outputs.all_changed_files }} + removedfiles: ${{ steps.file_changes.outputs.deleted_files }} + steps: + - name: Checkout repository + uses: actions/checkout@v3 + with: + fetch-depth: 0 # OR "2" -> To retrieve the preceding commit. + - name: Get changed files + id: file_changes + uses: tj-actions/changed-files@v35 + with: + files: | + **/*.ifc + files_separator: ";" + - name: Logging + run: | + echo 'The following files were identified for checking:' >> $GITHUB_STEP_SUMMARY + echo '' >> $GITHUB_STEP_SUMMARY + IFS=';'; arrIN=(${{ steps.file_changes.outputs.all_changed_files }}); unset IFS; + for i in "${arrIN[@]}"; do + echo '- ' $i >> $GITHUB_STEP_SUMMARY + done + echo '' >> $GITHUB_STEP_SUMMARY + check-ifc: + runs-on: windows-latest + needs: filter + if: ${{ needs.filter.outputs.hasifcs == 'true' }} + defaults: + run: + shell: pwsh + outputs: + hasfailing: ${{ steps.output.outputs.hasfailing }} + steps: + - name: Checkout repository + uses: actions/checkout@v3 + - name: Verify the workspace context + run: echo 'Workspace directory is ${{ github.workspace }}' + - name: Download the file + id: downloadfile + run: | + mkdir download + $urlPath = "https://thc.lyforms.com/documents/thc/public/IFChecker.TunnelDeployment.zip" + $path = "${{ github.workspace }}\download\IFChecker.TunnelDeployment.zip" + Invoke-WebRequest -URI $urlPath -OutFile $path + Expand-Archive $path -DestinationPath "${{ github.workspace }}\.github\workflows\" + - name: Check IFC files + id: checker + run: | + mkdir results + $cmnd = "${{ github.workspace }}\.github\workflows\IFChecker.TunnelDeployment.exe" + "${{ needs.filter.outputs.allchangedfiles }}".Split(";") | ForEach { + if( $removed -contains $_ ) {continue} + $filename = $("$_").Substring($("$_").LastIndexOf("/")+1) + if( [IO.Path]::GetExtension($filename) -ne ".ifc" ) {continue} + Write-Host "Checking filename:" "$("$filename")" " --> writing to" "$("${{ github.workspace }}\results\$filename.md")" + $ifcFilePath = $("${{ github.workspace }}\$_") + $outFilePath = $("${{ github.workspace }}\results\Report_$filename.md") + & $cmnd $ifcFilePath $outFilePath "Sprint_1.1" + Write-Host "Last exit code was:" "$LastExitCode" + } + - name: Upload check results + uses: actions/upload-artifact@v3 + with: + name: IFC_check_results + path: ${{ github.workspace }}\results + - name: Publish results + id: results + run: | + dir results + Get-ChildItem results | ForEach { + Get-Content $_.FullName | ForEach { + echo $_ >> $env:GITHUB_STEP_SUMMARY + } + } + - name: Prepare output + id: output + run: | + echo "hasfailing=false" >> $env:GITHUB_OUTPUT + Get-ChildItem results | ForEach { + if( (Get-Content $_.FullName | ForEach-Object {$_ -match "failing"}) -contains $True ) { + echo "hasfailing=true" >> $env:GITHUB_OUTPUT + break + } + } + inform-ifc: + runs-on: ubuntu-latest + needs: check-ifc + steps: + - name: Inform failure + if: ${{ needs.check-ifc.outputs.hasfailing == 'true' }} + id: inform_failure + uses: actions/github-script@v6 + with: + script: | + core.setFailed('The submitted IFC file(s) have mistakes. Review the report(s).') + - name: Inform correctness + if: ${{ needs.check-ifc.outputs.hasfailing == 'false' }} + id: inform_right + run: | + echo ":heavy_check_mark: We could not find any mistakes in the submitted IFC files. :rocket:" >> $GITHUB_STEP_SUMMARY + echo "" + echo ":exclamation: Note: :exclamation:" + echo "This does not mean that the file is *completely* correct, though. :broken_heart:" >> $GITHUB_STEP_SUMMARY + echo "We are not checking everything, only what is required by the current [sprint](https://github.com/bSI-InfraRoom/IFC-Tunnel-Deployment/tree/main/sprints)." >> $GITHUB_STEP_SUMMARY + + diff --git a/FAQ.md b/FAQ.md new file mode 100644 index 00000000..9ed2fc2b --- /dev/null +++ b/FAQ.md @@ -0,0 +1,31 @@ +# FAQ + + +**Where can I find the latest IFC schema?** + +See [here](https://github.com/bSI-InfraRoom/IFC-Documentation-Tunnel/tree/main/4_4_0_0/general/EXPRESS). + +**Where can I find the latest IFC documentation?** + +See [here](https://bsi-infraroom.github.io/IFC-Documentation-Tunnel/4_4_0_0/general/HTML/). + +This page will be updated during the course of the programme following the updates from [this repository](https://github.com/bSI-InfraRoom/IFC-Documentation-Tunnel). + +**Where can I find the change log?** + +See [here](https://bsi-infraroom.github.io/IFC-Documentation-Tunnel/4_4_0_0/general/HTML/link/annex-f.htm). + +**The check is failing. Where is the report?** + +![grafik](https://user-images.githubusercontent.com/59165496/214881281-2f428c31-2de1-48f3-8564-2a7b27fe4174.png "In the Action tab, click on *Summary*.") + +**I need the link to the technical call.** + +See [here](./README.md#Contact). + +**I have a question not on this list.** + +You have two options: + +1. Open a new [issue](https://github.com/bSI-InfraRoom/IFC-Tunnel-Deployment/issues/new). +2. Join us at technical support calls every Thursday 8am and 6pm CET and state your question orally. diff --git a/PullRequest/3DS_GMN16_IfcTunnel_Sprint_1_2_Georef_A.ifc b/PullRequest/3DS_GMN16_IfcTunnel_Sprint_1_2_Georef_A.ifc new file mode 100644 index 00000000..da4d3a38 --- /dev/null +++ b/PullRequest/3DS_GMN16_IfcTunnel_Sprint_1_2_Georef_A.ifc @@ -0,0 +1,49 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition[ReferenceView]'),'2;1'); + +FILE_NAME('\\\\?\\C:\\Users\\GMN16\\Documents\\IFC\\bSI\\Sprint1.2\\3DS_GMN16_IfcTunnel_Sprint_1_2_Georef_A.ifc','2023-02-21T12:40:32+00:00',$,$,'3DEXPERIENCE PlatformUnofficial Packaging Version','3DEXPERIENCE Platform IFC4X4_17239AAA',$); + +FILE_SCHEMA(('IFC4X4_17239AAA')); + +ENDSEC; +DATA; +#5=IFCOWNERHISTORY(#3,#4,$,.NOTDEFINED.,$,$,$,1676983232) ; +#3=IFCPERSONANDORGANIZATION(#2,#1,$) ; +#2=IFCPERSON($,'FamilyName',$,$,$,$,$,$) ; +#1=IFCORGANIZATION($,'Name of Organization',$,$,$) ; +#4=IFCAPPLICATION(#1,'0.1','CATIA Data Exchange','CATIA') ; +#12=IFCCARTESIANPOINT((0.,0.,0.)) ; +#35=IFCCARTESIANPOINT((0.,0.,0.)) ; +#13=IFCDIRECTION((0.,0.,1.)) ; +#14=IFCDIRECTION((1.,0.,0.)) ; +#29=IFCDIRECTION((0.,1.,0.)) ; +#36=IFCDIRECTION((0.,0.,1.)) ; +#37=IFCDIRECTION((1.,0.,0.)) ; +#11=IFCAXIS2PLACEMENT3D(#12,#13,#14) ; +#34=IFCAXIS2PLACEMENT3D(#35,#36,#37) ; +#15=IFCGEOMETRICREPRESENTATIONCONTEXT('3D','Model',3,1.E-05,#11,#29) ; +#6=IFCUNITASSIGNMENT((#7,#8,#9,#10)) ; +#25=IFCELEMENTQUANTITY('09T4RvNOnWtNuap4Y0HlWa',#5,'Qto_SiteBaseQuantities',$,$,(#26,#27)) ; +#30=IFCLOCALPLACEMENT($,#34) ; +#33=IFCMAPCONVERSION(#15,#32,604177259.656,5362693120.45,0.,$,$,$) ; +#16=IFCPROJECT('09Qaa433D6tvuho1e78aP7',#5,'Project','Default Project',$,$,$,(#15),#6) ; +#32=IFCPROJECTEDCRS('EPSG:6893','WGS 84 / World Mercator + EGM2008 height',$,$,$,$,#7) ; +#18=IFCPROPERTYSET('09RNC0KViat_bJ7oelBjSx',#5,'Pset_SiteCommon',$,(#19,#20,#21,#22,#23)) ; +#19=IFCPROPERTYSINGLEVALUE('BuildableArea',$,IFCAREAMEASURE(0.),$) ; +#20=IFCPROPERTYSINGLEVALUE('SiteCoverageRatio',$,$,$) ; +#21=IFCPROPERTYSINGLEVALUE('FloorAreaRatio',$,$,$) ; +#22=IFCPROPERTYSINGLEVALUE('BuildingHeightLimit',$,$,$) ; +#23=IFCPROPERTYSINGLEVALUE('TotalArea',$,IFCAREAMEASURE(0.),$) ; +#27=IFCQUANTITYAREA('GrossArea',$,$,0.,$) ; +#26=IFCQUANTITYLENGTH('GrossPerimeter',$,$,0.,$) ; +#31=IFCRELAGGREGATES('09UnhoQHmSt1DrUcVHNXaE',#5,'IFCPROJECT_Container','Container for children of IFCPROJECT',#16,(#17)) ; +#24=IFCRELDEFINESBYPROPERTIES('09SHpz5yG2tZDyTZbNEcSm',#5,'Pset_SiteCommon',$,(#17),#18) ; +#28=IFCRELDEFINESBYPROPERTIES('09Tt3s8rG_tSXC8rYeKeaP',#5,'Qto_SiteBaseQuantities',$,(#17),#25) ; +#7=IFCSIUNIT(*,.LENGTHUNIT.,.MILLI.,.METRE.) ; +#8=IFCSIUNIT(*,.AREAUNIT.,$,.SQUARE_METRE.) ; +#9=IFCSIUNIT(*,.VOLUMEUNIT.,$,.CUBIC_METRE.) ; +#10=IFCSIUNIT(*,.PLANEANGLEUNIT.,$,.RADIAN.) ; +#17=IFCSITE('XWMFQSWkJVR4nZahhTlPpq',#5,'Site00000001_040A77B3-0000-4788-63F4BA1A00022E85',$,$,#30,$,$,.ELEMENT.,(43,31,27,699999),(5,25,38,700000),0.,$,$) ; +ENDSEC; +END-ISO-10303-21; diff --git a/PullRequest/Sprint01_GMN16_3DS.ifc b/PullRequest/Sprint01_GMN16_3DS.ifc new file mode 100644 index 00000000..a05b1932 --- /dev/null +++ b/PullRequest/Sprint01_GMN16_3DS.ifc @@ -0,0 +1,46 @@ +ISO-10303-21; +HEADER; +FILE_DESCRIPTION(('ViewDefinition[ReferenceView]'),'2;1'); + +FILE_NAME('\\\\?\\C:\\Users\\GMN16\\Documents\\IFC\\bSI\\Sprint10\\Site00000001_040A77B3-0000-4D00-63E3A53800021867 ---.000.ifc','2023-02-08T13:38:02+00:00',$,$,'3DEXPERIENCE PlatformUnofficial Packaging Version','3DEXPERIENCE Platform IFC4X4',$); + +FILE_SCHEMA(('IFC4X4')); + +ENDSEC; +DATA; +#5=IFCOWNERHISTORY(#3,#4,$,.NOTDEFINED.,$,$,$,1675863482) ; +#3=IFCPERSONANDORGANIZATION(#2,#1,$) ; +#2=IFCPERSON($,'FamilyName',$,$,$,$,$,$) ; +#1=IFCORGANIZATION($,'Name of Organization',$,$,$) ; +#4=IFCAPPLICATION(#1,'0.1','CATIA Data Exchange','CATIA') ; +#12=IFCCARTESIANPOINT((0.,0.,0.)) ; +#32=IFCCARTESIANPOINT((0.,0.,0.)) ; +#13=IFCDIRECTION((0.,0.,1.)) ; +#14=IFCDIRECTION((1.,0.,0.)) ; +#33=IFCDIRECTION((0.,0.,1.)) ; +#34=IFCDIRECTION((1.,0.,0.)) ; +#11=IFCAXIS2PLACEMENT3D(#12,#13,#14) ; +#31=IFCAXIS2PLACEMENT3D(#32,#33,#34) ; +#15=IFCGEOMETRICREPRESENTATIONCONTEXT($,'Model',3,1.E-05,#11,$) ; +#6=IFCUNITASSIGNMENT((#7,#8,#9,#10)) ; +#25=IFCELEMENTQUANTITY('0zl3657E1ccJu6J13SMEyb',#5,'Qto_SiteBaseQuantities',$,$,(#26,#27)) ; +#29=IFCLOCALPLACEMENT($,#31) ; +#16=IFCPROJECT('0ziZEGIuXCd5yDI69ZD3r8',#5,'Project','Default Project',$,$,$,(#15),#6) ; +#18=IFCPROPERTYSET('0zjLsC4L0gcwardt6BGCqy',#5,'Pset_SiteCommon',$,(#19,#20,#21,#22,#23)) ; +#19=IFCPROPERTYSINGLEVALUE('BuildableArea',$,IFCAREAMEASURE(0.),$) ; +#20=IFCPROPERTYSINGLEVALUE('SiteCoverageRatio',$,$,$) ; +#21=IFCPROPERTYSINGLEVALUE('FloorAreaRatio',$,$,$) ; +#22=IFCPROPERTYSINGLEVALUE('BuildingHeightLimit',$,$,$) ; +#23=IFCPROPERTYSINGLEVALUE('TotalArea',$,IFCAREAMEASURE(0.),$) ; +#27=IFCQUANTITYAREA('GrossArea',$,$,0.,$) ; +#26=IFCQUANTITYLENGTH('GrossPerimeter',$,$,0.,$) ; +#30=IFCRELAGGREGATES('0zmWL_A70YcDDM_YujSH0F',#5,'IFCPROJECT_Container','Container for children of IFCPROJECT',#16,(#17)) ; +#24=IFCRELDEFINESBYPROPERTIES('0zk0U9LnW8clHTzW2qJ5un',#5,'Pset_SiteCommon',$,(#17),#18) ; +#28=IFCRELDEFINESBYPROPERTIES('0zlrk1OgX4cOakeny5PO0Q',#5,'Qto_SiteBaseQuantities',$,(#17),#25) ; +#7=IFCSIUNIT(*,.LENGTHUNIT.,.MILLI.,.METRE.) ; +#8=IFCSIUNIT(*,.AREAUNIT.,$,.SQUARE_METRE.) ; +#9=IFCSIUNIT(*,.VOLUMEUNIT.,$,.CUBIC_METRE.) ; +#10=IFCSIUNIT(*,.PLANEANGLEUNIT.,$,.RADIAN.) ; +#17=IFCSITE('XWMFQSWkQuXuIrREJrl6hO',#5,'Site00000001_040A77B3-0000-4D00-63E3A53800021867',$,$,#29,$,$,.ELEMENT.,$,$,$,$,$) ; +ENDSEC; +END-ISO-10303-21; diff --git a/README.md b/README.md new file mode 100644 index 00000000..820d54fd --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# IFC-for Tunneling Deployment repository + +## IFC-for-Tunneling Deployment programme + +The main goal of the *IFC-for-Tunneling Deployment programme* is to refine, validate and implement + the IFC for Tunneling Draft Standard (issued August 2022) so to make it + a bSI Candidate Standard before it is submitted into the ISO publication process. +Read more about the programme [here](./about.md). + + +## Contact + +For general inquiries about the IFC-for-Tunneling project + or the IFC-for-Tunneling Deployment programme, please contact: Michel Rives, Project Manager, or André Borrmann, Technical Lead, at: + +> [info.deployment.ifctunnel@lists.lrz.de](mailto:info.deployment.ifctunnel@lists.lrz.de) + +For inquiries regarding this GitHub repository or the development process, please [open an issue](https://github.com/bSI-InfraRoom/IFC-Tunnel-Deployment/issues/new). diff --git a/Recordings/README.md b/Recordings/README.md new file mode 100644 index 00000000..fee2dffb --- /dev/null +++ b/Recordings/README.md @@ -0,0 +1,5 @@ +# Links to recordings + +[Kick-off 2023-01-26](https://www.youtube.com/watch?v=VbaJULfcHz8) + +[Kick-off 2023-01-27](https://www.youtube.com/watch?v=VbaJULfcHz8) diff --git a/about.md b/about.md new file mode 100644 index 00000000..82fef0a2 --- /dev/null +++ b/about.md @@ -0,0 +1,75 @@ +# IFC-for-Tunneling Deployment programme + +## Goal + +The main goal of the *IFC-for-Tunneling Deployment programme* is to refine, validate and implement + the IFC for Tunneling Draft Standard (issued August 2022) so to make it + a bSI Candidate Standard before it is submitted into the ISO publication process. + + +## Target Audience + +The programme is primarily targeted at providers of: + +- professional design or construction management software, +- collaborative BIM platforms, +- BIM Viewers/Checkers, +- customed solutions, +- SDK packages, +- machine guidance solutions, +- assets management solutions, and/or +- integration services, + +that are addressing the needs of the underground infrastructures industry. + + +## Background + +The IFC for Tunneling Draft Standard was developed during 2020-2022 by bSI's IFC-for-Tunnelling Team + (made of more than 55+ geotechnicians, excavation experts, systems operators from all over the world) + and expands upon the IFC4.3 standard (released August 2021). +It covers the following disciplines: + +- geotechnical situations and their uncertainties, +- mechanized and traditional excavation processes, lining technics, support and reinforcement measures, +- systems incl. ventilation, lightning, drainage & dewatering, safety & evacuation, HV/LV. + + +## Approach + +As part of this Deployment programme we have prepared a set of activities, tools and IFC expertise so to provide you + with the solid technical support you need to efficiently implement bSI's IFC-for-Tunnelling (IFC for Tunneling) concepts, including: + +- guidance to best understand the IFC for Tunneling *HTML documentation* (objects/properties), and the IFC for Tunneling *Express schema extensions*, +- royalty-free domain-specific datasets for testing purposes, +- unit tests (concepts usages, aka how to exploit the concepts) through a 3-level approach: + - Level 1 : concept 'project' usages (all IfcProject usages), + - Level 2 : concept 'sub-project' usages (types, spatial-or-linear structures, groupings), + - Level 3 : concept 'entity' usages (geometry, material, classification, ownerships), +- shared GitHub platform with quality/consistency checking, and +- examples of code and IFC for Tunneling files. + + +## Timeplan + +Timing-wise, the IFC-for-Tunnelling (IFC for Tunneling) Deployment programme + is organized to last from January till June 2023. +The work is divided into sprints, with each sprint roughly lasting 4 weeks + (start – implement/submit – QA/check – fix – deliver) - an overall plan is found [here](./project_plan.pdf). + +During these sprints, we offer 2 support sessions per week (to best accomodate timezones), + to pick up from as need be: +- every Thursday 8am CET and +- every Thursday 6pm CET. + + +## Reporting + +We intend to report upon the progress of the programme through the bSI website/blog as well as + through the [International Tunnelling Association (ITA)](https://www.ita-aites.org) and its national branches. + + +## Participation + +The participation is free-of-charge, but we expect a minimum commitment in terms of resources + so to properly endorse the programme. diff --git a/files/project_team/example_sprint_1.1.ifc b/files/project_team/example_sprint_1.1.ifc new file mode 100644 index 00000000..14d5e408 --- /dev/null +++ b/files/project_team/example_sprint_1.1.ifc @@ -0,0 +1,58 @@ +ISO-10303-21; + +/* ------- This file was produced manually for IFC Infra Extension Deployment project. --------- */ +/* ------- And further adapted for IFC-for-Tunneling Deployment Programme ---------------------- */ +/* ------- Stefan Jaud, stefan@the-hard-code.com, 2023.01.25. ---------------------------------- */ + +HEADER; +FILE_DESCRIPTION (('ViewDefinition [Ifc4x4NotAssigned]'), '2;1'); +FILE_NAME ('example_sprint_1.1.ifc', '2023-01-26T18:00:00', ('Stefan Jaud'), ('based on bSI Infra Extension Deployment project'), 'manual text editing', 'SublimeText 3.0', 'GitHub pull request'); +FILE_SCHEMA (('IFC4X4_notYetAgreed')); +ENDSEC; + +DATA; + +/* ------- General definitions ----------------------------------------------------------------- */ +#1 = IFCDIMENSIONALEXPONENTS(0, 0, 0, 0, 0, 0, 0); +/* ------- Reusable X direction ---------------------------------------------------------------- */ +#2 = IFCDIRECTION((1., 0., 0.)); +/* ------- Reusable Y direction ---------------------------------------------------------------- */ +#3 = IFCDIRECTION((0., 1., 0.)); +/* ------- Reusable Z direction ---------------------------------------------------------------- */ +#4 = IFCDIRECTION((0., 0., 1.)); +/* ------- Reusable origin --------------------------------------------------------------------- */ +#5 = IFCCARTESIANPOINT((0., 0., 0.)); + +/* ------- IfcProject is the top most element in the project structure ------------------------- */ +#16 = IFCPROJECT('2DAvEupIz0HQr73cMaawtY', $, 'Sprint 1.1', 'Ifc Tunnel Deployment Sprint 1.1.', $, $, $, (#28), #17); + +/* ------- IfcUnitAssignment defines the global units for measures and values ------------------ */ +/* ------- when the units are not otherwise defined -------------------------------------------- */ +#17 = IFCUNITASSIGNMENT((#18, #19, #20, #24, #25, #26, #27)); +#18 = IFCSIUNIT(*, .LENGTHUNIT., $, .METRE.); +#19 = IFCSIUNIT(*, .AREAUNIT., $, .SQUARE_METRE.); +#20 = IFCSIUNIT(*, .VOLUMEUNIT., $, .CUBIC_METRE.); + +/* ------- Example of non-SI unit used for angles: degree instead of radian -------------------- */ +#22 = IFCSIUNIT(*, .PLANEANGLEUNIT., $, .RADIAN.); +#23 = IFCMEASUREWITHUNIT(IFCPLANEANGLEMEASURE(0.017453292519943295), #22); +#24 = IFCCONVERSIONBASEDUNIT(#1, .PLANEANGLEUNIT., 'degree', #23); + +#25 = IFCSIUNIT(*, .MASSUNIT., .KILO., .GRAM.); +#26 = IFCSIUNIT(*, .TIMEUNIT., $, .SECOND.); +#27 = IFCMONETARYUNIT('EUR'); + +/* ------- IfcGeometricRepresentationContext is the global context of the geometry ------------- */ +#28 = IFCGEOMETRICREPRESENTATIONCONTEXT('Model', '3D', 3, 1.E-6, #29, #30); +#29 = IFCAXIS2PLACEMENT3D(#5, #4, #2); +#30 = IFCDIRECTION((0.,1.)); + +/* ------- IfcRelDeclares with Actor declaration ----------------------------------------------- */ +#51 = IFCRELDECLARES('2DAvEupIz0HQr73cMacwtY', $, $, $, #16, (#52)); +#52 = IFCACTOR('2DAvEupIz0HQr73cMacwtX', $, $, $, $, #53); +#53 = IFCPERSON($, 'Jaud', 'Stefan', $, $, $, #54, $); +#54 = IFCACTORROLE(.CONSULTANT., $, $); + + +ENDSEC; +END-ISO-10303-21; diff --git a/files/project_team/larswik-test.ifc b/files/project_team/larswik-test.ifc new file mode 100644 index 00000000..8fc758cb --- /dev/null +++ b/files/project_team/larswik-test.ifc @@ -0,0 +1,56 @@ +ISO-10303-21; + +/* ------- This file was produced manually for IFC Infra Extension Deployment project. --------- */ +/* ------- And further adapted for IFC-for-Tunneling Deployment Programme ---------------------- */ +/* ------- Stefan Jaud, stefan@the-hard-code.com, 2023.01.25. ---------------------------------- */ + +HEADER; +FILE_DESCRIPTION (('ViewDefinition [Ifc4x4NotAssigned]'), '2;1'); +FILE_NAME ('larswik-test.ifc', '2023-01-26T18:00:00', ('Lars Wikstrom'), ('based on bSI Infra Extension Deployment project'), 'manual text editing', 'SublimeText 3.0', 'GitHub pull request'); +FILE_SCHEMA (('IFC4X4_notYetAgreed')); +ENDSEC; + +DATA; + +/* ------- General definitions ----------------------------------------------------------------- */ +#1 = IFCDIMENSIONALEXPONENTS(0, 0, 0, 0, 0, 0, 0); +/* ------- Reusable X direction ---------------------------------------------------------------- */ +#2 = IFCDIRECTION((1., 0., 0.)); +/* ------- Reusable Y direction ---------------------------------------------------------------- */ +#3 = IFCDIRECTION((0., 1., 0.)); +/* ------- Reusable Z direction ---------------------------------------------------------------- */ +#4 = IFCDIRECTION((0., 0., 1.)); +/* ------- Reusable origin --------------------------------------------------------------------- */ +#5 = IFCCARTESIANPOINT((0., 0., 0.)); + +/* ------- IfcProject is the top most element in the project structure ------------------------- */ +#16 = IFCPROJECT('2DAvEupIz0HQr73cMaawtY', $, 'Sprint 1.1', 'Ifc Tunnel Deployment Sprint 1.1.', $, $, $, (#28), #17); + +/* ------- IfcUnitAssignment defines the global units for measures and values ------------------ */ +/* ------- when the units are not otherwise defined -------------------------------------------- */ +#17 = IFCUNITASSIGNMENT((#18, #19, #20, #22, #25, #26, #27)); +#18 = IFCSIUNIT(*, .LENGTHUNIT., $, .METRE.); +#19 = IFCSIUNIT(*, .AREAUNIT., $, .SQUARE_METRE.); +#20 = IFCSIUNIT(*, .VOLUMEUNIT., $, .CUBIC_METRE.); + +/* -------- Adding an angle unit ----------------------------------------------------------------*/ +#22 = IFCSIUNIT(*, .PLANEANGLEUNIT., $, .RADIAN.); + +#25 = IFCSIUNIT(*, .MASSUNIT., .KILO., .GRAM.); +#26 = IFCSIUNIT(*, .TIMEUNIT., $, .SECOND.); +#27 = IFCMONETARYUNIT('EUR'); + +/* ------- IfcGeometricRepresentationContext is the global context of the geometry ------------- */ +#28 = IFCGEOMETRICREPRESENTATIONCONTEXT('Model', '3D', 3, 1.E-6, #29, #30); +#29 = IFCAXIS2PLACEMENT3D(#5, #4, #2); +#30 = IFCDIRECTION((0.,1.)); + +/* ------- IfcRelDeclares with Actor declaration ----------------------------------------------- */ +#51 = IFCRELDECLARES('2DAvEupIz0HQr73cMacwtY', $, $, $, #16, (#52)); +#52 = IFCACTOR('2DAvEupIz0HQr73cMacwtX', $, $, $, $, #53); +#53 = IFCPERSON($, 'Wikstrom', 'Lars', $, $, $, #54, $); +#54 = IFCACTORROLE(.CONSULTANT., $, $); + + +ENDSEC; +END-ISO-10303-21; \ No newline at end of file diff --git a/project_plan.pdf b/project_plan.pdf new file mode 100644 index 0000000000000000000000000000000000000000..2a1f194573c1d504d3129f799571485bba2b462f GIT binary patch literal 92320 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 z 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 literal 0 HcmV?d00001 diff --git a/sprints/sprint1_1.md b/sprints/sprint1_1.md new file mode 100644 index 00000000..d6370a17 --- /dev/null +++ b/sprints/sprint1_1.md @@ -0,0 +1,46 @@ +# Sprint 1.1 + +This sprint implements and tests `IfcProject` specific usages. + + +## Prerequisities + +This sprint assumes you completed the following sprints: + +- none. + + +## Duration + +| Kick-off | Submission | Closure | +|-------------|-------------|-------------| +| 2023.01.26. | 2023.02.06. | 2023.02.09. | + + +## Usages + +This sprint encompasses the following usages: + +- [Project Unit Assignment](https://bsi-infraroom.github.io/IFC-Documentation-Tunnel/4_4_0_0/general/HTML/link/project-units.htm) + 1. at least two units + 2. a `LENGTHUNIT` and a `PLANEANGLEUNIT` (regardless of SI unit or conversion based) +- [Project Representation Context](https://bsi-infraroom.github.io/IFC-Documentation-Tunnel/4_4_0_0/general/HTML/link/project-representation-context.htm) + 1. at least one of these should be defined: + - Model in 3D + - Plan in 2D +- [Project Declaration](https://bsi-infraroom.github.io/IFC-Documentation-Tunnel/4_4_0_0/general/HTML/link/project-declaration.htm) + 1. at least one of these should be declared: + - `IfcProjectLibrary` + - `IfcPropertySetTemplate` + - `IfcTypeObject` + - `IfcActor` + - `IfcControl` + - `IfcGroup` + - `IfcProcess` + - `IfcResource` + + +See also [IfcProject usages](https://bsi-infraroom.github.io/IFC-Documentation-Tunnel/4_4_0_0/general/HTML/link/ifcproject.htm): +- *Project Units* with Table 10 +- *Project Representation Context* with Table 11 +- *Project Declaration* with Table 12 diff --git a/sprints/sprint1_2.md b/sprints/sprint1_2.md new file mode 100644 index 00000000..63620a7f --- /dev/null +++ b/sprints/sprint1_2.md @@ -0,0 +1,28 @@ +# Sprint 1.2 + +This sprint implements and tests `IfcProject` specific usages. + + +## Prerequisities + +This sprint assumes you completed the following sprints: + +- none. + + +## Duration + +| Kick-off | Submission | Closure | +|-------------|-------------|-------------| +| 2023.02.09. | 2023.02.20. | 2023.02.23. | + + +## Usages + +This sprint encompasses the following usages: + +- [Project Global Positioning](https://bsi-infraroom.github.io/IFC-Documentation-Tunnel/4_4_0_0/general/HTML/link/project-global-positioning.htm) +- Project Global Positioning Geodetic +- Project Global Positioning Mapped +- [Classification Information](https://bsi-infraroom.github.io/IFC-Documentation-Tunnel/4_4_0_0/general/HTML/link/classification-association.htm) +- [Spatial Decomposition](https://bsi-infraroom.github.io/IFC-Documentation-Tunnel/4_4_0_0/general/HTML/link/spatial-decomposition.htm) diff --git a/sprints/sprint1_3.md b/sprints/sprint1_3.md new file mode 100644 index 00000000..8a9a65f1 --- /dev/null +++ b/sprints/sprint1_3.md @@ -0,0 +1,28 @@ +# Sprint 1.3 + +This sprint implements and tests `IfcProject` specific usages. + + +## Prerequisities + +This sprint assumes you completed the following sprints: + +- none. + + +## Duration + +| Kick-off | Submission | Closure | +|-------------|-------------|-------------| +| 2023.02.23. | 2023.03.13. | 2023.03.16. | + + +## Usages + +This sprint encompasses the following usages: + +- [Project Document Information](https://bsi-infraroom.github.io/IFC-Documentation-Tunnel/4_4_0_0/general/HTML/link/project-document-information.htm) +- Project Dataset Information +- [Project Library Information](https://bsi-infraroom.github.io/IFC-Documentation-Tunnel/4_4_0_0/general/HTML/link/project-library-information.htm) +- [Project Type Definitions](https://bsi-infraroom.github.io/IFC-Documentation-Tunnel/4_4_0_0/general/HTML/link/project-type-definitions.htm) +- [Project Template Definitions](https://bsi-infraroom.github.io/IFC-Documentation-Tunnel/4_4_0_0/general/HTML/link/project-template-definitions.htm) diff --git a/sprints/sprint2_1.md b/sprints/sprint2_1.md new file mode 100644 index 00000000..c1c35945 --- /dev/null +++ b/sprints/sprint2_1.md @@ -0,0 +1,35 @@ +# Sprint 2.1 + +This sprint implements and tests project structure specific usages. + + +## Prerequisities + +This sprint assumes you completed the following sprints: + +- [Sprint 1.1](./sprint1_1.md), +- [Sprint 1.2](./sprint1_2.md), and +- [Sprint 1.3](./sprint1_3.md). + + +## Duration + +| Kick-off | Submission | Closure | +|-------------|-------------|-------------| +| 2023.03.16. | 2023.04.03. | 2023.04.13. | + + +## Usages + +This sprint encompasses the following usages: + +- [Spatial Composition](https://bsi-infraroom.github.io/IFC-Documentation-Tunnel/4_4_0_0/general/HTML/link/spatial-composition.htm) + - only including `IfcSite`, `IfcTunnel`, `IfcTunnelPart` +- [Spatial Decomposition](https://bsi-infraroom.github.io/IFC-Documentation-Tunnel/4_4_0_0/general/HTML/link/spatial-decomposition.htm) + - only including `IfcSite`, `IfcTunnel`, `IfcTunnelPart` +- Linear Composition +- [Alignment Layout](https://bsi-infraroom.github.io/IFC-Documentation-Tunnel/4_4_0_0/general/HTML/link/alignment-layout.htm) +- [Object Nesting](https://bsi-infraroom.github.io/IFC-Documentation-Tunnel/4_4_0_0/general/HTML/link/object-nesting.htm) + - only for `IfcReferent` +- [Group Assignment](https://bsi-infraroom.github.io/IFC-Documentation-Tunnel/4_4_0_0/general/HTML/link/group-assignment.htm) + - only for `IfcSpatialElement` diff --git a/sprints/sprint2_2.md b/sprints/sprint2_2.md new file mode 100644 index 00000000..c6c8afeb --- /dev/null +++ b/sprints/sprint2_2.md @@ -0,0 +1,31 @@ +# Sprint 2.1 + +This sprint implements and tests project structure specific usages. + + +## Prerequisities + +This sprint assumes you completed the following sprints: + +- [Sprint 1.1](./sprint1_1.md), +- [Sprint 1.2](./sprint1_2.md), +- [Sprint 1.3](./sprint1_3.md), and +- [Sprint 2.1](./sprint2_1.md). + + +## Duration + +| Kick-off | Submission | Closure | +|-------------|-------------|-------------| +| 2023.04.13. | 2023.05.02. | 2023.05.11. | + + +## Usages + +This sprint encompasses the following usages: + +- [Product Local Placement](https://bsi-infraroom.github.io/IFC-Documentation-Tunnel/4_4_0_0/general/HTML/link/product-local-placement.htm) +- [Alignment Geometry](https://bsi-infraroom.github.io/IFC-Documentation-Tunnel/4_4_0_0/general/HTML/link/alignment-geometry.htm) +- [Product Linear Placement](https://bsi-infraroom.github.io/IFC-Documentation-Tunnel/4_4_0_0/general/HTML/link/product-linear-placement.htm) +- [Element Nesting](https://bsi-infraroom.github.io/IFC-Documentation-Tunnel/4_4_0_0/general/HTML/link/element-nesting.htm) + - only for `IfcReferent` diff --git a/sprints/sprint2_3.md b/sprints/sprint2_3.md new file mode 100644 index 00000000..d1a8208b --- /dev/null +++ b/sprints/sprint2_3.md @@ -0,0 +1,34 @@ +# Sprint 2.1 + +This sprint implements and tests project structure specific usages. + + +## Prerequisities + +This sprint assumes you completed the following sprints: + +- [Sprint 1.1](./sprint1_1.md), +- [Sprint 1.2](./sprint1_2.md), +- [Sprint 1.3](./sprint1_3.md), +- [Sprint 2.1](./sprint2_1.md), and +- [Sprint 2.2](./sprint2_2.md). + + +## Duration + +| Kick-off | Submission | Closure | +|-------------|-------------|-------------| +| 2023.05.11. | 2023.05.29. | 2023.06.08. | + + +## Usages + +This sprint encompasses the following usages: + +- [Body Tesselation Geometry](https://bsi-infraroom.github.io/IFC-Documentation-Tunnel/4_4_0_0/general/HTML/link/body-tessellation-geometry.htm) + - on the example of `IfcGeoScienceModel` (other `IfcProduct` allowed) +- [Body Brep Geometry](https://bsi-infraroom.github.io/IFC-Documentation-Tunnel/4_4_0_0/general/HTML/link/body-brep-geometry.htm) + - on the example of `IfcGeoScienceModel` (other `IfcProduct` allowed) +- Voxel Geometry + - on the example of `IfcGeoScienceModel` (other `IfcProduct` allowed) +- [Library Association](https://bsi-infraroom.github.io/IFC-Documentation-Tunnel/4_4_0_0/general/HTML/link/library-association.htm) (optional)