├── .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 | [![License: LGPL v3](https://img.shields.io/badge/License-LGPL%20v3-blue.svg)](https://www.gnu.org/licenses/lgpl-3.0) [![Build status](https://ci.appveyor.com/api/projects/status/11a3ucotxcl9746k/branch/master?svg=true)](https://ci.appveyor.com/api/projects/status/robot_toolkit/branch/master) [![Build Status](https://dev.azure.com/BHoMBot/BHoM/_apis/build/status/Robot_Toolkit/Robot_Toolkit.CheckCore?branchName=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 ids, IEnumerable> newTags, ActionConfig actionConfig = null) 37 | { 38 | List indecies = ids.Select(x => (int)x).ToList(); 39 | if (indecies.Count < 1) 40 | return 0; 41 | 42 | return UpdateTags(type, indecies, newTags.ToList()); 43 | } 44 | 45 | /***************************************************/ 46 | /**** Private Methods ****/ 47 | /***************************************************/ 48 | 49 | private int UpdateTags(Type t, List indecies, List> tags) 50 | { 51 | Dictionary> typeTags = this.GetTypeTags(t);// = m_tags[t]; 52 | 53 | for (int i = 0; i < indecies.Count; i++) 54 | { 55 | typeTags[indecies[i]] = tags[i]; 56 | } 57 | 58 | return indecies.Count; 59 | } 60 | 61 | /***************************************************/ 62 | 63 | } 64 | } 65 | 66 | 67 | 68 | 69 | 70 | 71 | -------------------------------------------------------------------------------- /Robot_Adapter/Convert/FromRobot/Elements/Node.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.Geometry; 24 | using RobotOM; 25 | using BH.oM.Structure.Elements; 26 | using BH.oM.Structure.Constraints; 27 | 28 | namespace BH.Adapter.Robot 29 | { 30 | public static partial class Convert 31 | { 32 | /***************************************************/ 33 | /**** Public Methods ****/ 34 | /***************************************************/ 35 | 36 | public static Node FromRobot(this RobotNode robotNode) 37 | { 38 | Node bhomNode = new Node { Position = new Point { X = robotNode.X, Y = robotNode.Y, Z = robotNode.Z } }; 39 | if (robotNode.HasLabel(IRobotLabelType.I_LT_SUPPORT) == 1) 40 | { 41 | bhomNode.Support = Convert.FromRobot((RobotNodeSupport)robotNode.GetLabel(IRobotLabelType.I_LT_SUPPORT)); 42 | } 43 | return bhomNode; 44 | } 45 | 46 | /***************************************************/ 47 | 48 | public static Node FromRobotConstraintName(this RobotNode robotNode) 49 | { 50 | Node bhomNode = new Node { Position = new Point { X = robotNode.X, Y = robotNode.Y, Z = robotNode.Z } }; 51 | if (robotNode.HasLabel(IRobotLabelType.I_LT_SUPPORT) == 1) 52 | { 53 | bhomNode.Support = new Constraint6DOF { Name = robotNode.GetLabelName(IRobotLabelType.I_LT_SUPPORT) }; 54 | } 55 | return bhomNode; 56 | } 57 | 58 | /***************************************************/ 59 | 60 | } 61 | } 62 | 63 | 64 | 65 | 66 | 67 | 68 | -------------------------------------------------------------------------------- /Robot_Adapter/Convert/FromRobot/Elements/Panel.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.MaterialFragments; 24 | using RobotOM; 25 | using System; 26 | using System.Collections.Generic; 27 | using BH.oM.Structure.Elements; 28 | using BH.oM.Structure.SectionProperties; 29 | using BH.oM.Structure.Constraints; 30 | using BH.oM.Structure.Offsets; 31 | using BH.oM.Adapters.Robot; 32 | using BH.Engine.Structure; 33 | using BH.oM.Geometry; 34 | using BH.Engine.Geometry; 35 | 36 | 37 | namespace BH.Adapter.Robot 38 | { 39 | public static partial class Convert 40 | { 41 | /***************************************************/ 42 | /**** Public Methods ****/ 43 | /***************************************************/ 44 | 45 | public static bool FromRobotCheckFlipNormal(Vector normal, bool flip) 46 | { 47 | double tolerance = 1e-16; 48 | 49 | if (Math.Abs(normal.Z) > tolerance) 50 | { 51 | if (normal.Z < 0) 52 | flip = !flip; 53 | } 54 | else if (Math.Abs(normal.X) > tolerance) 55 | { 56 | if (normal.X < 0) 57 | flip = !flip; 58 | } 59 | else 60 | { 61 | if (normal.Y < 0) 62 | flip = !flip; 63 | } 64 | 65 | return flip; 66 | } 67 | 68 | /***************************************************/ 69 | } 70 | 71 | } 72 | 73 | 74 | 75 | 76 | 77 | 78 | -------------------------------------------------------------------------------- /Robot_Adapter/Convert/FromRobot/Geometry/Point.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.Geometry; 24 | using GeometryEngine = BH.Engine.Geometry; 25 | using RobotOM; 26 | 27 | 28 | namespace BH.Adapter.Robot 29 | { 30 | public static partial class Convert 31 | { 32 | /***************************************************/ 33 | /**** Public Methods ****/ 34 | /***************************************************/ 35 | 36 | public static Point FromRobot(this RobotGeoPoint3D point) 37 | { 38 | return new Point { X = point.X, Y = point.Y, Z = point.Z }; 39 | } 40 | 41 | /***************************************************/ 42 | 43 | } 44 | } 45 | 46 | 47 | 48 | 49 | 50 | 51 | -------------------------------------------------------------------------------- /Robot_Adapter/Convert/FromRobot/Loads/AreaUniformlyDistributedLoad.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.Geometry; 24 | using BH.oM.Structure.Loads; 25 | using BH.oM.Structure.Elements; 26 | using RobotOM; 27 | using System.Collections.Generic; 28 | using System.Linq; 29 | using BH.oM.Base; 30 | 31 | namespace BH.Adapter.Robot 32 | { 33 | public static partial class Convert 34 | { 35 | /***************************************************/ 36 | /**** Public Methods ****/ 37 | /***************************************************/ 38 | 39 | public static AreaUniformlyDistributedLoad FromRobotAreaUDL(this IRobotLoadRecord loadRecord) 40 | { 41 | if (loadRecord == null) 42 | return null; 43 | 44 | try 45 | { 46 | double fx = loadRecord.GetValue((short)IRobotUniformRecordValues.I_URV_PX); 47 | double fy = loadRecord.GetValue((short)IRobotUniformRecordValues.I_URV_PY); 48 | double fz = loadRecord.GetValue((short)IRobotUniformRecordValues.I_URV_PZ); 49 | double local = loadRecord.GetValue((short)IRobotUniformRecordValues.I_URV_LOCAL_SYSTEM); 50 | double projected = loadRecord.GetValue((short)IRobotUniformRecordValues.I_URV_PROJECTED); 51 | 52 | return new AreaUniformlyDistributedLoad 53 | { 54 | Pressure = new Vector { X = fx, Y = fy, Z = fz }, 55 | Axis = local.FromRobotLoadAxis(), 56 | Projected = projected.FromRobotProjected() 57 | }; 58 | } 59 | catch (System.Exception) 60 | { 61 | return null; 62 | } 63 | } 64 | 65 | /***************************************************/ 66 | } 67 | } 68 | 69 | 70 | 71 | 72 | 73 | 74 | -------------------------------------------------------------------------------- /Robot_Adapter/Convert/FromRobot/Loads/BarUniformTemperatureLoad.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.Loads; 24 | using RobotOM; 25 | 26 | namespace BH.Adapter.Robot 27 | { 28 | public static partial class Convert 29 | { 30 | /***************************************************/ 31 | /**** Public Methods ****/ 32 | /***************************************************/ 33 | 34 | public static BarUniformTemperatureLoad FromRobotBarTempLoad(this IRobotLoadRecord loadRecord) 35 | { 36 | if (loadRecord == null) 37 | return null; 38 | 39 | try 40 | { 41 | double t = loadRecord.GetValue((short)IRobotBarThermalRecordValues.I_BTRV_TX); 42 | double ty = loadRecord.GetValue((short)IRobotBarThermalRecordValues.I_BTRV_TY); 43 | double tz = loadRecord.GetValue((short)IRobotBarThermalRecordValues.I_BTRV_TZ); 44 | 45 | if (ty != 0 || tz != 0) 46 | { 47 | Engine.Base.Compute.RecordWarning("Temparature loads in Robot with non axial components found. BHoM Temprature loads only support uniform temprature change, only this value will be extracted."); 48 | } 49 | 50 | return new BarUniformTemperatureLoad 51 | { 52 | TemperatureChange = t 53 | }; 54 | } 55 | catch (System.Exception) 56 | { 57 | return null; 58 | } 59 | 60 | } 61 | 62 | /***************************************************/ 63 | } 64 | } 65 | 66 | 67 | 68 | 69 | 70 | 71 | -------------------------------------------------------------------------------- /Robot_Adapter/Convert/FromRobot/Loads/GravityLoad.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.Geometry; 24 | using BH.oM.Structure.Loads; 25 | using RobotOM; 26 | 27 | namespace BH.Adapter.Robot 28 | { 29 | public static partial class Convert 30 | { 31 | /***************************************************/ 32 | /**** Public Methods ****/ 33 | /***************************************************/ 34 | 35 | public static GravityLoad FromRobotGravityLoad(this IRobotLoadRecord loadRecord) 36 | { 37 | if (loadRecord == null) 38 | return null; 39 | 40 | try 41 | { 42 | double dx = loadRecord.GetValue((short)IRobotDeadRecordValues.I_DRV_X); 43 | double dy = loadRecord.GetValue((short)IRobotDeadRecordValues.I_DRV_Y); 44 | double dz = loadRecord.GetValue((short)IRobotDeadRecordValues.I_DRV_Z); 45 | double coef = loadRecord.GetValue((short)IRobotDeadRecordValues.I_DRV_COEFF); 46 | 47 | return new GravityLoad 48 | { 49 | GravityDirection = new Vector { X = dx * coef, Y = dy * coef, Z = dz * coef } 50 | }; 51 | } 52 | catch (System.Exception) 53 | { 54 | return null; 55 | } 56 | } 57 | 58 | /***************************************************/ 59 | 60 | } 61 | } 62 | 63 | 64 | 65 | 66 | 67 | 68 | -------------------------------------------------------------------------------- /Robot_Adapter/Convert/FromRobot/Loads/PointAcceleration.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.Geometry; 24 | using BH.oM.Structure.Loads; 25 | using RobotOM; 26 | 27 | namespace BH.Adapter.Robot 28 | { 29 | public static partial class Convert 30 | { 31 | /***************************************************/ 32 | /**** Public Methods ****/ 33 | /***************************************************/ 34 | 35 | public static PointAcceleration FromRobotPtAccel(this IRobotLoadRecord loadRecord) 36 | { 37 | if (loadRecord == null) 38 | return null; 39 | 40 | try 41 | { 42 | double ax = loadRecord.GetValue((short)IRobotNodeAccelerationRecordValues.I_NACRV_UX); 43 | double ay = loadRecord.GetValue((short)IRobotNodeAccelerationRecordValues.I_NACRV_UY); 44 | double az = loadRecord.GetValue((short)IRobotNodeAccelerationRecordValues.I_NACRV_UZ); 45 | 46 | return new PointAcceleration 47 | { 48 | TranslationalAcceleration = new Vector { X = ax, Y = ay, Z = az } 49 | }; 50 | } 51 | catch (System.Exception) 52 | { 53 | return null; 54 | } 55 | } 56 | 57 | /***************************************************/ 58 | } 59 | } 60 | 61 | 62 | 63 | 64 | 65 | 66 | -------------------------------------------------------------------------------- /Robot_Adapter/Convert/FromRobot/Loads/PointDisplacement.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.Geometry; 24 | using BH.oM.Structure.Loads; 25 | using RobotOM; 26 | 27 | namespace BH.Adapter.Robot 28 | { 29 | public static partial class Convert 30 | { 31 | /***************************************************/ 32 | /**** Public Methods ****/ 33 | /***************************************************/ 34 | 35 | public static PointDisplacement FromRobotPtDisp(this IRobotLoadRecord loadRecord) 36 | { 37 | if (loadRecord == null) 38 | return null; 39 | 40 | try 41 | { 42 | double ux = loadRecord.GetValue((short)IRobotNodeDisplacementRecordValues.I_NDRV_UX); 43 | double uy = loadRecord.GetValue((short)IRobotNodeDisplacementRecordValues.I_NDRV_UY); 44 | double uz = loadRecord.GetValue((short)IRobotNodeDisplacementRecordValues.I_NDRV_UZ); 45 | double rx = loadRecord.GetValue((short)IRobotNodeDisplacementRecordValues.I_NDRV_RX); 46 | double ry = loadRecord.GetValue((short)IRobotNodeDisplacementRecordValues.I_NDRV_RY); 47 | double rz = loadRecord.GetValue((short)IRobotNodeDisplacementRecordValues.I_NDRV_RZ); 48 | 49 | return new PointDisplacement 50 | { 51 | Translation = new Vector { X = ux, Y = uy, Z = uz }, 52 | Rotation = new Vector { X = rx, Y = ry, Z = rz } 53 | }; 54 | } 55 | catch (System.Exception) 56 | { 57 | return null; 58 | } 59 | } 60 | 61 | /***************************************************/ 62 | } 63 | } 64 | 65 | 66 | 67 | 68 | 69 | 70 | -------------------------------------------------------------------------------- /Robot_Adapter/Convert/FromRobot/Loads/PointLoad.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.Geometry; 24 | using BH.oM.Structure.Loads; 25 | using RobotOM; 26 | 27 | namespace BH.Adapter.Robot 28 | { 29 | public static partial class Convert 30 | { 31 | /***************************************************/ 32 | /**** Public Methods ****/ 33 | /***************************************************/ 34 | 35 | public static PointLoad FromRobotPtLoad(this IRobotLoadRecord loadRecord) 36 | { 37 | if (loadRecord == null) 38 | return null; 39 | 40 | try 41 | { 42 | double fx = loadRecord.GetValue((short)IRobotNodeForceRecordValues.I_NFRV_FX); 43 | double fy = loadRecord.GetValue((short)IRobotNodeForceRecordValues.I_NFRV_FY); 44 | double fz = loadRecord.GetValue((short)IRobotNodeForceRecordValues.I_NFRV_FZ); 45 | double mx = loadRecord.GetValue((short)IRobotNodeForceRecordValues.I_NFRV_CX); 46 | double my = loadRecord.GetValue((short)IRobotNodeForceRecordValues.I_NFRV_CY); 47 | double mz = loadRecord.GetValue((short)IRobotNodeForceRecordValues.I_NFRV_CZ); 48 | 49 | return new PointLoad 50 | { 51 | Force = new Vector { X = fx, Y = fy, Z = fz }, 52 | Moment = new Vector { X = mx, Y = my, Z = mz } 53 | }; 54 | } 55 | catch (System.Exception) 56 | { 57 | return null; 58 | } 59 | } 60 | 61 | /***************************************************/ 62 | } 63 | } 64 | 65 | 66 | 67 | 68 | 69 | 70 | -------------------------------------------------------------------------------- /Robot_Adapter/Convert/FromRobot/Loads/PointVelocity.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.Geometry; 24 | using BH.oM.Structure.Loads; 25 | using RobotOM; 26 | 27 | namespace BH.Adapter.Robot 28 | { 29 | public static partial class Convert 30 | { 31 | /***************************************************/ 32 | /**** Public Methods ****/ 33 | /***************************************************/ 34 | 35 | public static PointVelocity FromRobotPtVel(this IRobotLoadRecord loadRecord) 36 | { 37 | if (loadRecord == null) 38 | return null; 39 | 40 | try 41 | { 42 | double vx = loadRecord.GetValue((short)IRobotNodeVelocityRecordValues.I_NVRV_UX); 43 | double vy = loadRecord.GetValue((short)IRobotNodeVelocityRecordValues.I_NVRV_UY); 44 | double vz = loadRecord.GetValue((short)IRobotNodeVelocityRecordValues.I_NVRV_UZ); 45 | 46 | return new PointVelocity 47 | { 48 | TranslationalVelocity = new Vector { X = vx, Y = vy, Z = vz } 49 | }; 50 | } 51 | catch (System.Exception) 52 | { 53 | return null; 54 | } 55 | } 56 | 57 | /***************************************************/ 58 | } 59 | } 60 | 61 | 62 | 63 | 64 | 65 | 66 | -------------------------------------------------------------------------------- /Robot_Adapter/Convert/FromRobot/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 RobotOM; 24 | using BH.oM.Structure.Offsets; 25 | using BH.oM.Geometry; 26 | 27 | namespace BH.Adapter.Robot 28 | { 29 | public static partial class Convert 30 | { 31 | /***************************************************/ 32 | /**** Public Methods ****/ 33 | /***************************************************/ 34 | 35 | public static Offset FromRobot(this IRobotLabel robotLabel, IRobotBarOffsetData offsetData) 36 | { 37 | if (robotLabel == null || offsetData == null) 38 | { 39 | Engine.Base.Compute.RecordWarning("Failed to extract at least one Offset from Robot."); 40 | return null; 41 | } 42 | 43 | Vector start = new Vector 44 | { 45 | X = offsetData.Start.UX, 46 | Y = offsetData.Start.UY, 47 | Z = offsetData.Start.UZ 48 | }; 49 | 50 | Vector end = new Vector 51 | { 52 | X = offsetData.End.UX, 53 | Y = offsetData.End.UY, 54 | Z = offsetData.End.UZ 55 | }; 56 | 57 | Offset offset = new Offset 58 | { 59 | Name = robotLabel.Name, 60 | Start = start, 61 | End = end, 62 | }; 63 | return offset; 64 | } 65 | 66 | /***************************************************/ 67 | 68 | } 69 | } 70 | 71 | 72 | 73 | 74 | 75 | 76 | -------------------------------------------------------------------------------- /Robot_Adapter/Convert/ToRobot/Elements/Panel.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 RobotOM; 24 | using BH.oM.Structure.Elements; 25 | using BH.oM.Base.Attributes; 26 | using System.ComponentModel; 27 | using BH.oM.Geometry; 28 | using BH.Engine.Geometry; 29 | using BH.Engine.Structure; 30 | using System; 31 | 32 | namespace BH.Adapter.Robot 33 | { 34 | public static partial class Convert 35 | { 36 | /***************************************************/ 37 | /**** Public Methods ****/ 38 | /***************************************************/ 39 | 40 | public static int ToRobotFlipPanelZ(this Vector normal) 41 | { 42 | //Tolerance is lower than any geometry tolerance used in the BHoM, hence defined here 43 | double tolerance = 1e-16; 44 | if (Math.Abs(normal.Z) > tolerance) 45 | { 46 | if (normal.Z < 0) 47 | return 1; 48 | } 49 | else if (Math.Abs(normal.X) > tolerance) 50 | { 51 | if (normal.X < 0) 52 | return 1; 53 | } 54 | else 55 | { 56 | if (normal.Y < 0) 57 | return 1; 58 | } 59 | 60 | return 0; 61 | } 62 | 63 | /***************************************************/ 64 | 65 | } 66 | } 67 | 68 | 69 | 70 | 71 | 72 | -------------------------------------------------------------------------------- /Robot_Adapter/Convert/ToRobot/Geometry/Arc.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.Geometry; 24 | using BH.oM.Geometry; 25 | using RobotOM; 26 | using System; 27 | using System.Collections.Generic; 28 | 29 | namespace BH.Adapter.Robot 30 | { 31 | public static partial class Convert 32 | { 33 | /***************************************************/ 34 | /**** Public Methods ****/ 35 | /***************************************************/ 36 | 37 | public static RobotGeoSegment ToRobot(Arc arc, RobotApplication robotApplication) 38 | { 39 | Type arcType = typeof(Arc); 40 | //Check inner properties are not null 41 | if (!RobotAdapter.CheckNotNull(arc.CoordinateSystem, oM.Base.Debugging.EventType.Error, arcType) || 42 | !RobotAdapter.CheckNotNull(arc.CoordinateSystem.Origin, oM.Base.Debugging.EventType.Error, arcType) || 43 | !RobotAdapter.CheckNotNull(arc.CoordinateSystem.X, oM.Base.Debugging.EventType.Error, arcType) || 44 | !RobotAdapter.CheckNotNull(arc.CoordinateSystem.Y, oM.Base.Debugging.EventType.Error, arcType) || 45 | !RobotAdapter.CheckNotNull(arc.CoordinateSystem.Z, oM.Base.Debugging.EventType.Error, arcType)) 46 | return null; 47 | 48 | RobotGeoSegmentArc robotArc = robotApplication.CmpntFactory.Create(IRobotComponentType.I_CT_GEO_SEGMENT_ARC); 49 | Point start = arc.StartPoint(); 50 | Point middle = arc.PointAtParameter(0.5); 51 | robotArc.P1.Set(start.X, start.Y, start.Z); 52 | robotArc.P2.Set(middle.X, middle.Y, middle.Z); 53 | return robotArc as RobotGeoSegment; 54 | } 55 | 56 | /***************************************************/ 57 | } 58 | 59 | } 60 | 61 | 62 | 63 | 64 | 65 | 66 | -------------------------------------------------------------------------------- /Robot_Adapter/Convert/ToRobot/Geometry/Circle.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.Geometry; 24 | using BH.oM.Geometry; 25 | using RobotOM; 26 | using System; 27 | using System.Collections.Generic; 28 | 29 | namespace BH.Adapter.Robot 30 | { 31 | public static partial class Convert 32 | { 33 | /***************************************************/ 34 | /**** Public Methods ****/ 35 | /***************************************************/ 36 | 37 | public static RobotGeoCircle ToRobot(Circle circle, RobotApplication robotApplication) 38 | { 39 | if (!RobotAdapter.CheckNotNull(circle.Centre, oM.Base.Debugging.EventType.Error, typeof(Circle)) || 40 | !RobotAdapter.CheckNotNull(circle.Normal, oM.Base.Debugging.EventType.Error, typeof(Circle))) 41 | return null; 42 | 43 | RobotGeoCircle robotCircle = robotApplication.CmpntFactory.Create(IRobotComponentType.I_CT_GEO_CIRCLE); 44 | Point point1 = circle.IPointAtParameter(0); 45 | Point point2 = circle.IPointAtParameter(0.33); 46 | Point point3 = circle.IPointAtParameter(0.66); 47 | robotCircle.P1.Set(point1.X, point1.Y, point1.Z); 48 | robotCircle.P2.Set(point2.X, point2.Y, point2.Z); 49 | robotCircle.P3.Set(point3.X, point3.Y, point3.Z); 50 | return robotCircle; 51 | } 52 | 53 | /***************************************************/ 54 | 55 | } 56 | 57 | } 58 | 59 | 60 | 61 | 62 | 63 | 64 | -------------------------------------------------------------------------------- /Robot_Adapter/Convert/ToRobot/Geometry/Line.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.Geometry; 24 | using BH.oM.Geometry; 25 | using RobotOM; 26 | using System; 27 | using System.Collections.Generic; 28 | 29 | namespace BH.Adapter.Robot 30 | { 31 | public static partial class Convert 32 | { 33 | /***************************************************/ 34 | /**** Public Methods ****/ 35 | /***************************************************/ 36 | 37 | 38 | public static RobotGeoSegmentLine ToRobot(Line line, RobotApplication robotApplication) 39 | { 40 | if (!RobotAdapter.CheckNotNull(line.Start, oM.Base.Debugging.EventType.Error, typeof(Line)) || 41 | !RobotAdapter.CheckNotNull(line.End, oM.Base.Debugging.EventType.Error, typeof(Line))) 42 | return null; 43 | 44 | RobotGeoSegmentLine robotLine = robotApplication.CmpntFactory.Create(IRobotComponentType.I_CT_GEO_SEGMENT_LINE); 45 | robotLine.P1.Set(line.Start.X, line.Start.Y, line.Start.Z); 46 | return robotLine; 47 | } 48 | 49 | /***************************************************/ 50 | } 51 | 52 | } 53 | 54 | 55 | 56 | 57 | 58 | 59 | -------------------------------------------------------------------------------- /Robot_Adapter/Convert/ToRobot/Geometry/Point.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.Geometry; 24 | using RobotOM; 25 | 26 | namespace BH.Adapter.Robot 27 | { 28 | public static partial class Convert 29 | { 30 | /***************************************************/ 31 | /**** Public Methods ****/ 32 | /***************************************************/ 33 | 34 | public static RobotGeoPoint3D ToRobot(RobotApplication robotapp, Point point) 35 | { 36 | RobotGeoPoint3D robotPoint = robotapp.CmpntFactory.Create(IRobotComponentType.I_CT_GEO_POINT_3D); 37 | robotPoint.Set(point.X, point.Y, point.Z); 38 | return robotPoint; 39 | } 40 | 41 | /***************************************************/ 42 | } 43 | 44 | } 45 | 46 | 47 | 48 | 49 | 50 | 51 | -------------------------------------------------------------------------------- /Robot_Adapter/Convert/ToRobot/Geometry/Polyline.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.Geometry; 24 | using BH.oM.Geometry; 25 | using RobotOM; 26 | using System; 27 | using System.Collections.Generic; 28 | 29 | namespace BH.Adapter.Robot 30 | { 31 | public static partial class Convert 32 | { 33 | /***************************************************/ 34 | /**** Public Methods ****/ 35 | /***************************************************/ 36 | 37 | public static RobotPointsArray ToRobot(Polyline segments) 38 | { 39 | RobotPointsArray contour = new RobotPointsArray(); 40 | List pts = segments.ControlPoints; 41 | contour.SetSize(pts.Count); 42 | for (int i = 1; i <= pts.Count; i++) 43 | { 44 | contour.Set(i, pts[i - 1].X, pts[i - 1].Y, pts[i - 1].Z); 45 | } 46 | return contour; 47 | } 48 | 49 | /***************************************************/ 50 | } 51 | 52 | } 53 | 54 | 55 | 56 | 57 | 58 | 59 | -------------------------------------------------------------------------------- /Robot_Adapter/Convert/ToRobot/Groups and Lists/DesignGroup.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.Design; 24 | using RobotOM; 25 | using System.Collections.Generic; 26 | 27 | namespace BH.Adapter.Robot 28 | { 29 | public static partial class Convert 30 | { 31 | /***************************************************/ 32 | /**** Public Methods ****/ 33 | /***************************************************/ 34 | 35 | public static IList ToRobot(RobotApplication robot, List bhomdesignGroups) 36 | { 37 | List robotSteelDesignGroups = new List(); 38 | foreach (DesignGroup bhomdesignGroup in bhomdesignGroups) 39 | { 40 | RDimServer RDServer = robot.Kernel.GetExtension("RDimServer"); 41 | RDServer.Mode = RobotOM.IRDimServerMode.I_DSM_STEEL; 42 | RDimStream RDStream = RDServer.Connection.GetStream(); 43 | RDimGroups RDGroups = RDServer.GroupsService; 44 | RDimGrpProfs RDGroupProfs = RDServer.Connection.GetGrpProfs(); 45 | RDimGroup designGroup = RDGroups.New(0, bhomdesignGroup.Number); 46 | designGroup.Name = bhomdesignGroup.Name; 47 | designGroup.Material = bhomdesignGroup.MaterialName; 48 | RDStream.Clear(); 49 | RDStream.WriteText(Convert.FromSelectionList(bhomdesignGroup.MemberIds)); 50 | designGroup.SetMembList(RDStream); 51 | designGroup.SetProfs(RDGroupProfs); 52 | RDGroups.Save(designGroup); 53 | robotSteelDesignGroups.Add(designGroup); 54 | } 55 | return robotSteelDesignGroups; 56 | } 57 | 58 | /***************************************************/ 59 | 60 | } 61 | 62 | } 63 | 64 | 65 | 66 | 67 | 68 | 69 | -------------------------------------------------------------------------------- /Robot_Adapter/Convert/ToRobot/Groups and Lists/Lists.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 | 26 | namespace BH.Adapter.Robot 27 | { 28 | public static partial class Convert 29 | { 30 | /***************************************************/ 31 | /**** Public Methods ****/ 32 | /***************************************************/ 33 | 34 | public static string FromSelectionList(List numbers) 35 | { 36 | string selection = ""; 37 | for (int i = 0; i < numbers.Count; i++) 38 | { 39 | selection += numbers[i] + " "; 40 | } 41 | return selection.Trim(); 42 | } 43 | 44 | /***************************************************/ 45 | 46 | public static string FromSelectionList(List ids) 47 | { 48 | string selection = ""; 49 | for (int i = 0; i < ids.Count; i++) 50 | { 51 | selection += ids[i] + " "; 52 | } 53 | return selection.Trim(); 54 | } 55 | 56 | /***************************************************/ 57 | } 58 | } 59 | 60 | 61 | 62 | 63 | 64 | 65 | -------------------------------------------------------------------------------- /Robot_Adapter/Convert/ToRobot/Loads/AreaUniformTemperatureLoad.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.Geometry; 24 | using BH.oM.Structure.Loads; 25 | using RobotOM; 26 | 27 | namespace BH.Adapter.Robot 28 | { 29 | public static partial class Convert 30 | { 31 | /***************************************************/ 32 | /**** Public Methods ****/ 33 | /***************************************************/ 34 | 35 | public static void ToRobot(this AreaUniformTemperatureLoad load, RobotSimpleCase sCase, RobotGroupServer rGroupServer) 36 | { 37 | if (load.TemperatureChange == 0) 38 | { 39 | Engine.Base.Compute.RecordWarning("Zero temperature loads are not pushed to Robot"); 40 | return; 41 | } 42 | IRobotLoadRecordThermalIn3Points loadRecord = sCase.Records.Create(IRobotLoadRecordType.I_LRT_THERMAL_IN_3_POINTS) as IRobotLoadRecordThermalIn3Points; 43 | loadRecord.Objects.FromText(load.CreateIdListOrGroupName(rGroupServer)); 44 | loadRecord.SetValue((short)IRobotThermalIn3PointsRecordValues.I_3PRV_TX1, load.TemperatureChange); 45 | 46 | } 47 | 48 | /***************************************************/ 49 | } 50 | } 51 | 52 | 53 | 54 | 55 | 56 | 57 | -------------------------------------------------------------------------------- /Robot_Adapter/Convert/ToRobot/Loads/AreaUniformlyDistributedLoad.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.Geometry; 24 | using BH.oM.Structure.Loads; 25 | using RobotOM; 26 | 27 | namespace BH.Adapter.Robot 28 | { 29 | public static partial class Convert 30 | { 31 | /***************************************************/ 32 | /**** Public Methods ****/ 33 | /***************************************************/ 34 | 35 | public static void ToRobot(this AreaUniformlyDistributedLoad load, RobotSimpleCase sCase, RobotGroupServer rGroupServer) 36 | { 37 | //Replace null vector with empty vector 38 | load.Pressure = load.Pressure ?? new oM.Geometry.Vector(); 39 | 40 | if (load.Pressure.Length() == 0) 41 | { 42 | Engine.Base.Compute.RecordWarning("Zero pressures are not pushed to Robot"); 43 | return; 44 | } 45 | IRobotLoadRecord loadRecord = sCase.Records.Create(IRobotLoadRecordType.I_LRT_UNIFORM); 46 | loadRecord.Objects.FromText(load.CreateIdListOrGroupName(rGroupServer)); 47 | loadRecord.SetValue((short)IRobotUniformRecordValues.I_URV_PX, load.Pressure.X); 48 | loadRecord.SetValue((short)IRobotUniformRecordValues.I_URV_PY, load.Pressure.Y); 49 | loadRecord.SetValue((short)IRobotUniformRecordValues.I_URV_PZ, load.Pressure.Z); 50 | 51 | if (load.Axis == LoadAxis.Local) 52 | loadRecord.SetValue((short)IRobotUniformRecordValues.I_URV_LOCAL_SYSTEM, 1); 53 | 54 | if(load.Projected) 55 | loadRecord.SetValue((short)IRobotUniformRecordValues.I_URV_PROJECTED, 1); 56 | } 57 | 58 | /***************************************************/ 59 | } 60 | } 61 | 62 | 63 | 64 | 65 | 66 | 67 | -------------------------------------------------------------------------------- /Robot_Adapter/Convert/ToRobot/Loads/BarUniformTemperatureLoad.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.Loads; 24 | using RobotOM; 25 | 26 | namespace BH.Adapter.Robot 27 | { 28 | public static partial class Convert 29 | { 30 | /***************************************************/ 31 | /**** Public Methods ****/ 32 | /***************************************************/ 33 | 34 | public static void ToRobot(this BarUniformTemperatureLoad load, RobotSimpleCase sCase, RobotGroupServer rGroupServer) 35 | { 36 | if (load.TemperatureChange == 0) 37 | { 38 | Engine.Base.Compute.RecordWarning("Zero thermal loads are not pushed to Robot"); 39 | return; 40 | } 41 | IRobotLoadRecord loadRecord = sCase.Records.Create(IRobotLoadRecordType.I_LRT_BAR_THERMAL); 42 | loadRecord.Objects.FromText(load.CreateIdListOrGroupName(rGroupServer)); 43 | loadRecord.SetValue((short)IRobotBarThermalRecordValues.I_BTRV_TX, load.TemperatureChange); 44 | 45 | } 46 | 47 | /***************************************************/ 48 | } 49 | } 50 | 51 | 52 | 53 | 54 | 55 | 56 | -------------------------------------------------------------------------------- /Robot_Adapter/Convert/ToRobot/Loads/ILoad.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.Loads; 24 | using RobotOM; 25 | 26 | namespace BH.Adapter.Robot 27 | { 28 | public static partial class Convert 29 | { 30 | /***************************************************/ 31 | /**** Public Methods ****/ 32 | /***************************************************/ 33 | 34 | public static void ToRobot(ILoad load, RobotSimpleCase sCase, RobotGroupServer rGroupServer) 35 | { 36 | if(load != null) 37 | BH.Engine.Base.Compute.RecordError("Load of type '" + load.GetType() + "' not supported"); 38 | } 39 | 40 | /***************************************************/ 41 | } 42 | } 43 | 44 | 45 | 46 | 47 | 48 | 49 | -------------------------------------------------------------------------------- /Robot_Adapter/Convert/ToRobot/Loads/LoadcaseNature.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.Loads; 24 | using RobotOM; 25 | 26 | namespace BH.Adapter.Robot 27 | { 28 | public static partial class Convert 29 | { 30 | /***************************************************/ 31 | /**** Public Methods ****/ 32 | /***************************************************/ 33 | 34 | public static IRobotCaseNature ToRobotLoadcaseNature(Loadcase lCase, out int subNature) 35 | { 36 | subNature = -1; 37 | switch (lCase.Nature) 38 | { 39 | case LoadNature.Dead: 40 | case LoadNature.SuperDead: 41 | subNature = 1; 42 | return IRobotCaseNature.I_CN_PERMANENT; 43 | case LoadNature.Live: 44 | subNature = 4; 45 | return IRobotCaseNature.I_CN_EXPLOATATION; 46 | case LoadNature.Accidental: 47 | subNature = 15; 48 | return IRobotCaseNature.I_CN_ACCIDENTAL; 49 | case LoadNature.Snow: 50 | subNature = 10; 51 | return IRobotCaseNature.I_CN_SNOW; 52 | case LoadNature.Wind: 53 | subNature = 13; 54 | return IRobotCaseNature.I_CN_WIND; 55 | case LoadNature.Temperature: 56 | subNature = 14; 57 | return IRobotCaseNature.I_CN_TEMPERATURE; 58 | case LoadNature.Seismic: 59 | return IRobotCaseNature.I_CN_SEISMIC; 60 | default: 61 | return IRobotCaseNature.I_CN_PERMANENT; 62 | } 63 | } 64 | 65 | /***************************************************/ 66 | } 67 | } 68 | 69 | 70 | 71 | 72 | 73 | 74 | -------------------------------------------------------------------------------- /Robot_Adapter/Convert/ToRobot/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 RobotOM; 24 | using BH.oM.Structure.Offsets; 25 | 26 | namespace BH.Adapter.Robot 27 | { 28 | public static partial class Convert 29 | { 30 | /***************************************************/ 31 | /**** Public Methods ****/ 32 | /***************************************************/ 33 | 34 | public static void ToRobot(IRobotBarOffsetData offsetData, Offset offset) 35 | { 36 | offsetData.Start.UX = offset.Start.X; 37 | offsetData.Start.UY = offset.Start.Y; 38 | offsetData.Start.UZ = offset.Start.Z; 39 | offsetData.End.UX = offset.End.X; 40 | offsetData.End.UY = offset.End.Y; 41 | offsetData.End.UZ = offset.End.Z; 42 | } 43 | 44 | /***************************************************/ 45 | } 46 | } 47 | 48 | 49 | 50 | 51 | 52 | 53 | -------------------------------------------------------------------------------- /Robot_Adapter/Properties/AssemblyInfo.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.Reflection; 24 | using System.Runtime.InteropServices; 25 | 26 | // General Information about an assembly is controlled through the following 27 | // set of attributes. Change these attribute values to modify the information 28 | // associated with an assembly. 29 | [assembly: AssemblyTitle("Robot_Adapter")] 30 | [assembly: AssemblyDescription("https://github.com/BHoM/Robot_Toolkit")] 31 | [assembly: AssemblyConfiguration("")] 32 | [assembly: AssemblyCompany("")] 33 | [assembly: AssemblyProduct("Robot_Adapter")] 34 | [assembly: AssemblyCopyright("Copyright © https://github.com/BHoM")] 35 | [assembly: AssemblyTrademark("")] 36 | [assembly: AssemblyCulture("")] 37 | 38 | // Setting ComVisible to false makes the types in this assembly not visible 39 | // to COM components. If you need to access a type in this assembly from 40 | // COM, set the ComVisible attribute to true on that type. 41 | [assembly: ComVisible(false)] 42 | 43 | // The following GUID is for the ID of the typelib if this project is exposed to COM 44 | [assembly: Guid("e0d6b6d6-2cf3-40ce-bc2d-50e29b30657a")] 45 | 46 | // Version information for an assembly consists of the following four values: 47 | // 48 | // Major Version 49 | // Minor Version 50 | // Build Number 51 | // Revision 52 | // 53 | // You can specify all the values or you can default the Build and Revision Numbers 54 | // by using the '*' as shown below: 55 | // [assembly: AssemblyVersion("1.0.*")] 56 | [assembly: AssemblyVersion("8.0.0.0")] 57 | [assembly: AssemblyFileVersion("8.2.0.0")] 58 | 59 | 60 | 61 | 62 | 63 | 64 | -------------------------------------------------------------------------------- /Robot_Adapter/XXLegacy/Base/Enums.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 | //namespace Robot_Adapter.Base 24 | //{ 25 | // /// 26 | // /// Robot access types 27 | // /// 28 | // public enum RobotAccessType 29 | // { 30 | // /// Live link to Robot 31 | // Live = 0, 32 | // /// Use a Robot file 33 | // FromFile, 34 | 35 | // } 36 | //} 37 | 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /Robot_Adapter/XXLegacy/Base/View.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; 24 | using System.Collections.Generic; 25 | using System.Linq; 26 | using System.Text; 27 | using System.Threading.Tasks; 28 | using RobotOM; 29 | using BHoM.Structure; 30 | 31 | namespace RobotToolkit 32 | { 33 | public class View 34 | { 35 | public static void RefreshView(RobotApplication robot) 36 | { 37 | robot.Project.ViewMngr.Refresh(); 38 | } 39 | } 40 | } 41 | 42 | 43 | 44 | 45 | 46 | 47 | -------------------------------------------------------------------------------- /Robot_Adapter/XXLegacy/Elements/LevelIO.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.Base; 24 | //using BH.oM.Structure.Elements; 25 | //using RobotOM; 26 | //using System; 27 | //using System.Collections.Generic; 28 | //using System.Linq; 29 | //using System.Text; 30 | //using System.Threading.Tasks; 31 | 32 | //namespace Robot_Adapter.Structural.Elements 33 | //{ 34 | // public class LevelIO 35 | // { 36 | // public static bool SetLevels(RobotApplication Robot, List stories, out List ids) 37 | // { 38 | // ids = new List(); 39 | // if (stories.Count > 0) 40 | // { 41 | // stories.Sort(delegate (Storey s1, Storey s2) 42 | // { 43 | // return s1.Elevation.CompareTo(s2.Elevation); 44 | // }); 45 | 46 | // double height = stories[1].Elevation - stories[0].Elevation; 47 | 48 | // for (int i = 0; i < stories.Count; i++) 49 | // { 50 | // Robot.Project.Structure.Storeys.Create2(stories[i].Name, stories[i].Elevation); 51 | // ids.Add(stories[i].Name); 52 | // } 53 | // } 54 | // return true; 55 | // } 56 | 57 | // public static List GetLevels(RobotApplication Robot, out List stories) 58 | // { 59 | // List outIds = new List(); 60 | // stories = new List(); 61 | 62 | // RobotStoreyMngr sm = Robot.Project.Structure.Storeys; 63 | // for (int i = 1; i <= sm.Count; i++) 64 | // { 65 | // RobotStorey s = sm.Get(i); 66 | // stories.Add(new Storey(s.Name, s.Level, s.Height)); 67 | // outIds.Add(s.Name); 68 | // } 69 | // return outIds; 70 | // } 71 | // } 72 | //} 73 | 74 | 75 | 76 | 77 | 78 | 79 | -------------------------------------------------------------------------------- /Robot_Adapter/XXLegacy/Interface/CommandAdapter.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; 24 | using System.Collections.Generic; 25 | using System.Linq; 26 | using System.Text; 27 | using System.Threading.Tasks; 28 | using BHoM.Global; 29 | using BHoM.Structural; 30 | using RobotOM; 31 | using BHoME = BHoM.Structural.Elements; 32 | using BHoMP = BHoM.Structural.Properties; 33 | using BHoML = BHoM.Structural.Loads; 34 | using BHoM.Structural.Interface; 35 | using BHoM.Base; 36 | namespace Robot_Adapter.Structural.Interface 37 | { 38 | public partial class RobotAdapter : BHoM.Structural.Interface.ICommandAdapter 39 | { 40 | public bool Analyse(List cases = null) 41 | { 42 | Robot.UserControl = true; 43 | Robot.Interactive = 1; 44 | Robot.Project.CalcEngine.AnalysisParams.IgnoreWarnings = true; 45 | Robot.Project.CalcEngine.AnalysisParams.AutoVerification = IRobotStructureAutoVerificationType.I_SAVT_NONE; 46 | Robot.Project.CalcEngine.Calculate(); 47 | Robot.Project.CalcEngine.AutoFreezeResults = false; 48 | return true; 49 | } 50 | 51 | public bool ClearResults() 52 | { 53 | throw new NotImplementedException(); 54 | } 55 | 56 | public bool Close() 57 | { 58 | throw new NotImplementedException(); 59 | } 60 | 61 | public bool Save(string fileName = null) 62 | { 63 | throw new NotImplementedException(); 64 | } 65 | } 66 | } 67 | 68 | 69 | 70 | 71 | 72 | 73 | -------------------------------------------------------------------------------- /Robot_Adapter/XXLegacy/Results/Global.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; 24 | //using System.Collections.Generic; 25 | //using System.Linq; 26 | //using System.Text; 27 | //using System.Threading.Tasks; 28 | //using RobotOM; 29 | 30 | //namespace Robot_Adapter.Results 31 | //{ 32 | // class Global 33 | // { 34 | // public void GetGlobalResults( 35 | // BH.oM.Structure.Loads.Loadcase loadcase, 36 | // out BH.oM.Structure.Results.GlobalResult globalResult, 37 | // string FilePath = "LiveLink") 38 | // { 39 | // RobotApplication robot = null; 40 | // if (FilePath == "LiveLink") robot = new RobotApplication(); 41 | 42 | // globalResult = new BH.oM.Structure.Results.GlobalResult(loadcase); 43 | // RobotResultServer robotResult = robot.Project.Structure.Results; 44 | // RobotMassSumServer robotMass = robotResult.Advanced.MassSum; 45 | // RobotStructureValues robotValues = robotResult.Total; 46 | // //RobotReactionData robotReactions = robotResult.Nodes.Reactions.Sum(loadcase.Number); 47 | 48 | // // globalResult.SetReactions(robotReactions.FX, robotReactions.FY, robotReactions.FZ, robotReactions.MX, robotReactions.MY, robotReactions.MZ); 49 | // //globalResult.SetSumOfMass(robotValues.GetMass(loadcase.Number)); 50 | // // globalResult.SetBaseShear(robotReactions.FX * 9.81 / globalResult.SumOfMass, robotReactions.FY * 9.81 / globalResult.SumOfMass); 51 | // } 52 | // } 53 | //} 54 | 55 | 56 | 57 | 58 | 59 | 60 | -------------------------------------------------------------------------------- /Robot_Adapter/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | -------------------------------------------------------------------------------- /Robot_Engine/Create/DatabaseSettings.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; 24 | using BH.oM.Adapters.Robot; 25 | 26 | namespace BH.Engine.Adapters.Robot 27 | { 28 | public static partial class Create 29 | { 30 | /***************************************************/ 31 | /**** Public Constructors ****/ 32 | /***************************************************/ 33 | 34 | public static DatabaseSettings DatabaseSettings(MaterialDB materialDB = MaterialDB.British, 35 | SectionDB sectionDB = SectionDB.UKST) 36 | { 37 | DatabaseSettings databaseSettings = new DatabaseSettings(); 38 | databaseSettings.MaterialDatabase = materialDB; 39 | databaseSettings.SectionDatabase = sectionDB; 40 | 41 | return databaseSettings; 42 | } 43 | 44 | /***************************************************/ 45 | 46 | public static DatabaseSettings DatabaseSettings(string materialDB = "British", 47 | string sectionDB = "UKST") 48 | { 49 | DatabaseSettings databaseSettings = new DatabaseSettings(); 50 | 51 | MaterialDB mat_enum = 0; 52 | if (Enum.TryParse(materialDB, true, out mat_enum)) 53 | databaseSettings.MaterialDatabase = (MaterialDB)mat_enum; 54 | 55 | SectionDB sec_enum = 0; 56 | if (Enum.TryParse(sectionDB, true, out sec_enum)) 57 | databaseSettings.SectionDatabase = (SectionDB)sec_enum; 58 | 59 | return databaseSettings; 60 | } 61 | 62 | /***************************************************/ 63 | 64 | } 65 | } 66 | 67 | 68 | 69 | 70 | 71 | 72 | -------------------------------------------------------------------------------- /Robot_Engine/Create/DesignGroup.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.Adapters.Robot; 25 | 26 | namespace BH.Engine.Adapters.Robot 27 | { 28 | public static partial class Create 29 | { 30 | /***************************************************/ 31 | /**** Public Constructors ****/ 32 | /***************************************************/ 33 | 34 | public static DesignGroup DesignGroup(int number = 0, string materialName = "", List elementIds = null) 35 | { 36 | DesignGroup designGroup = new DesignGroup(); 37 | designGroup.Number = number; 38 | designGroup.MaterialName = materialName; 39 | if (elementIds != null) 40 | designGroup.MemberIds = elementIds; 41 | 42 | return designGroup; 43 | } 44 | 45 | /***************************************************/ 46 | } 47 | } 48 | 49 | 50 | 51 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /Robot_Engine/Create/FramingElementDesignProperties.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.Adapters.Robot; 24 | 25 | namespace BH.Engine.Adapters.Robot 26 | { 27 | public static partial class Create 28 | { 29 | /***************************************************/ 30 | /**** Public Constructors ****/ 31 | /***************************************************/ 32 | 33 | public static FramingElementDesignProperties FramingElementDesignProperties(string name) 34 | { 35 | FramingElementDesignProperties framingElementDesignProperties = new FramingElementDesignProperties(); 36 | framingElementDesignProperties.Name = name; 37 | 38 | return framingElementDesignProperties; 39 | } 40 | 41 | /***************************************************/ 42 | 43 | public static FramingElementDesignProperties FramingElementDesignProperties(string name, 44 | double eulerBucklingLengthCoeffY = 1, 45 | double eulerBucklingLengthCoeffZ = 1) 46 | { 47 | FramingElementDesignProperties framEleDesignProps = new FramingElementDesignProperties(); 48 | framEleDesignProps.Name = name; 49 | framEleDesignProps.EulerBucklingLengthCoefficientY = eulerBucklingLengthCoeffY; 50 | framEleDesignProps.EulerBucklingLengthCoefficientZ = eulerBucklingLengthCoeffZ; 51 | 52 | return framEleDesignProps; 53 | } 54 | 55 | /***************************************************/ 56 | } 57 | } 58 | 59 | 60 | 61 | 62 | 63 | 64 | -------------------------------------------------------------------------------- /Robot_Engine/Properties/AssemblyInfo.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.Reflection; 24 | using System.Runtime.CompilerServices; 25 | using System.Runtime.InteropServices; 26 | 27 | // General Information about an assembly is controlled through the following 28 | // set of attributes. Change these attribute values to modify the information 29 | // associated with an assembly. 30 | [assembly: AssemblyTitle("Robot_Engine")] 31 | [assembly: AssemblyDescription("https://github.com/BHoM/Robot_Toolkit")] 32 | [assembly: AssemblyConfiguration("")] 33 | [assembly: AssemblyCompany("")] 34 | [assembly: AssemblyProduct("Robot_Engine")] 35 | [assembly: AssemblyCopyright("Copyright © https://github.com/BHoM")] 36 | [assembly: AssemblyTrademark("")] 37 | [assembly: AssemblyCulture("")] 38 | 39 | // Setting ComVisible to false makes the types in this assembly not visible 40 | // to COM components. If you need to access a type in this assembly from 41 | // COM, set the ComVisible attribute to true on that type. 42 | [assembly: ComVisible(false)] 43 | 44 | // The following GUID is for the ID of the typelib if this project is exposed to COM 45 | [assembly: Guid("45d542cd-79b5-485a-ba39-0163230431f0")] 46 | 47 | // Version information for an assembly consists of the following four values: 48 | // 49 | // Major Version 50 | // Minor Version 51 | // Build Number 52 | // Revision 53 | // 54 | // You can specify all the values or you can default the Build and Revision Numbers 55 | // by using the '*' as shown below: 56 | // [assembly: AssemblyVersion("1.0.*")] 57 | [assembly: AssemblyVersion("8.0.0.0")] 58 | [assembly: AssemblyFileVersion("8.2.0.0")] 59 | 60 | 61 | 62 | 63 | 64 | 65 | -------------------------------------------------------------------------------- /Robot_Engine/Query/RobotGravityConstant.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; 24 | using System.Collections.Generic; 25 | using System.Linq; 26 | using System.Text; 27 | using System.Threading.Tasks; 28 | 29 | namespace BH.Engine.Adapters.Robot 30 | { 31 | public static partial class Query 32 | { 33 | /***************************************************/ 34 | /**** Public Constructors ****/ 35 | /***************************************************/ 36 | 37 | public const double RobotGravityConstant = 77010.0 / 7850.0; //Robot standards steel density in [N/m3] / BHoM standard steel density in [kg/m3] 38 | 39 | /***************************************************/ 40 | } 41 | } 42 | 43 | 44 | 45 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /Robot_Engine/Query/ToDictionaryDistinctCheck.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; 24 | using System.Collections.Generic; 25 | using System.Linq; 26 | using System.Text; 27 | using System.Threading.Tasks; 28 | using BH.oM.Base.Attributes; 29 | 30 | namespace BH.Engine.Adapters.Robot 31 | { 32 | public static partial class Query 33 | { 34 | /***************************************************/ 35 | /**** Public Methods ****/ 36 | /***************************************************/ 37 | 38 | public static Dictionary ToDictionaryDistinctCheck(this IEnumerable list, Func selector) 39 | { 40 | var group = list.Where(x => x != null && selector(x) != null).GroupBy(selector); 41 | 42 | foreach (var item in group.Where(x => x.Count() > 1)) 43 | { 44 | Engine.Base.Compute.RecordWarning("Duplicate label name found for the " + typeof(T).ToString() + " with the label name " + item.Key + ". First of the extracted values will be used"); 45 | } 46 | 47 | return group.ToDictionary(x => x.Key, y => y.First()); 48 | } 49 | 50 | /***************************************************/ 51 | } 52 | } 53 | 54 | 55 | 56 | 57 | 58 | 59 | -------------------------------------------------------------------------------- /Robot_Engine/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | -------------------------------------------------------------------------------- /Robot_Toolkit.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 15 4 | VisualStudioVersion = 15.0.28307.572 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Robot_Adapter", "Robot_Adapter\Robot_Adapter.csproj", "{A4FE6182-A985-44E0-A5BF-3E54C6EA30BF}" 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_oM", "Robot_oM\Robot_oM.csproj", "{0DD05698-6A33-4092-BFAD-FF702685FEAF}" 11 | EndProject 12 | Global 13 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 14 | Debug|Any CPU = Debug|Any CPU 15 | Release|Any CPU = Release|Any CPU 16 | EndGlobalSection 17 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 18 | {A4FE6182-A985-44E0-A5BF-3E54C6EA30BF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 19 | {A4FE6182-A985-44E0-A5BF-3E54C6EA30BF}.Debug|Any CPU.Build.0 = Debug|Any CPU 20 | {A4FE6182-A985-44E0-A5BF-3E54C6EA30BF}.Release|Any CPU.ActiveCfg = Release|Any CPU 21 | {A4FE6182-A985-44E0-A5BF-3E54C6EA30BF}.Release|Any CPU.Build.0 = Release|Any CPU 22 | {45D542CD-79B5-485A-BA39-0163230431F0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 23 | {45D542CD-79B5-485A-BA39-0163230431F0}.Debug|Any CPU.Build.0 = Debug|Any CPU 24 | {45D542CD-79B5-485A-BA39-0163230431F0}.Release|Any CPU.ActiveCfg = Release|Any CPU 25 | {45D542CD-79B5-485A-BA39-0163230431F0}.Release|Any CPU.Build.0 = Release|Any CPU 26 | {0DD05698-6A33-4092-BFAD-FF702685FEAF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 27 | {0DD05698-6A33-4092-BFAD-FF702685FEAF}.Debug|Any CPU.Build.0 = Debug|Any CPU 28 | {0DD05698-6A33-4092-BFAD-FF702685FEAF}.Release|Any CPU.ActiveCfg = Release|Any CPU 29 | {0DD05698-6A33-4092-BFAD-FF702685FEAF}.Release|Any CPU.Build.0 = Release|Any CPU 30 | EndGlobalSection 31 | GlobalSection(SolutionProperties) = preSolution 32 | HideSolutionNode = FALSE 33 | EndGlobalSection 34 | GlobalSection(ExtensibilityGlobals) = postSolution 35 | SolutionGuid = {C9AFD2E7-967F-4227-979A-9C4BF57A86B4} 36 | EndGlobalSection 37 | EndGlobal 38 | -------------------------------------------------------------------------------- /Robot_oM/Enums/DesignCode_Steel.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 | namespace BH.oM.Adapters.Robot 24 | { 25 | /***************************************************/ 26 | /**** Public Enums ****/ 27 | /***************************************************/ 28 | 29 | public enum DesignCode_Steel 30 | { 31 | Default = 0, 32 | BS5950, 33 | BS5950_2000, 34 | BS_EN_1993_1_2005_NA_2008_A1_2014, 35 | ANSI_AISC_360_10 36 | } 37 | 38 | /***************************************************/ 39 | 40 | } 41 | 42 | 43 | 44 | 45 | 46 | 47 | -------------------------------------------------------------------------------- /Robot_oM/Enums/MaterialDB.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 | namespace BH.oM.Adapters.Robot 24 | { 25 | /***************************************************/ 26 | /**** Public Enums ****/ 27 | /***************************************************/ 28 | 29 | public enum MaterialDB 30 | { 31 | American, 32 | British, 33 | Eurocode 34 | } 35 | 36 | /***************************************************/ 37 | 38 | } 39 | 40 | 41 | 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /Robot_oM/Enums/SectionDB.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 | namespace BH.oM.Adapters.Robot 24 | { 25 | /***************************************************/ 26 | /**** Public Enums ****/ 27 | /***************************************************/ 28 | 29 | public enum SectionDB 30 | { 31 | UKST, 32 | AISC 33 | } 34 | 35 | /***************************************************/ 36 | } 37 | 38 | 39 | 40 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /Robot_oM/Fragments/LoadCaseLabel.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; 24 | using System.Collections.Generic; 25 | using System.Linq; 26 | using System.Text; 27 | using System.Threading.Tasks; 28 | using BH.oM.Base; 29 | 30 | namespace BH.oM.Adapters.Robot 31 | { 32 | public class LoadCaseLabel : IFragment 33 | { 34 | public virtual string Label { get; set; } = ""; 35 | } 36 | } 37 | 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /Robot_oM/Fragments/PanelFiniteElementIds.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; 24 | using System.Collections.Generic; 25 | using System.Linq; 26 | using System.Text; 27 | using System.Threading.Tasks; 28 | using BH.oM.Base; 29 | 30 | 31 | namespace BH.oM.Adapters.Robot 32 | { 33 | public class PanelFiniteElementIds : IFragment 34 | { 35 | public virtual string FiniteElementIds { get; set; } = ""; 36 | 37 | public virtual string NodeIds { get; set; } = ""; 38 | } 39 | } 40 | 41 | 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /Robot_oM/Fragments/RobotId.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; 24 | using System.Collections.Generic; 25 | using System.Linq; 26 | using System.Text; 27 | using System.Threading.Tasks; 28 | using BH.oM.Base; 29 | using System.ComponentModel; 30 | 31 | namespace BH.oM.Adapters.Robot 32 | { 33 | [Description("Fragment storing identifier information of the object in Robot.")] 34 | public class RobotId : IAdapterId 35 | { 36 | [Description("The identifier of the obejct in robot. Will be an integer for element types and cases and string for property types.")] 37 | public object Id { get; set; } 38 | } 39 | } 40 | 41 | 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /Robot_oM/Properties/AssemblyInfo.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.Reflection; 24 | using System.Runtime.CompilerServices; 25 | using System.Runtime.InteropServices; 26 | 27 | // General Information about an assembly is controlled through the following 28 | // set of attributes. Change these attribute values to modify the information 29 | // associated with an assembly. 30 | [assembly: AssemblyTitle("Robot_oM")] 31 | [assembly: AssemblyDescription("https://github.com/BHoM/Robot_Toolkit")] 32 | [assembly: AssemblyConfiguration("")] 33 | [assembly: AssemblyCompany("")] 34 | [assembly: AssemblyProduct("Robot_oM")] 35 | [assembly: AssemblyCopyright("Copyright © https://github.com/BHoM")] 36 | [assembly: AssemblyTrademark("")] 37 | [assembly: AssemblyCulture("")] 38 | 39 | // Setting ComVisible to false makes the types in this assembly not visible 40 | // to COM components. If you need to access a type in this assembly from 41 | // COM, set the ComVisible attribute to true on that type. 42 | [assembly: ComVisible(false)] 43 | 44 | // The following GUID is for the ID of the typelib if this project is exposed to COM 45 | [assembly: Guid("0dd05698-6a33-4092-bfad-ff702685feaf")] 46 | 47 | // Version information for an assembly consists of the following four values: 48 | // 49 | // Major Version 50 | // Minor Version 51 | // Build Number 52 | // Revision 53 | // 54 | // You can specify all the values or you can default the Build and Revision Numbers 55 | // by using the '*' as shown below: 56 | // [assembly: AssemblyVersion("1.0.*")] 57 | [assembly: AssemblyVersion("8.0.0.0")] 58 | [assembly: AssemblyFileVersion("8.2.0.0")] 59 | 60 | 61 | 62 | 63 | 64 | 65 | -------------------------------------------------------------------------------- /Robot_oM/Settings/AdvancedSettings.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.Base; 24 | 25 | namespace BH.oM.Adapters.Robot 26 | { 27 | public class AdvancedSettings : BHoMObject 28 | { 29 | /***************************************************/ 30 | /**** Public Properties ****/ 31 | /***************************************************/ 32 | 33 | public virtual bool readBarsByQuery { get; set; } = false; 34 | public virtual bool readNodesByQuery { get; set; } = false; 35 | 36 | /***************************************************/ 37 | 38 | } 39 | } 40 | 41 | 42 | 43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /Robot_oM/Settings/DatabaseSettings.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.Base; 24 | 25 | namespace BH.oM.Adapters.Robot 26 | { 27 | public class DatabaseSettings : BHoMObject 28 | { 29 | /***************************************************/ 30 | /**** Public Properties ****/ 31 | /***************************************************/ 32 | 33 | public virtual MaterialDB MaterialDatabase { get; set; } = MaterialDB.British; 34 | public virtual SectionDB SectionDatabase { get; set; } = SectionDB.UKST; 35 | public virtual DesignCode_Steel SteelDesignCode { get; set; } = DesignCode_Steel.Default; 36 | 37 | /***************************************************/ 38 | 39 | } 40 | } 41 | 42 | 43 | 44 | 45 | 46 | 47 | -------------------------------------------------------------------------------- /Robot_oM/Settings/DesignGroup.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 | 26 | namespace BH.oM.Adapters.Robot 27 | { 28 | public class DesignGroup : BHoMObject 29 | { 30 | /***************************************************/ 31 | /**** Public Properties ****/ 32 | /***************************************************/ 33 | 34 | public virtual int Number { get; set; } = 0; 35 | 36 | public virtual string MaterialName { get; set; } = ""; 37 | 38 | public virtual List MemberIds { get; set; } = new List(); 39 | 40 | /***************************************************/ 41 | } 42 | } 43 | 44 | 45 | 46 | 47 | 48 | 49 | -------------------------------------------------------------------------------- /Robot_oM/Settings/InteractiveSettings.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.Base; 24 | using System.ComponentModel; 25 | 26 | namespace BH.oM.Adapters.Robot 27 | { 28 | [Description("Settings controling if Robot should be interactive and vissible during adapter actions.")] 29 | public class InteractiveSettings : BHoMObject 30 | { 31 | [Description("If set to false, Robot can not be modified through the UI during an adapter action such as Push and Pull.")] 32 | public virtual bool IsInteractive { get; set; } = false; 33 | 34 | [Description("If set to false, Changes in Robot can not be seen before an adapter action as Push or Pull has completed.")] 35 | public virtual bool IsVisible { get; set; } = true; 36 | } 37 | } 38 | 39 | 40 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /Robot_oM/Settings/RobotConfig.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.Base; 24 | 25 | namespace BH.oM.Adapters.Robot 26 | { 27 | public class RobotConfig : BHoMObject 28 | { 29 | /***************************************************/ 30 | /**** Public Properties ****/ 31 | /***************************************************/ 32 | 33 | public virtual AdvancedSettings AdvancedSettings { get; set; } = new AdvancedSettings(); 34 | public virtual DatabaseSettings DatabaseSettings { get; set; } = new DatabaseSettings(); 35 | public virtual InteractiveSettings InteractiveSettings { get; set; } = new InteractiveSettings(); 36 | 37 | /***************************************************/ 38 | } 39 | } 40 | 41 | 42 | 43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /core.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BHoM/Robot_Toolkit/7f6acb6ed3635b92fed3ae28e54566e82e41141c/core.txt -------------------------------------------------------------------------------- /dependants.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BHoM/Robot_Toolkit/7f6acb6ed3635b92fed3ae28e54566e82e41141c/dependants.txt -------------------------------------------------------------------------------- /dependencies.txt: -------------------------------------------------------------------------------- 1 | BHoM/BHoM 2 | BHoM/BHoM_Engine 3 | BHoM/BHoM_Adapter --------------------------------------------------------------------------------