├── .ci
├── CloneTest.ps1
├── check-all-depandants.yml
├── check-core.yml
├── check-installer.yml
├── run-compliance-tests.yml
├── testSettings.runsettings
└── unit-tests
│ ├── Models
│ ├── Simple 2-story structure with results.bak
│ └── Simple 2-story structure with results.rtd
│ ├── Robot_Adapter_Tests
│ ├── PullTests.cs
│ ├── PushTests.cs
│ └── Robot_Adapter_Tests.csproj
│ └── Robot_Toolkit_Tests.sln
├── .github
├── ISSUE_TEMPLATE
│ ├── 00_bug.md
│ ├── 01_feature_request.md
│ ├── 02_test_script.md
│ ├── 03_documentation.md
│ ├── 04_compliance.md
│ ├── 05_external_api_changes.md
│ └── 06_question.md
└── PULL_REQUEST_TEMPLATE.md
├── .gitignore
├── LICENSE
├── README.md
├── Robot_Adapter
├── Adapter
│ ├── ErrorMessages.cs
│ ├── InputChecks.cs
│ └── RobotAdapter.cs
├── AdapterActions
│ ├── Execute.cs
│ ├── Pull.cs
│ └── Push.cs
├── CRUD
│ ├── Create
│ │ ├── Create.cs
│ │ ├── Elements
│ │ │ ├── Bars.cs
│ │ │ ├── FEMeshes.cs
│ │ │ ├── Nodes.cs
│ │ │ ├── Panels.cs
│ │ │ └── RigidLinks.cs
│ │ ├── Groups and Lists
│ │ │ ├── DesignGroups.cs
│ │ │ └── Groups.cs
│ │ ├── Loads
│ │ │ ├── LoadCombination.cs
│ │ │ ├── Loadcase.cs
│ │ │ └── Loads.cs
│ │ └── Properties
│ │ │ ├── BarReleases.cs
│ │ │ ├── FramingElementDesignProperties.cs
│ │ │ ├── LinearReleases.cs
│ │ │ ├── LinkConstraints.cs
│ │ │ ├── Materials.cs
│ │ │ ├── Offset.cs
│ │ │ ├── SectionProperties.cs
│ │ │ ├── Supports.cs
│ │ │ └── SurfaceProperties.cs
│ ├── Delete
│ │ └── Delete.cs
│ ├── Read
│ │ ├── Elements
│ │ │ ├── Bars.cs
│ │ │ ├── DesignGroups.cs
│ │ │ ├── Groups.cs
│ │ │ ├── Meshes.cs
│ │ │ ├── Nodes.cs
│ │ │ ├── Openings.cs
│ │ │ ├── Panels.cs
│ │ │ └── RigidLinks.cs
│ │ ├── Loads
│ │ │ ├── ControurLoads.cs
│ │ │ ├── GeometricalLineLoads.cs
│ │ │ ├── LoadCombinations.cs
│ │ │ ├── Loadcases.cs
│ │ │ └── Loads.cs
│ │ ├── Properties
│ │ │ ├── FramingElementDesignProperties.cs
│ │ │ ├── Labels.cs
│ │ │ ├── LinearReleases.cs
│ │ │ ├── LinkConstraints.cs
│ │ │ ├── Materials.cs
│ │ │ ├── Offset.cs
│ │ │ ├── Releases.cs
│ │ │ ├── SectionProperties.cs
│ │ │ ├── Supports.cs
│ │ │ └── SurfaceProperties.cs
│ │ ├── Read.cs
│ │ └── Results
│ │ │ ├── BarResults.cs
│ │ │ ├── GlobalResults.cs
│ │ │ ├── MeshResults.cs
│ │ │ ├── NodeResults.cs
│ │ │ └── ResultUtils.cs
│ └── Update
│ │ ├── Elements
│ │ ├── Bars.cs
│ │ ├── Nodes.cs
│ │ └── Panels.cs
│ │ ├── IUpdate.cs
│ │ ├── Loads
│ │ ├── LoadCombinations.cs
│ │ └── Loadcases.cs
│ │ ├── Properties
│ │ ├── FramingElementDesignProperties.cs
│ │ ├── LinearReleases.cs
│ │ ├── LinkConstraints.cs
│ │ ├── Materials.cs
│ │ ├── Offset.cs
│ │ ├── SectionProperties.cs
│ │ ├── Supports.cs
│ │ └── SurfaceProperties.cs
│ │ └── UpdateTags.cs
├── Convert
│ ├── FromRobot
│ │ ├── Elements
│ │ │ ├── Bar.cs
│ │ │ ├── Node.cs
│ │ │ ├── Panel.cs
│ │ │ └── RigidLink.cs
│ │ ├── Geometry
│ │ │ ├── Curve.cs
│ │ │ └── Point.cs
│ │ ├── Groups and Lists
│ │ │ └── Selections.cs
│ │ ├── Loads
│ │ │ ├── AreaUniformTemperatureLoad.cs
│ │ │ ├── AreaUniformlyDistributedLoad.cs
│ │ │ ├── BarPointLoad.cs
│ │ │ ├── BarUniformTemperatureLoad.cs
│ │ │ ├── BarUniformlyDistributedLoad.cs
│ │ │ ├── BarVaryingDistributedLoad.cs
│ │ │ ├── GravityLoad.cs
│ │ │ ├── Load.cs
│ │ │ ├── PointAcceleration.cs
│ │ │ ├── PointDisplacement.cs
│ │ │ ├── PointLoad.cs
│ │ │ └── PointVelocity.cs
│ │ └── Properties
│ │ │ ├── BarRelease.cs
│ │ │ ├── LinearRelease.cs
│ │ │ ├── Material.cs
│ │ │ ├── Offset.cs
│ │ │ ├── SectionProfile_Concrete.cs
│ │ │ ├── SectionProfile_General.cs
│ │ │ ├── SectionProperty.cs
│ │ │ ├── Support.cs
│ │ │ └── SurfaceProperty.cs
│ └── ToRobot
│ │ ├── Elements
│ │ ├── Bar.cs
│ │ └── Panel.cs
│ │ ├── Enums
│ │ └── Enums.cs
│ │ ├── Geometry
│ │ ├── Arc.cs
│ │ ├── Circle.cs
│ │ ├── Curve.cs
│ │ ├── Line.cs
│ │ ├── Point.cs
│ │ └── Polyline.cs
│ │ ├── Groups and Lists
│ │ ├── DataBase.cs
│ │ ├── DesignGroup.cs
│ │ ├── Group.cs
│ │ └── Lists.cs
│ │ ├── Loads
│ │ ├── AreaUniformTemperatureLoad.cs
│ │ ├── AreaUniformlyDistributedLoad.cs
│ │ ├── BarPointLoad.cs
│ │ ├── BarUniformTemperatureLoad.cs
│ │ ├── BarUniformlyDistributedLoad.cs
│ │ ├── BarVaryingDistributedLoad.cs
│ │ ├── ContourLoad.cs
│ │ ├── GeometricalLineLoad.cs
│ │ ├── GravityLoad.cs
│ │ ├── ILoad.cs
│ │ ├── LoadcaseNature.cs
│ │ ├── PointAcceleration.cs
│ │ ├── PointDisplacement.cs
│ │ ├── PointLoad.cs
│ │ └── PointVelocity.cs
│ │ └── Properties
│ │ ├── BarRelease.cs
│ │ ├── LinearRelease.cs
│ │ ├── Material.cs
│ │ ├── MemberType.cs
│ │ ├── Offset.cs
│ │ ├── SectionProperty.cs
│ │ ├── SectionProperty_Concrete.cs
│ │ ├── SectionProperty_Geometrical.cs
│ │ ├── Support.cs
│ │ └── SurfaceProperty.cs
├── Properties
│ └── AssemblyInfo.cs
├── Robot_Adapter.csproj
├── Types
│ ├── Comparer.cs
│ ├── DependencyTypes.cs
│ └── NextId.cs
├── XXLegacy
│ ├── Base
│ │ ├── Enums.cs
│ │ ├── Label.cs
│ │ ├── Utils.cs
│ │ └── View.cs
│ ├── Elements
│ │ ├── BarIO.cs
│ │ ├── FiniteElement.cs
│ │ ├── GridIO.cs
│ │ ├── GroupIO.cs
│ │ ├── LevelIO.cs
│ │ ├── MeshIO.cs
│ │ ├── NodeIO.cs
│ │ ├── PanelIO.cs
│ │ └── RigidLinkIO.cs
│ ├── Interface
│ │ ├── CommandAdapter.cs
│ │ ├── ElementAdapter.cs
│ │ └── ResultAdapter.cs
│ ├── Loads
│ │ └── LoadIO.cs
│ ├── Properties
│ │ ├── PropertyIO.cs
│ │ └── SupportIO.cs
│ ├── ResultEnums_for Reference.cs
│ ├── Results
│ │ ├── BarResults.cs
│ │ ├── Global.cs
│ │ ├── NodeResults.cs
│ │ ├── PanelResults.cs
│ │ ├── SlabReinforcementResults.cs
│ │ └── Storey.cs
│ └── Wind
│ │ └── WindCFD.cs
└── packages.config
├── Robot_Engine
├── Create
│ ├── DatabaseSettings.cs
│ ├── DesignGroup.cs
│ └── FramingElementDesignProperties.cs
├── Objects
│ └── Comparers
│ │ └── LoadingPanelProperty.cs
├── Properties
│ └── AssemblyInfo.cs
├── Query
│ ├── GetStringFromEnum.cs
│ ├── RobotGravityConstant.cs
│ └── ToDictionaryDistinctCheck.cs
├── Robot_Engine.csproj
└── packages.config
├── Robot_Toolkit.sln
├── Robot_oM
├── Enums
│ ├── DesignCode_Steel.cs
│ ├── MaterialDB.cs
│ └── SectionDB.cs
├── Fragments
│ ├── LoadCaseLabel.cs
│ ├── PanelFiniteElementIds.cs
│ └── RobotId.cs
├── Properties
│ └── AssemblyInfo.cs
├── Robot_oM.csproj
├── Settings
│ ├── AdvancedSettings.cs
│ ├── DatabaseSettings.cs
│ ├── DesignGroup.cs
│ ├── InteractiveSettings.cs
│ └── RobotConfig.cs
└── Structural
│ └── Properties
│ └── FramingElementDesignProperties.cs
├── core.txt
├── dependants.txt
└── dependencies.txt
/.ci/CloneTest.ps1:
--------------------------------------------------------------------------------
1 | Param([string]$repo)
2 |
3 | # **** Cloning BHoM Test_Toolkit ****
4 | $repo = "Test_Toolkit"
5 |
6 | # **** Defining Paths ****
7 | $slnPath = "$ENV:BUILD_SOURCESDIRECTORY\$repo\$repo.sln"
8 |
9 | # **** Cloning Repo ****
10 | Write-Output ("Cloning " + $repo + " to " + $ENV:BUILD_SOURCESDIRECTORY + "\" + $repo)
11 | git clone -q --branch=master https://github.com/BHoM/$repo.git $ENV:BUILD_SOURCESDIRECTORY\$repo
12 |
13 | # **** Restore NuGet ****
14 | Write-Output ("Restoring NuGet packages for " + $repo)
15 | & NuGet.exe restore $slnPath
--------------------------------------------------------------------------------
/.ci/check-all-depandants.yml:
--------------------------------------------------------------------------------
1 | # ASP.NET Core (.NET Framework)
2 | # Build and test ASP.NET Core projects targeting the full .NET Framework.
3 | # Add steps that publish symbols, save build artifacts, and more:
4 | # https://docs.microsoft.com/azure/devops/pipelines/languages/dotnet-core
5 |
6 | trigger:
7 | - master
8 | pr:
9 | - master
10 |
11 | pool:
12 | vmImage: 'vs2017-win2016'
13 |
14 | variables:
15 | solution: '**/Robot_Toolkit.sln'
16 | buildPlatform: 'Any CPU'
17 | buildConfiguration: 'Release'
18 | projectName: 'Robot_Toolkit'
19 |
20 | steps:
21 | - checkout: self
22 | persistCredentials: true
23 |
24 | - task: CopyFiles@2
25 | displayName: 'Move Cloned Files to Correct Toolkit Folder'
26 | inputs:
27 | SourceFolder: '$(Build.SourcesDirectory)'
28 | Contents: '**'
29 | TargetFolder: '$(Build.SourcesDirectory)/$(projectName)'
30 |
31 | - task: DeleteFiles@1
32 | displayName: 'Clean Up After Moving Cloned Files'
33 | inputs:
34 | SourceFolder: '$(Build.SourcesDirectory)'
35 | Contents: '**.sln'
36 |
37 | - task: NuGetToolInstaller@1
38 |
39 | - task: PowerShell@2
40 | displayName: 'Clone Test Toolkit'
41 | inputs:
42 | filePath: '.ci/CloneTest.ps1'
43 |
44 | - task: PowerShell@2
45 | displayName: 'Clone and Build Dependencies'
46 | inputs:
47 | filePath: '$(Build.SourcesDirectory)/Test_Toolkit/CloneAndBuildDependencies.ps1'
48 |
49 | - task: NuGetCommand@2
50 | displayName: 'Restore NuGets for Primary Solution'
51 | inputs:
52 | restoreSolution: '$(solution)'
53 |
54 | - task: PowerShell@2
55 | displayName: 'Build Primary Solution'
56 | inputs:
57 | filePath: '$(Build.SourcesDirectory)/Test_Toolkit/BuildPrimarySolution.ps1'
58 |
59 | - task: PowerShell@2
60 | displayName: 'Clone and Build Core Dependencies'
61 | inputs:
62 | filePath: '$(Build.SourcesDirectory)/Test_Toolkit/CloneAndBuildCore.ps1'
63 |
64 | - task: PowerShell@2
65 | displayName: 'Clone and Build all Dependencies'
66 | inputs:
67 | filePath: '$(Build.SourcesDirectory)/Test_Toolkit/CloneAndBuildDependencies.ps1'
68 |
--------------------------------------------------------------------------------
/.ci/check-core.yml:
--------------------------------------------------------------------------------
1 | # ASP.NET Core (.NET Framework)
2 | # Build and test ASP.NET Core projects targeting the full .NET Framework.
3 | # Add steps that publish symbols, save build artifacts, and more:
4 | # https://docs.microsoft.com/azure/devops/pipelines/languages/dotnet-core
5 |
6 | trigger:
7 | - master
8 | pr:
9 | - master
10 |
11 | pool:
12 | vmImage: 'vs2017-win2016'
13 |
14 | variables:
15 | solution: '**/Robot_Toolkit.sln'
16 | buildPlatform: 'Any CPU'
17 | buildConfiguration: 'Release'
18 | projectName: 'Robot_Toolkit'
19 |
20 | steps:
21 | - checkout: self
22 | persistCredentials: true
23 |
24 | - task: CopyFiles@2
25 | displayName: 'Move Cloned Files to Correct Toolkit Folder'
26 | inputs:
27 | SourceFolder: '$(Build.SourcesDirectory)'
28 | Contents: '**'
29 | TargetFolder: '$(Build.SourcesDirectory)/$(projectName)'
30 |
31 | - task: DeleteFiles@1
32 | displayName: 'Clean Up After Moving Cloned Files'
33 | inputs:
34 | SourceFolder: '$(Build.SourcesDirectory)'
35 | Contents: '**.sln'
36 |
37 | - task: NuGetToolInstaller@1
38 |
39 | - task: PowerShell@2
40 | displayName: 'Clone Test Toolkit'
41 | inputs:
42 | filePath: '.ci/CloneTest.ps1'
43 |
44 | - task: PowerShell@2
45 | displayName: 'Clone and Build Dependencies'
46 | inputs:
47 | filePath: '$(Build.SourcesDirectory)/Test_Toolkit/CloneAndBuildDependencies.ps1'
48 |
49 | - task: NuGetCommand@2
50 | displayName: 'Restore NuGets for Primary Solution'
51 | inputs:
52 | restoreSolution: '$(solution)'
53 |
54 | - task: PowerShell@2
55 | displayName: 'Build Primary Solution'
56 | inputs:
57 | filePath: '$(Build.SourcesDirectory)/Test_Toolkit/BuildPrimarySolution.ps1'
58 |
59 | - task: PowerShell@2
60 | displayName: 'Clone and Build Core Dependencies'
61 | inputs:
62 | filePath: '$(Build.SourcesDirectory)/Test_Toolkit/CloneAndBuildCore.ps1'
63 |
--------------------------------------------------------------------------------
/.ci/check-installer.yml:
--------------------------------------------------------------------------------
1 | # ASP.NET Core (.NET Framework)
2 | # Build and test ASP.NET Core projects targeting the full .NET Framework.
3 | # Add steps that publish symbols, save build artifacts, and more:
4 | # https://docs.microsoft.com/azure/devops/pipelines/languages/dotnet-core
5 |
6 | trigger:
7 | - master
8 | pr:
9 | - master
10 |
11 | pool:
12 | vmImage: 'vs2017-win2016'
13 |
14 | variables:
15 | solution: '**/Robot_Toolkit.sln'
16 | buildPlatform: 'Any CPU'
17 | buildConfiguration: 'Release'
18 | projectName: 'Robot_Toolkit'
19 |
20 | steps:
21 | - checkout: self
22 | persistCredentials: true
23 |
24 | - task: DeleteFiles@1
25 | displayName: 'Clean Up After Moving Cloned Files'
26 | inputs:
27 | SourceFolder: '$(Build.SourcesDirectory)'
28 | Contents: '**.sln'
29 |
30 | - task: NuGetToolInstaller@1
31 |
32 | - task: PowerShell@2
33 | displayName: 'Clone Test Toolkit'
34 | inputs:
35 | filePath: '.ci/CloneTest.ps1'
36 |
37 | - task: PowerShell@2
38 | displayName: 'Clone BHoM_Installer'
39 | inputs:
40 | filePath: '$(Build.SourcesDirectory)/Test_Toolkit/CloneInstaller.ps1'
41 |
42 | - task: PowerShell@2
43 | displayName: 'Run BHoM_Installer tasks'
44 | inputs:
45 | filePath: '$(Build.SourcesDirectory)/Test_Toolkit/BuildInstaller.ps1'
46 |
--------------------------------------------------------------------------------
/.ci/run-compliance-tests.yml:
--------------------------------------------------------------------------------
1 | # ASP.NET Core (.NET Framework)
2 | # Build and test ASP.NET Core projects targeting the full .NET Framework.
3 | # Add steps that publish symbols, save build artifacts, and more:
4 | # https://docs.microsoft.com/azure/devops/pipelines/languages/dotnet-core
5 |
6 | trigger:
7 | - master
8 | pr:
9 | - master
10 |
11 | pool:
12 | vmImage: 'vs2017-win2016'
13 |
14 | variables:
15 | solution: '**/Robot_Toolkit.sln'
16 | buildPlatform: 'Any CPU'
17 | buildConfiguration: 'Release'
18 | projectName: 'Robot_Toolkit'
19 |
20 | steps:
21 | - checkout: self
22 | persistCredentials: true
23 |
24 | - task: CopyFiles@2
25 | displayName: 'Move Cloned Files to Correct Toolkit Folder'
26 | inputs:
27 | SourceFolder: '$(Build.SourcesDirectory)'
28 | Contents: '**'
29 | TargetFolder: '$(Build.SourcesDirectory)/$(projectName)'
30 |
31 | - task: DeleteFiles@1
32 | displayName: 'Clean Up After Moving Cloned Files'
33 | inputs:
34 | SourceFolder: '$(Build.SourcesDirectory)'
35 | Contents: '**.sln'
36 |
37 | - task: NuGetToolInstaller@1
38 |
39 | - task: PowerShell@2
40 | displayName: 'Clone Test Toolkit'
41 | inputs:
42 | filePath: '.ci/CloneTest.ps1'
43 |
44 | - task: PowerShell@2
45 | displayName: 'Clone and Build Dependencies'
46 | inputs:
47 | filePath: '$(Build.SourcesDirectory)/Test_Toolkit/CloneAndBuildDependencies.ps1'
48 |
49 | - task: PowerShell@2
50 | displayName: 'Build Test Toolkit'
51 | inputs:
52 | filePath: '$(Build.SourcesDirectory)/Test_Toolkit/BuildTest.ps1'
53 |
54 | - task: PowerShell@2
55 | displayName: 'Copy changed files'
56 | inputs:
57 | filePath: '$(Build.SourcesDirectory)/Test_Toolkit/MovePRFiles.ps1'
58 |
59 | - task: VSTest@2
60 | inputs:
61 | testSelector: 'testAssemblies'
62 | testAssemblyVer2: '$(Build.SourcesDirectory)/Test_Toolkit/Build/CodeComplianceTest_Test.dll'
63 | runSettingsFile: '.ci/testSettings.runsettings'
64 |
--------------------------------------------------------------------------------
/.ci/testSettings.runsettings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 1
6 |
7 | ..\TestResults
8 |
9 |
11 | x86
12 |
13 |
14 | Framework40
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 | .*CPPUnitTestFramework.*
29 |
30 |
31 |
32 |
33 | True
34 | True
35 | True
36 | False
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 | True
58 | false
59 | False
60 | False
61 |
62 |
63 |
64 |
65 |
66 |
--------------------------------------------------------------------------------
/.ci/unit-tests/Models/Simple 2-story structure with results.bak:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BHoM/Robot_Toolkit/7f6acb6ed3635b92fed3ae28e54566e82e41141c/.ci/unit-tests/Models/Simple 2-story structure with results.bak
--------------------------------------------------------------------------------
/.ci/unit-tests/Models/Simple 2-story structure with results.rtd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BHoM/Robot_Toolkit/7f6acb6ed3635b92fed3ae28e54566e82e41141c/.ci/unit-tests/Models/Simple 2-story structure with results.rtd
--------------------------------------------------------------------------------
/.ci/unit-tests/Robot_Toolkit_Tests.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio Version 17
4 | VisualStudioVersion = 17.3.32922.545
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Robot_oM", "..\..\Robot_oM\Robot_oM.csproj", "{0DD05698-6A33-4092-BFAD-FF702685FEAF}"
7 | EndProject
8 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Robot_Engine", "..\..\Robot_Engine\Robot_Engine.csproj", "{45D542CD-79B5-485A-BA39-0163230431F0}"
9 | EndProject
10 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Robot_Adapter", "..\..\Robot_Adapter\Robot_Adapter.csproj", "{A4FE6182-A985-44E0-A5BF-3E54C6EA30BF}"
11 | EndProject
12 | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Robot_Adapter_Tests", "Robot_Adapter_Tests\Robot_Adapter_Tests.csproj", "{6489E3BF-D8F5-4D32-94DF-AAD929C2C2D3}"
13 | EndProject
14 | Global
15 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
16 | Debug|Any CPU = Debug|Any CPU
17 | Release|Any CPU = Release|Any CPU
18 | Test|Any CPU = Test|Any CPU
19 | EndGlobalSection
20 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
21 | {0DD05698-6A33-4092-BFAD-FF702685FEAF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
22 | {0DD05698-6A33-4092-BFAD-FF702685FEAF}.Debug|Any CPU.Build.0 = Debug|Any CPU
23 | {0DD05698-6A33-4092-BFAD-FF702685FEAF}.Release|Any CPU.ActiveCfg = Release|Any CPU
24 | {0DD05698-6A33-4092-BFAD-FF702685FEAF}.Release|Any CPU.Build.0 = Release|Any CPU
25 | {0DD05698-6A33-4092-BFAD-FF702685FEAF}.Test|Any CPU.ActiveCfg = Test|Any CPU
26 | {0DD05698-6A33-4092-BFAD-FF702685FEAF}.Test|Any CPU.Build.0 = Test|Any CPU
27 | {45D542CD-79B5-485A-BA39-0163230431F0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
28 | {45D542CD-79B5-485A-BA39-0163230431F0}.Debug|Any CPU.Build.0 = Debug|Any CPU
29 | {45D542CD-79B5-485A-BA39-0163230431F0}.Release|Any CPU.ActiveCfg = Release|Any CPU
30 | {45D542CD-79B5-485A-BA39-0163230431F0}.Release|Any CPU.Build.0 = Release|Any CPU
31 | {45D542CD-79B5-485A-BA39-0163230431F0}.Test|Any CPU.ActiveCfg = Test|Any CPU
32 | {45D542CD-79B5-485A-BA39-0163230431F0}.Test|Any CPU.Build.0 = Test|Any CPU
33 | {A4FE6182-A985-44E0-A5BF-3E54C6EA30BF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
34 | {A4FE6182-A985-44E0-A5BF-3E54C6EA30BF}.Debug|Any CPU.Build.0 = Debug|Any CPU
35 | {A4FE6182-A985-44E0-A5BF-3E54C6EA30BF}.Release|Any CPU.ActiveCfg = Release|Any CPU
36 | {A4FE6182-A985-44E0-A5BF-3E54C6EA30BF}.Release|Any CPU.Build.0 = Release|Any CPU
37 | {A4FE6182-A985-44E0-A5BF-3E54C6EA30BF}.Test|Any CPU.ActiveCfg = Test|Any CPU
38 | {A4FE6182-A985-44E0-A5BF-3E54C6EA30BF}.Test|Any CPU.Build.0 = Test|Any CPU
39 | {6489E3BF-D8F5-4D32-94DF-AAD929C2C2D3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
40 | {6489E3BF-D8F5-4D32-94DF-AAD929C2C2D3}.Debug|Any CPU.Build.0 = Debug|Any CPU
41 | {6489E3BF-D8F5-4D32-94DF-AAD929C2C2D3}.Release|Any CPU.ActiveCfg = Release|Any CPU
42 | {6489E3BF-D8F5-4D32-94DF-AAD929C2C2D3}.Release|Any CPU.Build.0 = Release|Any CPU
43 | {6489E3BF-D8F5-4D32-94DF-AAD929C2C2D3}.Test|Any CPU.ActiveCfg = Test|Any CPU
44 | {6489E3BF-D8F5-4D32-94DF-AAD929C2C2D3}.Test|Any CPU.Build.0 = Test|Any CPU
45 | EndGlobalSection
46 | GlobalSection(SolutionProperties) = preSolution
47 | HideSolutionNode = FALSE
48 | EndGlobalSection
49 | GlobalSection(ExtensibilityGlobals) = postSolution
50 | SolutionGuid = {763D45C4-AF11-4244-B502-01ADEC9953BC}
51 | EndGlobalSection
52 | EndGlobal
53 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/00_bug.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Bug
3 | about: Report an error, performance issue or unexpected behaviour.
4 | labels: "type:bug"
5 |
6 | ---
7 |
8 |
9 |
10 | #### Description:
11 |
12 |
13 |
14 | #### Steps to reproduce:
15 |
16 |
17 |
18 | #### Expected behaviour:
19 |
20 |
21 |
22 | #### Test file(s):
23 |
24 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/01_feature_request.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Feature Request
3 | about: Suggest ideas for new functionality, or enhancement of existing.
4 | labels: "type:feature"
5 |
6 | ---
7 |
8 |
9 |
10 | #### Description:
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/02_test_script.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Test Script
3 | about: Creation of a unit test is required to check functionality, test use cases or validity of a specific part of the code.
4 | labels: "type:test-script"
5 |
6 | ---
7 |
8 |
9 |
10 | #### Definition of the test :
11 |
12 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/03_documentation.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Documentation
3 | about: Highlight missing or incorrect documentation in the code or in the website and wiki.
4 | labels: "type:documentation"
5 |
6 | ---
7 |
8 |
9 |
10 | #### What is missing/incorrect?
11 |
12 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/04_compliance.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Compliance
3 | about: Report code that doesn't follow the BHoM guidelines.
4 | labels: "type:compliance"
5 |
6 | ---
7 |
8 |
9 |
10 | #### Broken rules:
11 |
12 |
13 |
14 | #### Suggestions to restore compliance:
15 |
16 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/05_external_api_changes.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: External API Changes
3 | about: Modifications to the code are required due to changes to the API of a referenced library. This includes changes imposed from references to other BHoM projects.
4 | labels: "type:external-api-changes"
5 |
6 | ---
7 |
8 |
9 |
10 | #### Parent issue(s) or Pull Request(s) causing the changes:
11 |
12 |
13 | #
14 |
15 | #### Description:
16 |
17 |
18 |
19 | #### Test file(s):
20 |
21 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/06_question.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Question
3 | about: Ask a question about any aspect of the BHoM code or toolkits. Equally do feel free to reach out on Slack with queries and for wider discussions. Link and open invite can be found on https://bhom.xyz
4 | labels: "type:question"
5 |
6 | ---
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/.github/PULL_REQUEST_TEMPLATE.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | ### NOTE: Depends on
5 |
6 |
7 |
8 |
9 | ### Issues addressed by this PR
10 |
11 |
12 | Closes #
13 |
14 |
15 |
16 |
17 | ### Test files
18 |
19 |
20 |
21 | ### Changelog
22 |
23 |
24 |
25 |
26 | ### Additional comments
27 |
28 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Compiled source #
2 | ###################
3 | *.com
4 | *.class
5 | *.exe
6 | *.o
7 | *.so
8 | *.dll
9 |
10 | # Packages #
11 | ############
12 | # it's better to unpack these files and commit the raw source
13 | # git has its own built in compression methods
14 | *.7z
15 | *.dmg
16 | *.gz
17 | *.iso
18 | *.jar
19 | *.rar
20 | *.tar
21 | *.zip
22 |
23 | # Logs and databases #
24 | ######################
25 | *.log
26 | *.sql
27 | *.sqlite
28 |
29 | # OS generated files #
30 | ######################
31 | .DS_Store
32 | .DS_Store?
33 | ._*
34 | .Spotlight-V100
35 | .Trashes
36 | ehthumbs.db
37 | Thumbs.db
38 |
39 |
40 | # build folders #
41 | ###############
42 | [Dd]ebug/
43 | [Dd]ebugPublic/
44 | [Rr]elease/
45 | [Rr]eleases/
46 | x64/
47 | x86/
48 | bld/
49 | [Bb]in/
50 | [Oo]bj/
51 | [Ll]og/
52 | [Bb]uild/
53 | [Pp]ackages/
54 |
55 | # Visual Studio User File #
56 | ###########################
57 | *.suo
58 | *.user
59 | .vs/
60 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 | [](https://www.gnu.org/licenses/lgpl-3.0) [](https://ci.appveyor.com/api/projects/status/robot_toolkit/branch/master) [](https://dev.azure.com/BHoMBot/BHoM/_build/latest?definitionId=93&branchName=master)
3 |
4 | # Robot_Toolkit
5 |
6 | This toolkit allows interoperability between the BHoM and Autodesk Robot Structural Analysis. Enables creation, manipulation and reading of structural finite element analysis models as well as loading information and extraction of analysis results.
7 |
8 | https://www.autodesk.co.uk/products/robot-structural-analysis
9 |
10 | ### Known Versions of Software Supported
11 | Autodesk Robot Structural Analysis Professional 2017
12 |
13 | Autodesk Robot Structural Analysis Professional 2018
14 |
15 | Autodesk Robot Structural Analysis Professional 2019
16 |
17 |
18 | ### Documentation
19 | For more information about functionality, currently supported types and known issues see [Robot_Toolkit wiki](https://github.com/BHoM/Robot_Toolkit/wiki)
20 |
21 | ---
22 | This toolkit is part of the Buildings and Habitats object Model. Find out more on our [wiki](https://github.com/BHoM/documentation/wiki) or at [https://bhom.xyz](https://bhom.xyz/)
23 |
24 | ## Quick Start 🚀
25 |
26 | Grab the [latest installer](https://bhom.xyz/) and a selection of [sample scripts](https://github.com/BHoM/samples).
27 |
28 |
29 | ## Getting Started for Developers 🤖
30 |
31 | If you want to build the BHoM and the Toolkits from source, it's hopefully easy! 😄
32 | Do take a look at our specific wiki pages here: [Getting Started for Developers](https://bhom.xyz/documentation/Guides-and-Tutorials/Coding-with-BHoM/)
33 |
34 |
35 | ## Want to Contribute? ##
36 |
37 | BHoM is an open-source project and would be nothing without its community. Take a look at our contributing guidelines and tips [here](https://github.com/BHoM/BHoM/blob/main/CONTRIBUTING.md).
38 |
39 |
40 | ## Licence ##
41 |
42 | BHoM is free software licenced under GNU Lesser General Public Licence - [https://www.gnu.org/licenses/lgpl-3.0.html](https://www.gnu.org/licenses/lgpl-3.0.html)
43 | Each contributor holds copyright over their respective contributions.
44 | The project versioning (Git) records all such contribution source information.
45 | See [LICENSE](https://github.com/BHoM/BHoM/blob/main/LICENSE) and [COPYRIGHT_HEADER](https://github.com/BHoM/BHoM/blob/main/COPYRIGHT_HEADER.txt).
46 |
47 |
--------------------------------------------------------------------------------
/Robot_Adapter/CRUD/Create/Properties/BarReleases.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of the Buildings and Habitats object Model (BHoM)
3 | * Copyright (c) 2015 - 2025, the respective contributors. All rights reserved.
4 | *
5 | * Each contributor holds copyright over their respective contributions.
6 | * The project versioning (Git) records all such contribution source information.
7 | *
8 | *
9 | * The BHoM is free software: you can redistribute it and/or modify
10 | * it under the terms of the GNU Lesser General Public License as published by
11 | * the Free Software Foundation, either version 3.0 of the License, or
12 | * (at your option) any later version.
13 | *
14 | * The BHoM is distributed in the hope that it will be useful,
15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 | * GNU Lesser General Public License for more details.
18 | *
19 | * You should have received a copy of the GNU Lesser General Public License
20 | * along with this code. If not, see .
21 | */
22 |
23 | using System.Collections.Generic;
24 | using BH.oM.Structure.Constraints;
25 | using BH.Engine.Structure;
26 | using RobotOM;
27 |
28 | namespace BH.Adapter.Robot
29 | {
30 | public partial class RobotAdapter
31 | {
32 | /***************************************************/
33 | /**** Private Methods ****/
34 | /***************************************************/
35 |
36 | private bool CreateCollection(IEnumerable releases)
37 | {
38 | IRobotLabelServer robotLabelServer = m_RobotApplication.Project.Structure.Labels;
39 | IRobotLabel robotLabel = robotLabelServer.Create(IRobotLabelType.I_LT_BAR_RELEASE, "");
40 | IRobotBarReleaseData robotLabelData = robotLabel.Data;
41 |
42 | foreach (BarRelease release in releases)
43 | {
44 | //Check release as well as start and end are not null
45 | if (CheckNotNull(release, oM.Base.Debugging.EventType.Warning)
46 | && CheckNotNull(release.StartRelease, oM.Base.Debugging.EventType.Warning, typeof(BarRelease))
47 | && CheckNotNull(release.EndRelease, oM.Base.Debugging.EventType.Warning, typeof(BarRelease)))
48 | {
49 | Convert.ToRobot(robotLabelData.StartNode, release.StartRelease);
50 | Convert.ToRobot(robotLabelData.EndNode, release.EndRelease);
51 | robotLabelServer.StoreWithName(robotLabel, release.DescriptionOrName());
52 | SetAdapterId(release, release.DescriptionOrName());
53 | }
54 | }
55 | return true;
56 | }
57 |
58 | /***************************************************/
59 |
60 | }
61 |
62 | }
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
--------------------------------------------------------------------------------
/Robot_Adapter/CRUD/Create/Properties/LinearReleases.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of the Buildings and Habitats object Model (BHoM)
3 | * Copyright (c) 2015 - 2025, the respective contributors. All rights reserved.
4 | *
5 | * Each contributor holds copyright over their respective contributions.
6 | * The project versioning (Git) records all such contribution source information.
7 | *
8 | *
9 | * The BHoM is free software: you can redistribute it and/or modify
10 | * it under the terms of the GNU Lesser General Public License as published by
11 | * the Free Software Foundation, either version 3.0 of the License, or
12 | * (at your option) any later version.
13 | *
14 | * The BHoM is distributed in the hope that it will be useful,
15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 | * GNU Lesser General Public License for more details.
18 | *
19 | * You should have received a copy of the GNU Lesser General Public License
20 | * along with this code. If not, see .
21 | */
22 |
23 |
24 | using BH.oM.Structure.Constraints;
25 | using RobotOM;
26 | using System.Collections.Generic;
27 | using BH.Engine.Structure;
28 |
29 | namespace BH.Adapter.Robot
30 | {
31 | public partial class RobotAdapter
32 | {
33 |
34 | /***************************************************/
35 | /**** Private Methods ****/
36 | /***************************************************/
37 |
38 | /***************************************************/
39 |
40 | private bool CreateCollection(IEnumerable linearReleases)
41 | {
42 | IRobotLabelServer robotLabelServer = m_RobotApplication.Project.Structure.Labels;
43 | IRobotLabel robotLabel = robotLabelServer.Create(IRobotLabelType.I_LT_LINEAR_RELEASE, "");
44 | List linearReleasesToUpdate = new List();
45 | foreach (Constraint4DOF linearRelease in linearReleases)
46 | {
47 | if (CheckNotNull(linearRelease, oM.Base.Debugging.EventType.Warning))
48 | {
49 | Convert.ToRobot(robotLabel.Data, linearRelease);
50 | robotLabelServer.StoreWithName(robotLabel, linearRelease.DescriptionOrName());
51 | SetAdapterId(linearRelease, linearRelease.DescriptionOrName());
52 | }
53 | }
54 | return true;
55 | }
56 |
57 | /***************************************************/
58 | }
59 |
60 | }
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
--------------------------------------------------------------------------------
/Robot_Adapter/CRUD/Create/Properties/LinkConstraints.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of the Buildings and Habitats object Model (BHoM)
3 | * Copyright (c) 2015 - 2025, the respective contributors. All rights reserved.
4 | *
5 | * Each contributor holds copyright over their respective contributions.
6 | * The project versioning (Git) records all such contribution source information.
7 | *
8 | *
9 | * The BHoM is free software: you can redistribute it and/or modify
10 | * it under the terms of the GNU Lesser General Public License as published by
11 | * the Free Software Foundation, either version 3.0 of the License, or
12 | * (at your option) any later version.
13 | *
14 | * The BHoM is distributed in the hope that it will be useful,
15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 | * GNU Lesser General Public License for more details.
18 | *
19 | * You should have received a copy of the GNU Lesser General Public License
20 | * along with this code. If not, see .
21 | */
22 |
23 | using System.Collections.Generic;
24 | using System.Linq;
25 | using BH.oM.Structure.Constraints;
26 | using BH.Engine.Structure;
27 | using RobotOM;
28 |
29 | namespace BH.Adapter.Robot
30 | {
31 | public partial class RobotAdapter
32 | {
33 |
34 | /***************************************************/
35 | /**** Private Methods ****/
36 | /***************************************************/
37 |
38 | private bool CreateCollection(IEnumerable linkConstraints)
39 | {
40 | IRobotLabel rigidLink = m_RobotApplication.Project.Structure.Labels.Create(IRobotLabelType.I_LT_NODE_RIGID_LINK, "");
41 | IRobotNodeRigidLinkData rLinkData = rigidLink.Data;
42 |
43 | foreach (LinkConstraint lConst in linkConstraints)
44 | {
45 | if (CheckNotNull(lConst, oM.Base.Debugging.EventType.Warning))
46 | {
47 | rLinkData.UX = lConst.XtoX;
48 | rLinkData.UY = lConst.YtoY;
49 | rLinkData.UZ = lConst.ZtoZ;
50 | rLinkData.RX = lConst.XXtoXX;
51 | rLinkData.RY = lConst.YYtoYY;
52 | rLinkData.RZ = lConst.ZZtoZZ;
53 |
54 | m_RobotApplication.Project.Structure.Labels.StoreWithName(rigidLink, lConst.DescriptionOrName());
55 | SetAdapterId(lConst, lConst.DescriptionOrName());
56 | }
57 | }
58 | return true;
59 | }
60 |
61 | /***************************************************/
62 |
63 | }
64 |
65 | }
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
--------------------------------------------------------------------------------
/Robot_Adapter/CRUD/Create/Properties/Offset.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of the Buildings and Habitats object Model (BHoM)
3 | * Copyright (c) 2015 - 2025, the respective contributors. All rights reserved.
4 | *
5 | * Each contributor holds copyright over their respective contributions.
6 | * The project versioning (Git) records all such contribution source information.
7 | *
8 | *
9 | * The BHoM is free software: you can redistribute it and/or modify
10 | * it under the terms of the GNU Lesser General Public License as published by
11 | * the Free Software Foundation, either version 3.0 of the License, or
12 | * (at your option) any later version.
13 | *
14 | * The BHoM is distributed in the hope that it will be useful,
15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 | * GNU Lesser General Public License for more details.
18 | *
19 | * You should have received a copy of the GNU Lesser General Public License
20 | * along with this code. If not, see .
21 | */
22 |
23 | using System.Collections.Generic;
24 | using System.Linq;
25 | using BH.oM.Structure.Offsets;
26 | using BH.Engine.Structure;
27 | using RobotOM;
28 |
29 |
30 | namespace BH.Adapter.Robot
31 | {
32 | public partial class RobotAdapter
33 | {
34 |
35 | /***************************************************/
36 | /**** Private Methods ****/
37 | /***************************************************/
38 |
39 | private bool CreateCollection(IEnumerable offsets)
40 | {
41 | IRobotLabelServer robotLabelServer = m_RobotApplication.Project.Structure.Labels;
42 | IRobotLabel robotLabel = robotLabelServer.Create(IRobotLabelType.I_LT_BAR_OFFSET, "");
43 |
44 | foreach (Offset offset in offsets)
45 | {
46 | //Check release as well as start and end are not null
47 | if (CheckNotNull(offset, oM.Base.Debugging.EventType.Warning)
48 | && CheckNotNull(offset.Start, oM.Base.Debugging.EventType.Warning, typeof(Offset))
49 | && CheckNotNull(offset.End, oM.Base.Debugging.EventType.Warning, typeof(Offset)))
50 | {
51 | Convert.ToRobot(robotLabel.Data, offset);
52 | robotLabelServer.StoreWithName(robotLabel, offset.DescriptionOrName());
53 | SetAdapterId(offset, offset.DescriptionOrName());
54 | }
55 | }
56 | return true;
57 | }
58 |
59 | /***************************************************/
60 |
61 | }
62 |
63 | }
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
--------------------------------------------------------------------------------
/Robot_Adapter/CRUD/Create/Properties/Supports.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of the Buildings and Habitats object Model (BHoM)
3 | * Copyright (c) 2015 - 2025, the respective contributors. All rights reserved.
4 | *
5 | * Each contributor holds copyright over their respective contributions.
6 | * The project versioning (Git) records all such contribution source information.
7 | *
8 | *
9 | * The BHoM is free software: you can redistribute it and/or modify
10 | * it under the terms of the GNU Lesser General Public License as published by
11 | * the Free Software Foundation, either version 3.0 of the License, or
12 | * (at your option) any later version.
13 | *
14 | * The BHoM is distributed in the hope that it will be useful,
15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 | * GNU Lesser General Public License for more details.
18 | *
19 | * You should have received a copy of the GNU Lesser General Public License
20 | * along with this code. If not, see .
21 | */
22 |
23 | using System.Collections.Generic;
24 | using System.Linq;
25 | using BH.oM.Structure.Constraints;
26 | using BH.Engine.Structure;
27 | using RobotOM;
28 |
29 |
30 | namespace BH.Adapter.Robot
31 | {
32 | public partial class RobotAdapter
33 | {
34 |
35 | /***************************************************/
36 | /**** Private Methods ****/
37 | /***************************************************/
38 |
39 | /***************************************************/
40 |
41 | private bool CreateCollection(IEnumerable constraints)
42 | {
43 | IRobotLabelServer robotLabelServer = m_RobotApplication.Project.Structure.Labels;
44 | IRobotLabel robotLabel = robotLabelServer.Create(IRobotLabelType.I_LT_SUPPORT, "");
45 | List constraintsToUpdate = new List();
46 | foreach (Constraint6DOF constraint in constraints)
47 | {
48 | if (CheckNotNull(constraint, oM.Base.Debugging.EventType.Warning))
49 | {
50 | Convert.ToRobot(robotLabel.Data, constraint);
51 | robotLabelServer.StoreWithName(robotLabel, constraint.DescriptionOrName());
52 | SetAdapterId(constraint, constraint.DescriptionOrName());
53 | }
54 | }
55 | return true;
56 | }
57 |
58 | /***************************************************/
59 |
60 | }
61 |
62 | }
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
--------------------------------------------------------------------------------
/Robot_Adapter/CRUD/Create/Properties/SurfaceProperties.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of the Buildings and Habitats object Model (BHoM)
3 | * Copyright (c) 2015 - 2025, the respective contributors. All rights reserved.
4 | *
5 | * Each contributor holds copyright over their respective contributions.
6 | * The project versioning (Git) records all such contribution source information.
7 | *
8 | *
9 | * The BHoM is free software: you can redistribute it and/or modify
10 | * it under the terms of the GNU Lesser General Public License as published by
11 | * the Free Software Foundation, either version 3.0 of the License, or
12 | * (at your option) any later version.
13 | *
14 | * The BHoM is distributed in the hope that it will be useful,
15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 | * GNU Lesser General Public License for more details.
18 | *
19 | * You should have received a copy of the GNU Lesser General Public License
20 | * along with this code. If not, see .
21 | */
22 |
23 | using System.Collections.Generic;
24 | using BH.oM.Structure.SurfaceProperties;
25 | using BH.Engine.Structure;
26 | using RobotOM;
27 |
28 | namespace BH.Adapter.Robot
29 | {
30 | public partial class RobotAdapter
31 | {
32 | /***************************************************/
33 | /**** Private Methods ****/
34 | /***************************************************/
35 |
36 | private bool CreateCollection(IEnumerable properties)
37 | {
38 | IRobotLabelServer robotLabelServer = m_RobotApplication.Project.Structure.Labels;
39 | foreach (ISurfaceProperty property in properties)
40 | {
41 | if (CheckNotNull(property, oM.Base.Debugging.EventType.Warning))
42 | {
43 | if (property is LoadingPanelProperty)
44 | {
45 | IRobotLabel robotLabel = robotLabelServer.Create(IRobotLabelType.I_LT_CLADDING, "");
46 | if(Convert.ToRobot(robotLabel, property))
47 | robotLabelServer.StoreWithName(robotLabel, property.DescriptionOrName());
48 | }
49 | else
50 | {
51 | IRobotLabel robotLabel = robotLabelServer.Create(IRobotLabelType.I_LT_PANEL_THICKNESS, "");
52 |
53 | if(Convert.ToRobot(robotLabel, property))
54 | robotLabelServer.StoreWithName(robotLabel, property.DescriptionOrName());
55 | }
56 | SetAdapterId(property, property.DescriptionOrName());
57 | }
58 | }
59 | return true;
60 | }
61 |
62 | /***************************************************/
63 | }
64 | }
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
--------------------------------------------------------------------------------
/Robot_Adapter/CRUD/Read/Properties/LinearReleases.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of the Buildings and Habitats object Model (BHoM)
3 | * Copyright (c) 2015 - 2025, the respective contributors. All rights reserved.
4 | *
5 | * Each contributor holds copyright over their respective contributions.
6 | * The project versioning (Git) records all such contribution source information.
7 | *
8 | *
9 | * The BHoM is free software: you can redistribute it and/or modify
10 | * it under the terms of the GNU Lesser General Public License as published by
11 | * the Free Software Foundation, either version 3.0 of the License, or
12 | * (at your option) any later version.
13 | *
14 | * The BHoM is distributed in the hope that it will be useful,
15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 | * GNU Lesser General Public License for more details.
18 | *
19 | * You should have received a copy of the GNU Lesser General Public License
20 | * along with this code. If not, see .
21 | */
22 |
23 | using System.Collections.Generic;
24 | using RobotOM;
25 | using BH.oM.Structure.Constraints;
26 | using System.Linq;
27 |
28 | namespace BH.Adapter.Robot
29 | {
30 | public partial class RobotAdapter
31 | {
32 | /***************************************************/
33 | /**** Private Methods ****/
34 | /***************************************************/
35 |
36 | private List ReadConstraints4DOF(List ids = null)
37 | {
38 | return ReadLabels(IRobotLabelType.I_LT_LINEAR_RELEASE, ids).OfType().ToList();
39 | }
40 |
41 | /***************************************************/
42 |
43 | }
44 | }
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
--------------------------------------------------------------------------------
/Robot_Adapter/CRUD/Read/Properties/LinkConstraints.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of the Buildings and Habitats object Model (BHoM)
3 | * Copyright (c) 2015 - 2025, the respective contributors. All rights reserved.
4 | *
5 | * Each contributor holds copyright over their respective contributions.
6 | * The project versioning (Git) records all such contribution source information.
7 | *
8 | *
9 | * The BHoM is free software: you can redistribute it and/or modify
10 | * it under the terms of the GNU Lesser General Public License as published by
11 | * the Free Software Foundation, either version 3.0 of the License, or
12 | * (at your option) any later version.
13 | *
14 | * The BHoM is distributed in the hope that it will be useful,
15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 | * GNU Lesser General Public License for more details.
18 | *
19 | * You should have received a copy of the GNU Lesser General Public License
20 | * along with this code. If not, see .
21 | */
22 |
23 |
24 | using System.Collections.Generic;
25 | using RobotOM;
26 | using BH.oM.Structure.Constraints;
27 |
28 | namespace BH.Adapter.Robot
29 | {
30 | public partial class RobotAdapter
31 | {
32 | private List ReadLinkConstraint(List ids = null)
33 | {
34 | IRobotCollection linkConstrCollection = m_RobotApplication.Project.Structure.Labels.GetMany(IRobotLabelType.I_LT_NODE_RIGID_LINK);
35 | List bhomLinkConstraints = new List();
36 |
37 | for (int i = 1; i <= linkConstrCollection.Count; i++)
38 | {
39 | IRobotLabel rLinkConstraintLabel = linkConstrCollection.Get(i);
40 | IRobotNodeRigidLinkData rLinkConstraintData = rLinkConstraintLabel.Data as IRobotNodeRigidLinkData;
41 |
42 | LinkConstraint bhomLinkConstraint = new LinkConstraint
43 | {
44 | Name = rLinkConstraintLabel.Name,
45 | XtoX = rLinkConstraintData.UX,
46 | YtoY = rLinkConstraintData.UY,
47 | ZtoZ = rLinkConstraintData.UZ,
48 | XXtoXX = rLinkConstraintData.RX,
49 | YYtoYY = rLinkConstraintData.RY,
50 | ZZtoZZ = rLinkConstraintData.RZ
51 | };
52 |
53 | bhomLinkConstraints.Add(bhomLinkConstraint);
54 | }
55 | return bhomLinkConstraints;
56 |
57 | }
58 | }
59 | }
60 |
61 |
62 |
63 |
64 |
65 |
66 |
--------------------------------------------------------------------------------
/Robot_Adapter/CRUD/Read/Properties/Offset.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of the Buildings and Habitats object Model (BHoM)
3 | * Copyright (c) 2015 - 2025, the respective contributors. All rights reserved.
4 | *
5 | * Each contributor holds copyright over their respective contributions.
6 | * The project versioning (Git) records all such contribution source information.
7 | *
8 | *
9 | * The BHoM is free software: you can redistribute it and/or modify
10 | * it under the terms of the GNU Lesser General Public License as published by
11 | * the Free Software Foundation, either version 3.0 of the License, or
12 | * (at your option) any later version.
13 | *
14 | * The BHoM is distributed in the hope that it will be useful,
15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 | * GNU Lesser General Public License for more details.
18 | *
19 | * You should have received a copy of the GNU Lesser General Public License
20 | * along with this code. If not, see .
21 | */
22 |
23 | using System.Collections.Generic;
24 | using RobotOM;
25 | using BH.oM.Structure.Offsets;
26 | using System.Linq;
27 |
28 | namespace BH.Adapter.Robot
29 | {
30 | public partial class RobotAdapter
31 | {
32 | /***************************************************/
33 | /**** Private Methods ****/
34 | /***************************************************/
35 |
36 | private List ReadOffsets(List ids = null)
37 | {
38 | return ReadLabels(IRobotLabelType.I_LT_BAR_OFFSET, ids).OfType().ToList(); ;
39 | }
40 |
41 | /***************************************************/
42 |
43 |
44 | }
45 | }
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
--------------------------------------------------------------------------------
/Robot_Adapter/CRUD/Read/Properties/Releases.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of the Buildings and Habitats object Model (BHoM)
3 | * Copyright (c) 2015 - 2025, the respective contributors. All rights reserved.
4 | *
5 | * Each contributor holds copyright over their respective contributions.
6 | * The project versioning (Git) records all such contribution source information.
7 | *
8 | *
9 | * The BHoM is free software: you can redistribute it and/or modify
10 | * it under the terms of the GNU Lesser General Public License as published by
11 | * the Free Software Foundation, either version 3.0 of the License, or
12 | * (at your option) any later version.
13 | *
14 | * The BHoM is distributed in the hope that it will be useful,
15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 | * GNU Lesser General Public License for more details.
18 | *
19 | * You should have received a copy of the GNU Lesser General Public License
20 | * along with this code. If not, see .
21 | */
22 |
23 | using System.Collections.Generic;
24 | using RobotOM;
25 | using BH.oM.Structure.Constraints;
26 | using System.Linq;
27 |
28 | namespace BH.Adapter.Robot
29 | {
30 | public partial class RobotAdapter
31 | {
32 | /***************************************************/
33 | /**** Private Methods ****/
34 | /***************************************************/
35 |
36 | private List ReadBarRelease(List ids = null)
37 | {
38 | return ReadLabels(IRobotLabelType.I_LT_BAR_RELEASE, ids).OfType().ToList();
39 | }
40 |
41 | /***************************************************/
42 |
43 | }
44 |
45 | }
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
--------------------------------------------------------------------------------
/Robot_Adapter/CRUD/Read/Properties/Supports.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of the Buildings and Habitats object Model (BHoM)
3 | * Copyright (c) 2015 - 2025, the respective contributors. All rights reserved.
4 | *
5 | * Each contributor holds copyright over their respective contributions.
6 | * The project versioning (Git) records all such contribution source information.
7 | *
8 | *
9 | * The BHoM is free software: you can redistribute it and/or modify
10 | * it under the terms of the GNU Lesser General Public License as published by
11 | * the Free Software Foundation, either version 3.0 of the License, or
12 | * (at your option) any later version.
13 | *
14 | * The BHoM is distributed in the hope that it will be useful,
15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 | * GNU Lesser General Public License for more details.
18 | *
19 | * You should have received a copy of the GNU Lesser General Public License
20 | * along with this code. If not, see .
21 | */
22 |
23 | using System.Collections.Generic;
24 | using RobotOM;
25 | using BH.oM.Structure.Constraints;
26 | using System.Linq;
27 |
28 | namespace BH.Adapter.Robot
29 | {
30 | public partial class RobotAdapter
31 | {
32 | /***************************************************/
33 | /**** Private Methods ****/
34 | /***************************************************/
35 |
36 | private List ReadConstraints6DOF(List ids = null)
37 | {
38 | return ReadLabels(IRobotLabelType.I_LT_SUPPORT, ids).OfType().ToList();
39 | }
40 |
41 | /***************************************************/
42 |
43 | }
44 | }
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
--------------------------------------------------------------------------------
/Robot_Adapter/CRUD/Read/Results/ResultUtils.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of the Buildings and Habitats object Model (BHoM)
3 | * Copyright (c) 2015 - 2025, the respective contributors. All rights reserved.
4 | *
5 | * Each contributor holds copyright over their respective contributions.
6 | * The project versioning (Git) records all such contribution source information.
7 | *
8 | *
9 | * The BHoM is free software: you can redistribute it and/or modify
10 | * it under the terms of the GNU Lesser General Public License as published by
11 | * the Free Software Foundation, either version 3.0 of the License, or
12 | * (at your option) any later version.
13 | *
14 | * The BHoM is distributed in the hope that it will be useful,
15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 | * GNU Lesser General Public License for more details.
18 | *
19 | * You should have received a copy of the GNU Lesser General Public License
20 | * along with this code. If not, see .
21 | */
22 |
23 | using System.Collections.Generic;
24 | using System.Linq;
25 | using BH.oM.Base;
26 | using BH.oM.Structure.Results;
27 | using BH.oM.Structure.Requests;
28 | using BH.oM.Data.Requests;
29 | using RobotOM;
30 | using System;
31 | using System.Collections;
32 |
33 | namespace BH.Adapter.Robot
34 | {
35 | public partial class RobotAdapter
36 | {
37 | /***************************************************/
38 | /**** Protected Override Methods ****/
39 | /***************************************************/
40 |
41 |
42 |
43 | /***************************************************/
44 | /**** Private Methods ****/
45 | /***************************************************/
46 |
47 | private double TryGetValue(RobotResultRow row, int valuePosition)
48 | {
49 | return row.IsAvailable(valuePosition) ? row.GetValue(valuePosition) : double.NaN;
50 | }
51 |
52 | /***************************************************/
53 |
54 | private RobotSelection GetCaseSelection(IResultRequest request)
55 | {
56 | RobotSelection caseSelection = m_RobotApplication.Project.Structure.Selections.Create(IRobotObjectType.I_OT_CASE);
57 |
58 | if (request.Cases == null || request.Cases.Count == 0)
59 | caseSelection.FromText("all");
60 | else
61 | caseSelection.FromText(Convert.ToRobotSelectionString(GetCaseNumbers(request.Cases)));
62 |
63 | return caseSelection;
64 | }
65 |
66 | /***************************************************/
67 | }
68 | }
69 |
70 |
71 |
72 |
73 |
74 |
75 |
--------------------------------------------------------------------------------
/Robot_Adapter/CRUD/Update/IUpdate.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of the Buildings and Habitats object Model (BHoM)
3 | * Copyright (c) 2015 - 2025, the respective contributors. All rights reserved.
4 | *
5 | * Each contributor holds copyright over their respective contributions.
6 | * The project versioning (Git) records all such contribution source information.
7 | *
8 | *
9 | * The BHoM is free software: you can redistribute it and/or modify
10 | * it under the terms of the GNU Lesser General Public License as published by
11 | * the Free Software Foundation, either version 3.0 of the License, or
12 | * (at your option) any later version.
13 | *
14 | * The BHoM is distributed in the hope that it will be useful,
15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 | * GNU Lesser General Public License for more details.
18 | *
19 | * You should have received a copy of the GNU Lesser General Public License
20 | * along with this code. If not, see .
21 | */
22 |
23 | using BH.oM.Adapter;
24 | using BH.oM.Base;
25 | using System.Collections.Generic;
26 | using System.Linq;
27 |
28 | namespace BH.Adapter.Robot
29 | {
30 | public partial class RobotAdapter
31 | {
32 | /***************************************************/
33 | /**** Protected Methods ****/
34 | /***************************************************/
35 |
36 | protected override bool IUpdate(IEnumerable objects, ActionConfig actionConfig = null)
37 | {
38 | bool success = true;
39 | success = Update(objects as dynamic);
40 | UpdateView();
41 | return success;
42 | }
43 |
44 | /***************************************************/
45 |
46 | protected bool Update(IEnumerable bhomObjects)
47 | {
48 | IBHoMObject first = bhomObjects.FirstOrDefault();
49 | if(first != null)
50 | BH.Engine.Base.Compute.RecordWarning("Objects of type '" + first.GetType().Name + "' can currently not be updated");
51 | return true;
52 | }
53 |
54 | /***************************************************/
55 |
56 | }
57 | }
58 |
59 |
60 |
61 |
62 |
63 |
64 |
--------------------------------------------------------------------------------
/Robot_Adapter/CRUD/Update/Loads/LoadCombinations.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of the Buildings and Habitats object Model (BHoM)
3 | * Copyright (c) 2015 - 2025, the respective contributors. All rights reserved.
4 | *
5 | * Each contributor holds copyright over their respective contributions.
6 | * The project versioning (Git) records all such contribution source information.
7 | *
8 | *
9 | * The BHoM is free software: you can redistribute it and/or modify
10 | * it under the terms of the GNU Lesser General Public License as published by
11 | * the Free Software Foundation, either version 3.0 of the License, or
12 | * (at your option) any later version.
13 | *
14 | * The BHoM is distributed in the hope that it will be useful,
15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 | * GNU Lesser General Public License for more details.
18 | *
19 | * You should have received a copy of the GNU Lesser General Public License
20 | * along with this code. If not, see .
21 | */
22 |
23 | using System.Collections.Generic;
24 | using BH.oM.Base;
25 | using BH.oM.Structure.Elements;
26 | using BH.oM.Structure.SectionProperties;
27 | using BH.oM.Structure.SurfaceProperties;
28 | using BH.oM.Structure.Constraints;
29 | using BH.oM.Structure.Loads;
30 | using BH.oM.Physical.Materials;
31 | using BH.oM.Adapter;
32 | using RobotOM;
33 |
34 | namespace BH.Adapter.Robot
35 | {
36 | public partial class RobotAdapter
37 | {
38 | /***************************************************/
39 | /**** Protected Methods ****/
40 | /***************************************************/
41 |
42 | protected bool Update(IEnumerable loadCombinations)
43 | {
44 | bool success = true;
45 | success = ICreate(loadCombinations);
46 | return success;
47 | }
48 |
49 | /***************************************************/
50 |
51 | }
52 | }
53 |
54 |
55 |
56 |
57 |
58 |
59 |
--------------------------------------------------------------------------------
/Robot_Adapter/CRUD/Update/Loads/Loadcases.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of the Buildings and Habitats object Model (BHoM)
3 | * Copyright (c) 2015 - 2025, the respective contributors. All rights reserved.
4 | *
5 | * Each contributor holds copyright over their respective contributions.
6 | * The project versioning (Git) records all such contribution source information.
7 | *
8 | *
9 | * The BHoM is free software: you can redistribute it and/or modify
10 | * it under the terms of the GNU Lesser General Public License as published by
11 | * the Free Software Foundation, either version 3.0 of the License, or
12 | * (at your option) any later version.
13 | *
14 | * The BHoM is distributed in the hope that it will be useful,
15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 | * GNU Lesser General Public License for more details.
18 | *
19 | * You should have received a copy of the GNU Lesser General Public License
20 | * along with this code. If not, see .
21 | */
22 |
23 | using System.Collections.Generic;
24 | using BH.oM.Base;
25 | using BH.oM.Structure.Elements;
26 | using BH.oM.Structure.SectionProperties;
27 | using BH.oM.Structure.SurfaceProperties;
28 | using BH.oM.Structure.Constraints;
29 | using BH.oM.Structure.Loads;
30 | using BH.oM.Physical.Materials;
31 | using BH.oM.Adapter;
32 | using RobotOM;
33 |
34 | namespace BH.Adapter.Robot
35 | {
36 | public partial class RobotAdapter
37 | {
38 | /***************************************************/
39 | /**** Protected Methods ****/
40 | /***************************************************/
41 |
42 | protected bool Update(IEnumerable loadcases)
43 | {
44 | bool success = true;
45 | foreach (Loadcase lCase in loadcases)
46 | {
47 | RobotSimpleCase robotSimpCase = m_RobotApplication.Project.Structure.Cases.Get(lCase.Number) as RobotSimpleCase;
48 |
49 | if (robotSimpCase == null)
50 | {
51 | Engine.Base.Compute.RecordError("Loadcase with number " + lCase.Number + " does not exist in the model and could not be updated.");
52 | continue;
53 | }
54 |
55 | int subNature;
56 | IRobotCaseNature rNature = Convert.ToRobotLoadcaseNature(lCase, out subNature);
57 | robotSimpCase.AnalizeType = IRobotCaseAnalizeType.I_CAT_STATIC_LINEAR;
58 | robotSimpCase.Nature = rNature;
59 | robotSimpCase.Number = lCase.Number;
60 | robotSimpCase.Name = lCase.Name;
61 | }
62 | return success;
63 | }
64 |
65 | /***************************************************/
66 |
67 | }
68 | }
69 |
70 |
71 |
72 |
73 |
74 |
75 |
--------------------------------------------------------------------------------
/Robot_Adapter/CRUD/Update/Properties/LinearReleases.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of the Buildings and Habitats object Model (BHoM)
3 | * Copyright (c) 2015 - 2025, the respective contributors. All rights reserved.
4 | *
5 | * Each contributor holds copyright over their respective contributions.
6 | * The project versioning (Git) records all such contribution source information.
7 | *
8 | *
9 | * The BHoM is free software: you can redistribute it and/or modify
10 | * it under the terms of the GNU Lesser General Public License as published by
11 | * the Free Software Foundation, either version 3.0 of the License, or
12 | * (at your option) any later version.
13 | *
14 | * The BHoM is distributed in the hope that it will be useful,
15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 | * GNU Lesser General Public License for more details.
18 | *
19 | * You should have received a copy of the GNU Lesser General Public License
20 | * along with this code. If not, see .
21 | */
22 |
23 | using BH.oM.Structure.Elements;
24 | using BH.oM.Structure.SurfaceProperties;
25 | using RobotOM;
26 | using System.Collections.Generic;
27 | using BH.oM.Adapter;
28 | using System.Linq;
29 | using BH.oM.Structure.Constraints;
30 | using BH.Engine.Structure;
31 |
32 | namespace BH.Adapter.Robot
33 | {
34 | public partial class RobotAdapter
35 | {
36 | /***************************************************/
37 | /**** Protected Methods ****/
38 | /***************************************************/
39 |
40 | protected bool Update(IEnumerable linearReleases)
41 | {
42 | IRobotLabelServer robotLabelServer = m_RobotApplication.Project.Structure.Labels;
43 | foreach (Constraint4DOF constraint in linearReleases)
44 | {
45 | IRobotLabel robotLabel = robotLabelServer.Get(IRobotLabelType.I_LT_LINEAR_RELEASE, constraint.Name);
46 | Constraint4DOF robotConstraint = Convert.FromRobot(robotLabel, robotLabel.Data as IRobotLinearReleaseData);
47 | Constraint4DOFComparer constraint4DOFComparer = new Constraint4DOFComparer();
48 | if (constraint4DOFComparer.Equals(constraint, robotConstraint))
49 | continue;
50 | else
51 | {
52 | Convert.ToRobot(robotLabel.Data, constraint);
53 | robotLabelServer.StoreWithName(robotLabel, constraint.Name);
54 | BH.Engine.Base.Compute.RecordWarning("Linear Release '" + constraint.Name + "' already exists in the model, the properties have been overwritten");
55 | }
56 |
57 | }
58 | return true;
59 | }
60 |
61 | /***************************************************/
62 |
63 | }
64 | }
65 |
66 |
67 |
68 |
69 |
70 |
71 |
--------------------------------------------------------------------------------
/Robot_Adapter/CRUD/Update/Properties/LinkConstraints.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of the Buildings and Habitats object Model (BHoM)
3 | * Copyright (c) 2015 - 2025, the respective contributors. All rights reserved.
4 | *
5 | * Each contributor holds copyright over their respective contributions.
6 | * The project versioning (Git) records all such contribution source information.
7 | *
8 | *
9 | * The BHoM is free software: you can redistribute it and/or modify
10 | * it under the terms of the GNU Lesser General Public License as published by
11 | * the Free Software Foundation, either version 3.0 of the License, or
12 | * (at your option) any later version.
13 | *
14 | * The BHoM is distributed in the hope that it will be useful,
15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 | * GNU Lesser General Public License for more details.
18 | *
19 | * You should have received a copy of the GNU Lesser General Public License
20 | * along with this code. If not, see .
21 | */
22 |
23 | using System.Collections.Generic;
24 | using BH.oM.Base;
25 | using BH.oM.Structure.Elements;
26 | using BH.oM.Structure.SectionProperties;
27 | using BH.oM.Structure.SurfaceProperties;
28 | using BH.oM.Structure.Constraints;
29 | using BH.oM.Structure.Loads;
30 | using BH.oM.Physical.Materials;
31 | using BH.oM.Adapter;
32 | using RobotOM;
33 |
34 | namespace BH.Adapter.Robot
35 | {
36 | public partial class RobotAdapter
37 | {
38 | /***************************************************/
39 | /**** Protected Methods ****/
40 | /***************************************************/
41 |
42 | protected bool Update(IEnumerable linkConstraints)
43 | {
44 | bool success = true;
45 | success = ICreate(linkConstraints);
46 | return success;
47 | }
48 |
49 | /***************************************************/
50 |
51 | }
52 | }
53 |
54 |
55 |
56 |
57 |
58 |
59 |
--------------------------------------------------------------------------------
/Robot_Adapter/CRUD/Update/Properties/Materials.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of the Buildings and Habitats object Model (BHoM)
3 | * Copyright (c) 2015 - 2025, the respective contributors. All rights reserved.
4 | *
5 | * Each contributor holds copyright over their respective contributions.
6 | * The project versioning (Git) records all such contribution source information.
7 | *
8 | *
9 | * The BHoM is free software: you can redistribute it and/or modify
10 | * it under the terms of the GNU Lesser General Public License as published by
11 | * the Free Software Foundation, either version 3.0 of the License, or
12 | * (at your option) any later version.
13 | *
14 | * The BHoM is distributed in the hope that it will be useful,
15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 | * GNU Lesser General Public License for more details.
18 | *
19 | * You should have received a copy of the GNU Lesser General Public License
20 | * along with this code. If not, see .
21 | */
22 |
23 |
24 | using BH.oM.Structure.MaterialFragments;
25 | using RobotOM;
26 | using System.Collections.Generic;
27 |
28 | namespace BH.Adapter.Robot
29 | {
30 | public partial class RobotAdapter
31 | {
32 | /***************************************************/
33 | /**** Protected Methods ****/
34 | /***************************************************/
35 |
36 | protected bool Update(IEnumerable materials)
37 | {
38 | return CreateCollection(materials, true);
39 | }
40 |
41 | /***************************************************/
42 | }
43 | }
44 |
45 |
46 |
47 |
48 |
49 |
50 |
--------------------------------------------------------------------------------
/Robot_Adapter/CRUD/Update/Properties/Offset.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of the Buildings and Habitats object Model (BHoM)
3 | * Copyright (c) 2015 - 2025, the respective contributors. All rights reserved.
4 | *
5 | * Each contributor holds copyright over their respective contributions.
6 | * The project versioning (Git) records all such contribution source information.
7 | *
8 | *
9 | * The BHoM is free software: you can redistribute it and/or modify
10 | * it under the terms of the GNU Lesser General Public License as published by
11 | * the Free Software Foundation, either version 3.0 of the License, or
12 | * (at your option) any later version.
13 | *
14 | * The BHoM is distributed in the hope that it will be useful,
15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 | * GNU Lesser General Public License for more details.
18 | *
19 | * You should have received a copy of the GNU Lesser General Public License
20 | * along with this code. If not, see .
21 | */
22 |
23 |
24 | using BH.oM.Structure.Offsets;
25 | using System.Collections.Generic;
26 |
27 | namespace BH.Adapter.Robot
28 | {
29 | public partial class RobotAdapter
30 | {
31 | /***************************************************/
32 | /**** Protected Methods ****/
33 | /***************************************************/
34 |
35 | protected bool Update(IEnumerable offsets)
36 | {
37 | return CreateCollection(offsets);
38 | }
39 |
40 | /***************************************************/
41 | }
42 | }
43 |
44 |
45 |
46 |
47 |
48 |
49 |
--------------------------------------------------------------------------------
/Robot_Adapter/CRUD/Update/Properties/SectionProperties.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of the Buildings and Habitats object Model (BHoM)
3 | * Copyright (c) 2015 - 2025, the respective contributors. All rights reserved.
4 | *
5 | * Each contributor holds copyright over their respective contributions.
6 | * The project versioning (Git) records all such contribution source information.
7 | *
8 | *
9 | * The BHoM is free software: you can redistribute it and/or modify
10 | * it under the terms of the GNU Lesser General Public License as published by
11 | * the Free Software Foundation, either version 3.0 of the License, or
12 | * (at your option) any later version.
13 | *
14 | * The BHoM is distributed in the hope that it will be useful,
15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 | * GNU Lesser General Public License for more details.
18 | *
19 | * You should have received a copy of the GNU Lesser General Public License
20 | * along with this code. If not, see .
21 | */
22 |
23 | using System.Collections.Generic;
24 | using BH.oM.Base;
25 | using BH.oM.Structure.Elements;
26 | using BH.oM.Structure.SectionProperties;
27 | using BH.oM.Structure.SurfaceProperties;
28 | using BH.oM.Structure.Constraints;
29 | using BH.oM.Structure.Loads;
30 | using BH.oM.Physical.Materials;
31 | using BH.oM.Adapter;
32 | using RobotOM;
33 |
34 | namespace BH.Adapter.Robot
35 | {
36 | public partial class RobotAdapter
37 | {
38 | /***************************************************/
39 | /**** Protected Methods ****/
40 | /***************************************************/
41 |
42 | protected bool Update(IEnumerable sectionProperties)
43 | {
44 | List secPropToCreate = new List();
45 |
46 | foreach (ISectionProperty p in sectionProperties)
47 | {
48 | string match = Convert.Match(m_dbSecPropNames, p);
49 | if (match == null)
50 | secPropToCreate.Add(p);
51 | }
52 |
53 | bool success = true;
54 | success = ICreate(secPropToCreate);
55 | return success;
56 | }
57 |
58 | /***************************************************/
59 |
60 | }
61 | }
62 |
63 |
64 |
65 |
66 |
67 |
68 |
--------------------------------------------------------------------------------
/Robot_Adapter/CRUD/Update/Properties/Supports.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of the Buildings and Habitats object Model (BHoM)
3 | * Copyright (c) 2015 - 2025, the respective contributors. All rights reserved.
4 | *
5 | * Each contributor holds copyright over their respective contributions.
6 | * The project versioning (Git) records all such contribution source information.
7 | *
8 | *
9 | * The BHoM is free software: you can redistribute it and/or modify
10 | * it under the terms of the GNU Lesser General Public License as published by
11 | * the Free Software Foundation, either version 3.0 of the License, or
12 | * (at your option) any later version.
13 | *
14 | * The BHoM is distributed in the hope that it will be useful,
15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 | * GNU Lesser General Public License for more details.
18 | *
19 | * You should have received a copy of the GNU Lesser General Public License
20 | * along with this code. If not, see .
21 | */
22 |
23 | using BH.Engine.Structure;
24 | using BH.oM.Structure.Constraints;
25 | using RobotOM;
26 | using System.Collections.Generic;
27 |
28 | namespace BH.Adapter.Robot
29 | {
30 | public partial class RobotAdapter
31 | {
32 | /***************************************************/
33 | /**** Protected Methods ****/
34 | /***************************************************/
35 |
36 | protected bool Update(IEnumerable supports)
37 | {
38 | IRobotLabelServer robotLabelServer = m_RobotApplication.Project.Structure.Labels;
39 | foreach (Constraint6DOF support in supports)
40 | {
41 | IRobotLabel robotLabel = robotLabelServer.Get(IRobotLabelType.I_LT_SUPPORT, support.Name);
42 | Constraint6DOF robotConstraint = Convert.FromRobot(robotLabel as RobotNodeSupport);
43 | Constraint6DOFComparer constraint6DOFComparer = new Constraint6DOFComparer();
44 | if (constraint6DOFComparer.Equals(support, robotConstraint))
45 | continue;
46 | else
47 | {
48 | Convert.ToRobot(robotLabel.Data, support);
49 | robotLabelServer.StoreWithName(robotLabel, support.Name);
50 | BH.Engine.Base.Compute.RecordWarning("Support '" + support.Name + "' already exists in the model, the properties have been overwritten");
51 | }
52 |
53 | }
54 | return true;
55 |
56 | /***************************************************/
57 | }
58 | }
59 | }
60 |
61 |
62 |
63 |
64 |
65 |
66 |
--------------------------------------------------------------------------------
/Robot_Adapter/CRUD/Update/Properties/SurfaceProperties.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of the Buildings and Habitats object Model (BHoM)
3 | * Copyright (c) 2015 - 2025, the respective contributors. All rights reserved.
4 | *
5 | * Each contributor holds copyright over their respective contributions.
6 | * The project versioning (Git) records all such contribution source information.
7 | *
8 | *
9 | * The BHoM is free software: you can redistribute it and/or modify
10 | * it under the terms of the GNU Lesser General Public License as published by
11 | * the Free Software Foundation, either version 3.0 of the License, or
12 | * (at your option) any later version.
13 | *
14 | * The BHoM is distributed in the hope that it will be useful,
15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 | * GNU Lesser General Public License for more details.
18 | *
19 | * You should have received a copy of the GNU Lesser General Public License
20 | * along with this code. If not, see .
21 | */
22 |
23 |
24 |
25 | using BH.oM.Structure.SurfaceProperties;
26 | using System.Collections.Generic;
27 |
28 | namespace BH.Adapter.Robot
29 | {
30 | public partial class RobotAdapter
31 | {
32 | /***************************************************/
33 | /**** Protected Methods ****/
34 | /***************************************************/
35 |
36 | protected bool Update(IEnumerable properties)
37 | {
38 | return CreateCollection(properties);
39 | }
40 |
41 | /***************************************************/
42 | }
43 | }
44 |
45 |
46 |
47 |
48 |
49 |
50 |
--------------------------------------------------------------------------------
/Robot_Adapter/CRUD/Update/UpdateTags.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of the Buildings and Habitats object Model (BHoM)
3 | * Copyright (c) 2015 - 2025, the respective contributors. All rights reserved.
4 | *
5 | * Each contributor holds copyright over their respective contributions.
6 | * The project versioning (Git) records all such contribution source information.
7 | *
8 | *
9 | * The BHoM is free software: you can redistribute it and/or modify
10 | * it under the terms of the GNU Lesser General Public License as published by
11 | * the Free Software Foundation, either version 3.0 of the License, or
12 | * (at your option) any later version.
13 | *
14 | * The BHoM is distributed in the hope that it will be useful,
15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 | * GNU Lesser General Public License for more details.
18 | *
19 | * You should have received a copy of the GNU Lesser General Public License
20 | * along with this code. If not, see .
21 | */
22 |
23 | using System.Collections.Generic;
24 | using System.Linq;
25 | using System;
26 | using BH.oM.Adapter;
27 |
28 | namespace BH.Adapter.Robot
29 | {
30 | public partial class RobotAdapter
31 | {
32 | /***************************************************/
33 | /**** Public Methods ****/
34 | /***************************************************/
35 |
36 | protected override int IUpdateTags(Type type, IEnumerable