Git Product home page Git Product logo

speckledynamo's People

Contributors

alvpickmans avatar didimitrie avatar fraguada avatar pearswj avatar teocomi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

speckledynamo's Issues

Method not found: 'Void Dynamo.Graph.Nodes.NodeModel.ClearErrorsAndWarnings()'.

Hey. I'm getting this after opening new graph and adding "Speckle Receiver" to canvas in Automatic mode. Same in Manual mode.

"Warning: Whilst preparing to run, this node encountered a problem. Please talk to the creators of the node, and give them this message:

Method not found: 'Void Dynamo.Graph.Nodes.NodeModel.ClearErrorsAndWarnings()'."

Win 10, Revit 2018.2, Dynamo 1.3.2, Speckle for Dynamo 0.0.2.

revit_2018-06-22_14-22-39

Support multiple versions of Dynamo

Edit the project so that it can be built for Dynamo 1.3 and 2.X, this will most likely be done using built configurations and C# preprocessor directives rather than duplicating the entire project.

Custom User Data

Step 0:

A lot of nice (read: core) functionality in speckle is enabled (in gh for now, and if @PaulPoinet would have finished his plugin, in rhino too /snide) by adding custom user data to objects. Specifically, this allows users (clients and humans alike) to ask questions to the API on the likes of can you please give me all the objects of type polyline with an area in the range of 4 to 10 or all objects with properties.likes>100.

In the world of rhinocommon we're struggling to handle this natively, via ArchivableDictionaries which you can set on any GeometryBase object (which makes it a pain in grasshopper).

The question is whether it's feasible for dynamo too. I've deleted the issue template, but one section is actually still valid:

Proposed solution:

  • If possible, implement this as close to native as possible via an equivalent UserDictionary.
  • If not, this could be added as a last step in the process before sending data, directly on a SpeckleObject. This entails two extra separate components, ToSpeckle and FromSpeckle, and then extra legwork to create dictionaries that then can be plopped in a SpeckleObject's properties field.

Extra Context

There is a plan to automatically populate the properties field of a SpeckleObject, upon conversion, with simple common sense stuff, like length, area, volume and later on things like centroid, bounding box, etc. or platform specific stuff like layer name, colour, etc.

There is a further plan to make custom object definitions into something like templates, ie light schema definitions that can be centralised on the speckle server and thereafter magically embedded as object creation tools on the various platforms (ie, automatically create a component that allows users to populate the properties of a line or polyline so that it can be transformed into a wall in archicad or something).

Add Dynamo version check on init

Expected Behaviour

Speckle for Dynamo should only work in Dynamo 2.0 and above, see comment in #25.

Actual Behaviour

Happily installs on any version of Dynamo.

Proposed Solution (if any)

  • version check on Speckle for Dynamo extension init
  • warn user via a MessageBox or similar ?

Support Revit Elements

We could easily support Revit elements in streams that go Dynamo to Dynamo. It would mean creating new ObjectModels although they're wouldn't be supported by SpeckleCore. To do so we'd need to:

  • Create a SpeckleDynamoRevitConverter project (or extend SpeckleDynamoConverter)
  • Define the new object models (eg, grid, level, family instance...)
  • Move serialization/deserialization logic to the Functions project since Revit transactions cannot be directly started directly from the NodeModel nodes (unless I'm wrong @mjkkirschner)

Receiver is not receiving

It might happen from time to time that the receiver is not receiving data. For us to solve this bug, it's very important that we can reproduce it, so try to find a way to consistently reproduce it before reporting it.

As a workaround, you can try the following:

  • make sure dynamo is not in manual mode
  • make sure your internet connection is stable
  • force send, by clicking on the blue > button
  • disconnect and reconnect the sender input/s
  • delete the receiver and create a new one

README Update

Update the README with:

  • Image / Screenshot of Dynamo Add-In
  • Build Instructions
  • Usage Instructions

Speckle send/receive don't work in the dynamo player

Step 0:

From discourse, by Rasmus:

When using Speckle as the main input for a Dynamo script to create structural elements - I am having problems running the script through Dynamo Player - even though the script is able to run fine through Dynamo on its own.
I am thinking that the Speckle Reciever node needs to be “activated” before use or something like that. I am wondering if this is what causes my problems with running through the Dynamo Player.

Discussed this with @teocomi , and it's a combination of dynamo limitations and how speckle needs to work to get/set data.

After a coffee chat, the proposed solution will be to create a simpler, zero-touch, receiver node that should bypass dynamo player's limitations. One caveat that this receiver will output the data as a dictionary, and not split into output ports.

To be discussed, early days.

Dynamo sender fails with object that has multiple nested dictionaries

Step 0:

Expected Behaviour

To organize the user data per object I was expecting it to work like in GH where you can nest multiple dictionaries per parent like here:
ghdictionaries

Actual Behaviour

Not sure if this is expected behavior. It seems only possible to nest one dictionary per parent (first stream). List of dictionaries (second stream) is also not accepted, but this is expected. Was expecting to be able to nest multiple dictionaries (third stream)
dynamodictionaries

First sender on the canvas refreshes its streamid on file reopen

Step 0:

This a nasty issue. If you place a dynamo sender on the canvas, on reopening the file, it will refresh its stream id (which is not the intended behaviour).

The crazy part is that this happens only to the first sender node; any other subsequent sender nodes placed on the canvas are behaving as expected - no streamId refresh.

Reproduced in dynamo sandbox.

MaterialDesignThemes dll conflict

Expected Behaviour

"Speckle Receiver" and "Speckle Sender" nodes should have UI created on them when they're added.

Actual Behaviour

"Speckle Receiver" and "Speckle Sender" nodes have no UI created on them when they're added. They look like this:
screenshot from Dynamo

The following errors show up in the console, for the receiver:

ViewExtensionCommandExecutive ( UniqueId: 4ee155d2-81f5-4404-ad86-070381b020d2, Name: LibraryUI, commandTypeName: CreateNodeCommand )
Failed to apply NodeViewCustomization for Receiver
System.Windows.Markup.XamlParseException:
Could not load file or assembly 'MaterialDesignThemes.Wpf, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified.
   at System.Windows.Markup.XamlReader.RewrapException(Exception e, IXamlLineInfo lineInfo, Uri baseUri)
   at System.Windows.Markup.WpfXamlLoader.Load(XamlReader xamlReader, IXamlObjectWriterFactory writerFactory, Boolean skipJournaledProperties, Object rootObject, XamlObjectWriterSettings settings, Uri baseUri)
   at System.Windows.Markup.WpfXamlLoader.LoadBaml(XamlReader xamlReader, Boolean skipJournaledProperties, Object rootObject, XamlAccessLevel accessLevel, Uri baseUri)
   at System.Windows.Markup.XamlReader.LoadBaml(Stream stream, ParserContext parserContext, Object parent, Boolean closeStream)
   at SpeckleDynamo.UserControls.ReceiverUi.InitializeComponent()
   at SpeckleDynamo.UserControls.ReceiverUi..ctor()
   at SpeckleDynamo.ViewCustomizations.ReceiverViewCustomization.CustomizeView(Receiver model, NodeView nodeView)
   at lambda_method(Closure , NodeModel , NodeView )
   at Dynamo.Wpf.NodeViewCustomizationLibrary.TryApplyCustomization(NodeModel model, NodeView view, InternalNodeViewCustomization customization)

and for the sender:

ViewExtensionCommandExecutive ( UniqueId: 3afe1dab-9005-4717-bab3-31164de252f5, Name: LibraryUI, commandTypeName: CreateNodeCommand )
Failed to apply NodeViewCustomization for Sender
System.Windows.Markup.XamlParseException:
Could not load file or assembly 'MaterialDesignThemes.Wpf, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified.
   at System.Windows.Markup.XamlReader.RewrapException(Exception e, IXamlLineInfo lineInfo, Uri baseUri)
   at System.Windows.Markup.WpfXamlLoader.Load(XamlReader xamlReader, IXamlObjectWriterFactory writerFactory, Boolean skipJournaledProperties, Object rootObject, XamlObjectWriterSettings settings, Uri baseUri)
   at System.Windows.Markup.WpfXamlLoader.LoadBaml(XamlReader xamlReader, Boolean skipJournaledProperties, Object rootObject, XamlAccessLevel accessLevel, Uri baseUri)
   at System.Windows.Markup.XamlReader.LoadBaml(Stream stream, ParserContext parserContext, Object parent, Boolean closeStream)
   at SpeckleDynamo.UserControls.SenderUi.InitializeComponent()
   at SpeckleDynamo.UserControls.SenderUi..ctor()
   at SpeckleDynamo.SenderViewCustomization.CustomizeView(Sender model, NodeView nodeView)
   at lambda_method(Closure , NodeModel , NodeView )
   at Dynamo.Wpf.NodeViewCustomizationLibrary.TryApplyCustomization(NodeModel model, NodeView view, InternalNodeViewCustomization customization)

Reproduction Steps & System Config (win, osx, web, etc.)

Steps I took:

  • Run Windows 10 Pro
  • Install Revit 2017.2.3 (through a company installer)
  • Install Dynamo 2.0.1.5065
  • Install Speckle through the Dynamo package manager
  • Set Speckle Account
  • Add receiver or sender nodes

Also, I looked in the package directory (C:\Users\<me>\AppData\Roaming\Dynamo\Dynamo Revit\2.0\packages\Speckle for Dynamo\bin) and the file MaterialDesignThemes.Wpf.dll seems to be there:
screenshot of directory listing

Maybe I'm missing some dependency? If there's any more information I can provide, just let me know. Any help would be really appreciated 😃

Implement the SpeckleDynamoConverter

https://github.com/speckleworks/SpeckleDynamo/blob/master/SpeckleDynamoConverter/SpeckleDynamoConverter.cs

Status

Primitives

  • Numbers
  • Boolean
  • String
  • Null
  • Point
  • Vector
  • Plane

Linear

  • Line
  • Polygon
  • Rectangle
  • Polyline (Dynamo PolyCurve with all its curves straigth)

Curves

  • Circle
  • Arc (still buggy due some differences with Rhino)
  • Ellipse
  • EllipseArc (only ToSpeckle() as NurbsCurve)
  • Curve
  • PolyCurve
  • NurbsCurve
  • Helix (only ToSpeckle() as NurbsCurve)

Other Geometries

  • Mesh
  • Solids
  • Brep (SpeckleBrep needs a more defined structure)
  • Box (can be converted as Cuboid?)
  • Extrusion (same as Brep)

Without Dynamo counterpart (?)

  • Interval
  • Annotation
  • ArchivableDictionary/ Dictionary

Create installer

Since the Dynamo extension cannot be distributed as a package, a window installer would be a better solution, the installer could also include the Rhino\gh and other clients

Closed Polyline interpreted as "open" polyline

Step 0:

Expected Behaviour

How things should actually work!

closed polyline > closed polyline

Actual Behaviour

What's actually going on!
polycurveissue

Hi, I've tested for the first time SpeckleDynamo, I've sent a closed polyline from Grasshopper to Dynamo, it works but restults as an open polyline

Affected Projects

Does this issue propagate to other dependencies or dependants? If so, list them here!

Reproduction Steps & System Config (win, osx, web, etc.)

Proposed Solution (if any)

SpeckleCore throws error in Sandbox

Step 0:

Expected Behaviour

SpeckleCore should be able to use serialize and serialize JSON,

Actual Behaviour

Dynamo sandbox loads Newtonsoft.Json version 8.0.0.0 which does not have the NamingStrategy property for DefaultContractResolver, causing an error.

Problematic line:
ContractResolver = new Newtonsoft.Json.Serialization.DefaultContractResolver() { NamingStrategy = new Newtonsoft.Json.Serialization.CamelCaseNamingStrategy() }

image

Affected Projects

SpeckleDynamo

Proposed Solution (if any)

Polyline conversion is inconsistent

Step 0:

Expected Behaviour

Speckle polylines convert the same way every time

Actual Behaviour

Some PL become rectangles, some become polygons, some become polycurves, some remain SpecklePolyline

Affected Projects

SpeckleCoreGeometry

Proposed Solution (if any)

Update conversion logic

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.