BHoM / Speckle_Toolkit

GNU Lesser General Public License v3.0
10 stars 2 forks source link

Added Options for display and serialisation (faster Push); general refactoring #53

Closed alelom closed 4 years ago

alelom commented 4 years ago

NOTE: Depends on

Issues addressed by this PR

Closes #50 Closes #51 Closes https://github.com/BHoM/Speckle_Toolkit/issues/57 Closes #49 Closes #59

Test files

You need to build https://github.com/BHoM/Test_Toolkit to see all components in the Test file.

Test file located in the repo: GitHub\Speckle_Toolkit\Test Scripts\#53-TestScript\#53-TestScript.gh

Changelog

alelom commented 4 years ago

@al-fisher I can't seem to be able to add @izzylys to the reviewers, does that work for you? She seems to be among the contributors already. Maybe she misses some permissions?

al-fisher commented 4 years ago

Sorry @izzylys! Thought you were already in the BHoM Org! Just sent you invite 😄

alelom commented 4 years ago

Just for the record

In order to find a solution to our performance issue (#49), from here I branched to #58-BranchFrom#46-MultithreadingTests to test the impact of both Multitasking and Parallel processing when serialising with SpeckleSerialiser. Summarised here.

alelom commented 4 years ago

To improve performance, I tried a "partial" speckleSerialisation, which didn't help. Added an option to choose serialisation method as explained here.

alelom commented 4 years ago

@al-fisher , @PaulPoinet , @izzylys This is now ready for review.

PaulPoinet commented 4 years ago

The issue with the Pull is to do with deserialisation. In SpeckleCore we get GetObjectSubtypeBetter failing and throwing the exception:

Could not find subtype of 'SpeckleObject' with discriminator 'BH.oM.Structure.Elements.Bar

which comes from the fact that StreamGetObjectsAsync() throws exception on line 2677 when attempting

result_ = JsonConvert.DeserializeObject<ResponseObject>( responseData_, _settings.Value );

@alelom will raise an issue and possibly collaborate with @didimitrie to find out what needs to be done.