https://github.com/compas-dev/compas_speckle
Data bridge between COMPAS and Speckle
https://github.com/compas-dev/compas_speckle
Last synced: 11 months ago
JSON representation
Data bridge between COMPAS and Speckle
- Host: GitHub
- URL: https://github.com/compas-dev/compas_speckle
- Owner: compas-dev
- License: mit
- Created: 2021-10-21T11:14:27.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2021-10-21T11:38:28.000Z (over 4 years ago)
- Last Synced: 2025-01-19T10:45:23.753Z (about 1 year ago)
- Language: Python
- Homepage:
- Size: 1.52 MB
- Stars: 3
- Watchers: 6
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: .github/CODE_OF_CONDUCT.md
- Authors: AUTHORS.md
Awesome Lists containing this project
README
# COMPAS Speckle
This is repo is work-in-progress.
Please feel free to contribute!
---
Data Bridge between COMPAS and Speckle.
[... long description ...]
## Getting Started
```bash
conda create -n speckle-test compas
conda activate speckle-test
pip install specklepy
```
## Basic Example
```python
from compas.data import DataDecoder
from compas.data import DataEncoder
from specklepy.objects import Base
class SpeckleDataBridge(Base):
data: dict = {}
@classmethod
def from_compas(cls, compas_obj):
encoder = DataEncoder()
return cls(data=encoder.default(compas_obj))
def to_compas(self):
decoder = DataDecoder()
return decoder.object_hook(self.data)
if __name__ == '__main__':
from compas.datastructures import Mesh
s
from specklepy.api import operations
from specklepy.api.client import SpeckleClient
from specklepy.api.credentials import get_default_account
from specklepy.transports.server import ServerTransport
mesh = Mesh()
smesh = SpeckleDataBridge.from_compas(mesh)
client = SpeckleClient(host="speckle.xyz")
account = get_default_account()
client.authenticate(token=account.token)
stream_id = 'ed4ebf6e29'
transport = ServerTransport(client=client, stream_id=stream_id)
object_id = operations.send(base=smesh, transports=[transport])
commid_id = client.commit.create(stream_id=stream_id, object_id=object_id, message='Test commit')
```