Working on the assumption that I have a csv or Excel file with rows of digitised points representing walls, two on one face (to give direction) and one on the other to give thickness and a top and bottom level.
Could I use this to directly write walls in speckle form that I coudl push out to other packages. I’m guessing that this is something I would do with a python script?
I can immeditely see that I probably need to put them in or between levels, but what other attributes would I need to make a wall that would be valid to push out to a range of 3D applications Revit, ArchiCAD, Blender, Unity, Power BI etc.
So, in the first instance, we could work on getting those 3D points represented in 3D.
We don’t include any geometry libraries with specklepy, but that would be how to create the mesh fallback.
Take a look at B+G’s open-sourced example of adding balls to a model that will show the basic mechanics - it uses specklepy and trimesh
Each Speckle connector can create BIM objects from basic instructions. Walls may be a line, a profile and a height… SpeckleWall But each object also has a mesh fallback for display online and is used in applications without any idea what a wall is.
Directly creating a Revit Wall is also possible if you have the details of the Family and Type you want to describe, but let’s start with something simpler.
By that, I mean, let’s create those points and commit them to a Project Stream. We can build up to creating the wall.
I should have add my usual qualification. If you think this is a daft idea then do say
I know I could do this with Dynamo to create walls into Revit and then commit them to speckle.
The reason I was wondering about a speckle first route is that I want the first commit to be the raw digitised data. Maybe in that context the digitised rows is what I should be pushing to speckle.
If you have the source material, let’s say Excel. There might not need to be a route first to get that into Speckle and then use it from there.
Python has umpteen methods of reading tabular data. But equally, I could read that tabular data from Speckle, too.
The only reason I think it would be useful would be for the separation of roles: Person A captures the data and uploads it to Speckle, and Person B can then use the latest data to turn it into walls. Obviously Speckle would bring with it version control which emailing excel files around wouldn’t.
If there is only person A, then the CSV into speckle would for them to scratch their own itch
I’m thinking about it in a survey context, where the digital trail of the raw data is an intermediate point, but directly represents the digitisation from a pointcloud.
This needs to be cleaned up in a model context eg. round wall thickness to nearest 5 or 10mm, adjust angle to nearest two decimal places or square walls and confirm if still within the tolerance of the survey.
I’ll make some excel data now.
I’m imagining digitising a 10 storey building this way, but issuing WIP models as the building is digitised, thats where I am going, with the scope to delivery in multiple formats, or subsets of the data (say structural walls only), or to different tolerances.
I’m happy to see what you have as the artefacts at each stage, as I think I’m not 100% clear.
In principle, I like what you are saying, and any data can be stored in Speckle.
The degree to which a point cloud is convertible to 5 XYZs without wetware is where I’m at a loss.
- PC survey (can be stored in Speckle)
- Canonical wall defining points (can be stored in Speckle)
- Creation of BIM objects from canonical points per wall (using Speckle Schema)
- Representation of the same object in mesh (Using geometry library and maths)
- Send to Speckle for fame and glory
Ha, yes I am the wetware doing the initial digitisation.
I think your flow is correct.
Also I would say that your comment about person A and B, ultimately might be a digitiser and a data manager/transformer. I’m trying to make the initial digitisation as simple as possible, and then make the output of different media as controllable and flexible as possible.
With speckle as a verion controller/transformer.