Rounding Point Coordinates


I’m not sure why I’m getting the point coordinates as shown. Is there a way to round them and keep them as a point element or a way to prevent that from happening altogether ?






I think it’s the conversion in the lunchbox point to string node, and I can’t round the output string.


Why do you need it as string?


I am trying to follow this blog post to eventually link the analytical model with the analysis program. The problem is that due to rounding differences between the node coordinates and the frame start and end points, the mapping doesn’t work.


Amin I encountered this problem a few months back and it was an internal error. It was logged on Github but not sure if it was ever rectified, as I used a work round. It seems its still open so may not have been resolved yet. Might be worth posting it back on Github for the development team to pick up.

Original Post:

Github Log:


Thanks Mark for clarifying that. By the way, your blog post is fantastic and opens many possibilities for structure design automation.

For this case, I fhink I will export the points to X,Y,Z seperatly (double) then round it, then string, then join to one string then map. I hope it works.



I wouldn’t call this a bug, it’s just the way how floating point numbers(doubles) work. You could try to round the XYZs of the points to a fixed decimal to simplify them a bit. You could also compare points with “Geometry.AlmostEqualTo” to ignore the small variance in the umpth decimal.



Thanks Dimitar, you’re a life saver.


After going through it, I found that converting to a string then comparing is easier for me. The whole purpose is to get the node coordinates, then match it with the start and end of the frame coordinates, so that we can add a parameter to the frame with the start and end nodes id(s). I rounded the points, then converted them to strings, then joined them, so that matching the points together is easier, but its not working. help please




I believethe node you’re looking for is “List.FilterByBoolMask”.

Mark had a really good step by step explanation here: