speckleworks / SpeckleRevitReboot

Check a brand new Speckle at: https://github.com/specklesystems
https://speckle.systems/
25 stars 13 forks source link

Issue with units #21

Open teocomi opened 4 years ago

teocomi commented 4 years ago

From Jeroen on slack:

I encountered a similar problem when I updated to the newest version of Speckle (1.8.19.310). It is about the same workflow (Revit > Speckle > Revit) and there is again something wrong with the column offsets (So that's why I post it in this thread). I've made a new stream from Revit elements: https://hestia.speckle.works/#/view/qwU62nYbC When I import this stream in Revit the top offset of the column is not 10 000 mm anymore, but 32,8 mm. Might be a metric/imperial conversion bug? Please see the attached screenshot, which hopefully makes it a bit more clear. On the right the original structure, on the left the received one. If you need any more info please let me know!

image

JdB-NL commented 4 years ago

Thank you @teocomi for taking a look. I didn't save the Revit file so I can't send it to you.

However, I did found what caused the problem. I checked the initial stream (https://hestia.speckle.works/api/streams/qwU62nYbC/) and saw that in the baseProperties the unitsDictionary is null. In a new stream I've just made (https://hestia.speckle.works/api/streams/FhdjC7R67/) the unitsDictionary contains a dictionary with various units. My guess would be the key unitsDictionary with value null caused this error?

Other info: I wasn't able to find out what caused the unitsDictionary to be null. It might be an odd problem on my side because a few streams I created also contained null objects (https://hestia.speckle.works/api/streams/OzLc36-sn/objects), while in Revit it appeared to be working as it should. So I uninstalled Speckle and downloaded it again. If I encounter this problem again I will save the file and try to make it possible to replicate.

teocomi commented 4 years ago

Thanks for the update @JdB-RHDHV ! It must have been the null unitsDictionary as you say, but I'm not sure what could have caused it to be null... Let us know if it happens again, for now I'll close this issue but just open it again if it reappears.

teocomi commented 4 years ago

Also, very weird that stream with null objects @didimitrie have you seen it before?

JdB-NL commented 4 years ago

I've got another stream with a bunch of null objects. It's on our own server, so I don't think I can share it with you. But I can post the raw stream here.

The Speckle Revit plugin UI was a bit laggy and I clicked multiple times on some of the buttons. Maybe that caused the null objects?

Stream info:

  "success": true,
  "message": "Delivered stream.",
  "resource": {
    "_id": "5ebc027da1b1790b98a462ac",
    "private": false,
    "canRead": [],
    "canWrite": [],
    "anonymousComments": false,
    "comments": [],
    "name": "test portal",
    "description": "This is a simple speckle stream.",
    "tags": [],
    "isComputedResult": false,
    "objects": [
      {
        "type": "Placeholder",
        "_id": "5e8dc6a2a3ba6b23e4fd8d83"
      },
      {
        "type": "Placeholder",
        "_id": "5e8dc6a2a3ba6b23e4fd8d83"
      },
      {
        "type": "Placeholder",
        "_id": "5e8dc6a2a3ba6b23e4fd8d83"
      }
    ],
    "layers": [
      {
        "name": "Default Generated Speckle Layer",
        "guid": "4218f4bb-5285-42c7-8709-e060fa85af2a",
        "orderIndex": 0,
        "startIndex": 0,
        "objectCount": 3,
        "topology": "0;0-3 ",
        "properties": {
          "color": {
            "a": 1,
            "hex": "Black"
          }
        }
      }
    ],
    "viewerLayers": [],
    "parent": null,
    "children": [
      "SU18APcVB"
    ],
    "ancestors": [],
    "deleted": false,
    "onlineEditable": false,
    "jobNumber": "",
    "owner": "5e8b2331dc718d1ab4358bb7",
    "streamId": "TD2bigZ7a",
    "createdAt": "2020-05-13T14:21:49.913Z",
    "updatedAt": "2020-05-14T04:42:09.798Z",
    "__v": 2,
    "baseProperties": {
      "units": "millimeters",
      "unitsDictionary": null
    },
    "globalMeasures": {}
  }
}

Objects info:

  "success": true,
  "resources": [
    {
      "private": false,
      "canRead": [],
      "canWrite": [],
      "anonymousComments": false,
      "comments": [],
      "name": null,
      "geometryHash": "Null.0",
      "hash": "Null.0",
      "applicationId": null,
      "properties": null,
      "deleted": false,
      "parent": null,
      "children": [],
      "ancestors": [],
      "_id": "5e8dc6a2a3ba6b23e4fd8d83",
      "type": "Null",
      "owner": "5e8dc582c9f4f9051c98caa1",
      "__v": 0,
      "createdAt": "2020-04-08T12:42:10.006Z",
      "updatedAt": "2020-04-08T12:42:10.006Z"
    },
    {
      "private": false,
      "canRead": [],
      "canWrite": [],
      "anonymousComments": false,
      "comments": [],
      "name": null,
      "geometryHash": "Null.0",
      "hash": "Null.0",
      "applicationId": null,
      "properties": null,
      "deleted": false,
      "parent": null,
      "children": [],
      "ancestors": [],
      "_id": "5e8dc6a2a3ba6b23e4fd8d83",
      "type": "Null",
      "owner": "5e8dc582c9f4f9051c98caa1",
      "__v": 0,
      "createdAt": "2020-04-08T12:42:10.006Z",
      "updatedAt": "2020-04-08T12:42:10.006Z"
    },
    {
      "private": false,
      "canRead": [],
      "canWrite": [],
      "anonymousComments": false,
      "comments": [],
      "name": null,
      "geometryHash": "Null.0",
      "hash": "Null.0",
      "applicationId": null,
      "properties": null,
      "deleted": false,
      "parent": null,
      "children": [],
      "ancestors": [],
      "_id": "5e8dc6a2a3ba6b23e4fd8d83",
      "type": "Null",
      "owner": "5e8dc582c9f4f9051c98caa1",
      "__v": 0,
      "createdAt": "2020-04-08T12:42:10.006Z",
      "updatedAt": "2020-04-08T12:42:10.006Z"
    }
  ],
  "message": "Object list returned. If querying, duplication of objects in list will not be respected."
}
teocomi commented 4 years ago

Any chance you could try sending the same stream again and see if the same happens consistently? Or is it a "once in a while" thing?

It would help us a lot if you could share a sample model where we can replicate the issue as well.

The SpeckleRevit UI is very sluggish in Revit 2019 because of the old version of CefSharp, but should be more stable in 2020 and 2021.

JdB-NL commented 4 years ago

Just now I tried to get it to occur again, but without luck.

I did some testing on the Hestia server instead of our own and I only managed to get a stream without objects (so not null objects, simply no objects at all). So not sure if this is of any help, but I'll explain it just in case.

If you check the history of this stream: https://hestia.speckle.works/#/streams/8t7C9HR5W/history You'll see the first, second and third stream have no objects at all. The fourth is the first containing objects. First: https://hestia.speckle.works/api/streams/K4dkqXNzv/objects/ Second: https://hestia.speckle.works/api/streams/y_6nvwnAX/objects/ Third: https://hestia.speckle.works/api/streams/qHAe8-z_sl/objects/

What I did:

  1. Start a new Revit 2019 project without a template, choose metric.
  2. Model a floor and 2 walls.
  3. Start Speckle Revit.
  4. Create Sender, fill in name and select the objects.
  5. Quickly click a bunch of times on the send stream button.

Now the UI worked really well, but when the null objects occurred the UI was a bit laggy. So that's why I clicked a few times back then. These multiple clicks in combination with the lag might have caused the null objects? I've attached the Revit file I used in my test.

NullObjectsTest.zip

teocomi commented 4 years ago

Thanks for the details, this will help us a lot! I'll try to reserve some time this week to investigate...

teocomi commented 4 years ago

@JdB-RHDHV So it seems the issue is, as you say, caused by the sluggish UI. That has been reported before and we assume it's caused by the old version of CEF the 2019 client is using. It might also be related to your screen resolution, what resolution are you using?

We are considering switching to a different UI framework, in the meantime can suggest to use Revit 2020 or 2021 if possible!

JdB-NL commented 4 years ago

@teocomi thank you for looking into it, again. I'm using 2 times 1920x1080 (laptop + external monitor above it). I will use Revit 2020 from now on and only use 2019 when required for a project.