{"id":19835338,"url":"https://github.com/equinor/rvmsharp","last_synced_at":"2025-05-01T17:33:37.321Z","repository":{"id":213118923,"uuid":"344860225","full_name":"equinor/rvmsharp","owner":"equinor","description":"RvmSharp is a C# parser for Aveva .RVM files","archived":false,"fork":false,"pushed_at":"2025-04-16T12:55:04.000Z","size":53647,"stargazers_count":17,"open_issues_count":15,"forks_count":9,"subscribers_count":10,"default_branch":"master","last_synced_at":"2025-04-26T12:13:29.109Z","etag":null,"topics":["e3d","pdms","rvm"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/equinor.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-03-05T15:57:07.000Z","updated_at":"2025-04-11T04:18:56.000Z","dependencies_parsed_at":"2023-12-21T10:46:10.148Z","dependency_job_id":"a50efda0-1962-4992-bf72-331d287c6d13","html_url":"https://github.com/equinor/rvmsharp","commit_stats":null,"previous_names":["equinor/rvmsharp"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/equinor%2Frvmsharp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/equinor%2Frvmsharp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/equinor%2Frvmsharp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/equinor%2Frvmsharp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/equinor","download_url":"https://codeload.github.com/equinor/rvmsharp/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251914971,"owners_count":21664457,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["e3d","pdms","rvm"],"created_at":"2024-11-12T12:07:38.852Z","updated_at":"2025-05-01T17:33:32.288Z","avatar_url":"https://github.com/equinor.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# RvmSharp\n\n[![SCM Compliance](https://scm-compliance-api.radix.equinor.com/repos/equinor/rvmsharp/badge)](https://scm-compliance-api.radix.equinor.com/repos/equinor/rvmsharp/badge)\n\n\u003chttps://www.nuget.org/packages/Equinor.RvmSharp\u003e\n\nA library and utility for reading and converting RVM files.\n\nLibrary supports .NET 8.0+ and .NET Standard 2.1\n\nThis repo also contains a pipeline for converting from Rvm to the Reveal file format. See [CadRevealComposer](#cad-reveal-composer)\n\n## RvmSharp Dependencies\n\n- [LibTessDotNet](https://github.com/speps/LibTessDotNet)\n- [System.Numerics.Vectors](https://www.nuget.org/packages/System.Numerics.Vectors/)\n\n## Usage\n\nTo read an RVM file:\n\n```csharp\nusing var stream = File.OpenRead(rvmFilename);\nRvmFile rvmFile = RvmParser.ReadRvm(stream);\nrvmFile.AttachAttributes(txtFilename);\n```\n\nTo tessellate:\n\n```csharp\nvar rvmStore = new RvmStore();\nrvmStore.RvmFiles.AddRange(rvmFiles);\nRvmConnect.Connect(rvmStore);\nRvmAlign.Align(rvmStore);\nvar leafs = rvmStore.RvmFiles.SelectMany(rvm =\u003e rvm.Model.Children.SelectMany(CollectGeometryNodes)).ToArray();\n\nprivate static IEnumerable\u003cRvmNode\u003e CollectGeometryNodes(RvmNode root)\n{\n    if (root.Children.OfType\u003cRvmPrimitive\u003e().Any())\n        yield return root;\n    foreach (var geometryNode in root.Children.OfType\u003cRvmNode\u003e().SelectMany(CollectGeometryNodes))\n        yield return geometryNode;\n}\n```\n\nRvmSharp.Exe is a sample application using RvmSharp to process and export triangulated OBJ models.\n\n```ps1\n# Run the command below to see the required arguments.\ndotnet.exe run --configuration Release --project \"RvmSharp.Exe/RvmSharp.Exe.csproj\" -- --help # Replace '--help' with your arguments.\n```\n\n## Cad Reveal Composer\n\nThe CAD Reveal Composer is a fast converter for RVM files into the Reveal formats used by\nthe [cognite/reveal](https://github.com/cognitedata/reveal) 3D Viewer.\n\nInvoke from CLI\n\n```cli\ndotnet run -c Release --project \"..\\rvmsharp\\CadRevealComposer.exe\" -i $AFolderWithRvmAndTxtFiles -o pathto/reveal/examples/public/primitives --ProjectId 1 --ModelId 1 --RevisionId 1\n```\n\n## Example Data\n\nEquinor has published the Huldra dataset, including RVM files to the public.\n\n\u003chttps://data.equinor.com/dataset/Huldra\u003e\n\nVisit this link and create a user to download a complete source dataset of an oil platform, including RVM files that can\nbe used with `rvmsharp`.\n\n## Contribution\n\nIf you find some nice optimizations or tricks, do not hesitate to create an issue discussing if it should be contributed\nto the `rvmsharp` project.\n\nWhile any contributions are appreciated please make an issue to discuss the approach before coding a major change. This\nhelps both us and you set expectations :)\n\n### Formatting\n\nWe use csharpier for formatting.\n\nYou can run it manually by running the following in your command line.\n\n```ps\ndotnet tool restore\ndotnet csharpier .\n```\n\nInstall the addon for your IDE, and enable formatting when saving files to avoid spending time on formatting!\n\n\u003e Remark:\u003cbr\u003e\n\u003e You need to run `dotnet tool restore` to install and update csharpier for the IDE addons to work as expected.\n\n## Releasing NuGet\n\nTo update the RvmSharp package on nuget check the internal docs: \u003chttps://github.com/equinor/Echo/tree/master/docs/rvmsharp-sop-nuget.md\u003e\n\n## Credits\n\nThis project is based on [rvmparser](https://github.com/cdyk/rvmparser) by @cdyk\n\nThis repository contains sample data from the Equinor ASA - Huldra Dataset \u003chttps://data.equinor.com/dataset/Huldra\u003e. A\ncopy of the Huldra dataset license can be found [here](./TestSamples/Huldra/Equinor_open_data_sharing_license_-_Huldra.pdf).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fequinor%2Frvmsharp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fequinor%2Frvmsharp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fequinor%2Frvmsharp/lists"}