GH and Revit questions

Just raising a few questions I have regarding GH and Revit.

  1. When I create a box in GH (and add data to it) and send it to Speckle, the box isn’t shown in the online viewer. Only when I create a mesh from the box it is shown. Is this how it’s intended? Or am I doing something wrong?
GH details Q1

Stream 1 - no geometry visible: Speckle
Stream 2 - no geometry visible: Speckle
Stream 3 - geometry is visible: Speckle

  1. In 1.0 it was possible to define and send a Revit grid line from GH to Revit. Will that be added in the future or am I missing something right now? (I don’t see it in this list: https://speckle.guide/user/revit.html#supported-categories)

  2. Would it be possible to define and send a Revit room from GH to Revit? (it also isn’t in the Revit supported categories list)

Hi @JdB! Good shouts!

Q1: nice bug find. It’s logged and will be done this sprint: Viewer: support boxes · Issue #270 · specklesystems/speckle-server · GitHub

Q1a: the image in gh: it might be something because boxes are gh native objects somehow, and our converter doesn’t know what to do with them. I think @AlanRynne is the most legit authority on the matter though :slight_smile:

Q2: logged and ticked off apparently here: Feat Revit: Additional conversions · Issue #394 · specklesystems/speckle-sharp · GitHub. Perhaps @teocomi and/or @Ollie can provide more info on the status.

Q3: Also logged in Feat Revit: Additional conversions · Issue #394 · specklesystems/speckle-sharp · GitHub, and discussed Sending Walls and Rooms from Revit 2020 to 2019 - #5 by a.halim - not sure of the status - again dropping that hot potato in the hands of @teocomi :grimacing:

2 Likes

Yep, Gridlines are go! It’s the other bits I’m still fussing around with.

1 Like

As others have said: grids have been added but not merged yet, rooms will be added soon (will come in Revit as unplaced rooms). Will keep you posted Jeroen!

1 Like

Hi!! Just looked into this and it seems our Extend speckle object does not take into account the possibility of the input not being Base (tried with a couple other convertible Rhino Geometries with same results).

I’ll open an issue for this, as it should handle this case properly.

1 Like

Thank you all for the very fast responses and clear elaborations!

Great to see all the amazing progress that is going on!

3 Likes

Quick note to say that we’ve added support for Rooms > Revit and grid lines too! This features will ship in the next release due in ~1 week.

1 Like

I have a few more Q’s, not sure if I should make a new topic or just continue here, so feel free to rearrange if that is preferred.

  1. I’m trying to send some objects (floor, wall, beam, column, room) from GH to Revit. When I try to receive them in Revit I get several Unit System errors with the Speckle Revit objects.
Q1 info

The Speckle floor, wall and column work, but the SpeckleRevit floor, wall and column give the Unit System error when receiving in Revit. Strange thing is, the SpeckleRevit beam is working properly.
In the Revit error here below I’ve placed my own comments after a #.

GH Screenshot:

Revit error:

'# This is the Speckle Revit wall object. The object is not generated
The current Unit System is unsupported.
   at Objects.Converter.Revit.ConverterRevit.UnitsToNative(String units)
   at Objects.Converter.Revit.ConverterRevit.LevelToNative(Level speckleLevel)
   at Objects.Converter.Revit.ConverterRevit.WallToNative(Wall speckleWall)
   at Speckle.ConnectorRevit.UI.ConnectorBindingsRevit.ConvertReceivedObjects(List`1 objects, ISpeckleConverter converter, StreamState state) in C:\Users\circleci\project\ConnectorRevit\ConnectorRevit\UI\ConnectorBindingsRevit.Receive.cs:line 194

'# This is the Speckle Revit column object. The object is not generated
The current Unit System is unsupported.
   at Objects.Converter.Revit.ConverterRevit.UnitsToNative(String units)
   at Objects.Converter.Revit.ConverterRevit.LevelToNative(Level speckleLevel)
   at Objects.Converter.Revit.ConverterRevit.ColumnToNative(Column speckleColumn)
   at Speckle.ConnectorRevit.UI.ConnectorBindingsRevit.ConvertReceivedObjects(List`1 objects, ISpeckleConverter converter, StreamState state) in C:\Users\circleci\project\ConnectorRevit\ConnectorRevit\UI\ConnectorBindingsRevit.Receive.cs:line 194

'#This is the Speckle Revit floor object. The object is not generated
The current Unit System is unsupported.
   at Objects.Converter.Revit.ConverterRevit.UnitsToNative(String units)
   at Objects.Converter.Revit.ConverterRevit.LevelToNative(Level speckleLevel)
   at Objects.Converter.Revit.ConverterRevit.FloorToNative(Floor speckleFloor)
   at Speckle.ConnectorRevit.UI.ConnectorBindingsRevit.ConvertReceivedObjects(List`1 objects, ISpeckleConverter converter, StreamState state) in C:\Users\circleci\project\ConnectorRevit\ConnectorRevit\UI\ConnectorBindingsRevit.Receive.cs:line 194

'#This is the Speckle room object. The object is not generated
The current Unit System is unsupported.
   at Objects.Converter.Revit.ConverterRevit.UnitsToNative(String units)
   at Objects.Converter.Revit.ConverterRevit.LevelToNative(Level speckleLevel)
   at Objects.Converter.Revit.ConverterRevit.RoomToNative(Room speckleRoom)
   at Speckle.ConnectorRevit.UI.ConnectorBindingsRevit.ConvertReceivedObjects(List`1 objects, ISpeckleConverter converter, StreamState state) in C:\Users\circleci\project\ConnectorRevit\ConnectorRevit\UI\ConnectorBindingsRevit.Receive.cs:line 194

'#This is the Speckle wall object and it IS generated
Missing type. Family:  Type: 
Type was replaced with: Basic Wall, RHD_Wa_In_Limestone_100

'#This is the Speckle floor object and it IS generated
Missing type. Family:  Type: 
Type was replaced with: Floor, RHD_Fl_ConcreteReinforced_250

'#This is the Speckle column object and it IS generated
Missing type. Family:  Type: 
Type was replaced with: RHD_Sc_HESteel, HESteel_HEA300
  1. To play around with the room I did the following: I model a few walls and place a room in Revit, send it to Speckle, delete object in Revit, receive stream in Revit. The walls are placed perfectly but the room isn’t.
Q2 info

The room generates the following error: “Room is not in a properly enclosed region”. I do see it in a schedule and I can also select it. However, it’s way off it original location as you can see on the screenshot below of a 2D top view. The generated room is placed wrong in the top right, while the generated walls are correct in the bottom left.
Might have to do with units as well?

  1. I’ve noticed that the wall in question 1 is generated in Revit, but the given height isn’t correct. Wall height input in GH = 1500, result in Revit = 457200, but that is probably caused by the unit error?

  2. For the Speckle Revit beam a level is created, but the beam itself is attached to the level I’ve specified in GH. Is there a certain reason for creating this level? The level is called “Generated Level 3200” and has an elevation of 3200. Info of the generated beam in Revit:
    image

  3. In a V1 topic there was a discussion about adding Spaces, will they be added to V2 as well?
    The topic: Sending and receiving Space data from Revit

  4. Small suggestion, might be nice to show the commit id between brackets in the UI so you can double check if you have the correct one.
    image

Sorry for the long post. If anything is unclear please let me know and I will elaborate!

2 Likes

It seems like the unit errors for revit built elements sent from GH are coming from Revit Levels that are missing units. We’ll look into this on the GH side and push a fix soon!

1 Like

Hi @JdB , this should have been fixed in our latest release, let us know if not!

1 Like

Sounds good!

It’s been a while, but I was trying to test this again (after my holidays) and I get the error below in Revit.
I’ve tried removing the Speckle plugin via the Speckle Manager and installing it again, but without success.

Any suggestions of what I could do?

Software versions:

  • Speckle Manager V2.0.33
  • Speckle Revit Connector V2.1.26
  • Revit 2020

The error message:

Method not found: 'System.Threading.Tasks.Task`1<Speckle.Core.Models.Base> Speckle.Core.Api.Operations.Receive(System.String, System.Threading.CancellationToken, Speckle.Core.Transports.ITransport, Speckle.Core.Transports.ITransport, System.Action`1<System.Collections.Concurrent.ConcurrentDictionary`2<System.String,Int32>>, System.Action`2<System.String,System.Exception>, System.Action`1<Int32>, Boolean)'.
   at Speckle.ConnectorRevit.UI.ConnectorBindingsRevit.<ReceiveStream>d__5.MoveNext()
   at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine)
   at Speckle.ConnectorRevit.UI.ConnectorBindingsRevit.ReceiveStream(StreamState state)
   at Speckle.DesktopUI.Streams.StreamsRepository.<ConvertAndReceive>d__3.MoveNext() in C:\Users\circleci\project\DesktopUI\DesktopUI\Streams\StreamsRepository.cs:line 46
1 Like

Hey @JdB, when do you see the error? On receive / send?

If you have the dynamo connector installed, could you please update it to the latest as well?

I get the error when I try to receive in Revit. Good idea to test it in Dynamo, receive in Dynamo works! See screenshot below.

It is just a simple stream with one “BIM Elements - Floor” send from Rhino. The same error occurs in Revit when I try to receive one “Speckle 2 BIM - Floor” from GH. I’ve made you owner of the stream as well.
(maybe the menu “BIM Elements” in Rhino should have the same name as the menu “Speckle 2 BIM” in GH?)

Screenshot

It works well for me under different Revit versions! Do you maybe have other Revit plugins loaded that are using some of our SDKs or code and could be interfering?

image

1 Like

Ah yes thank you, I think an SDK might be the issue because it works for me in Revit 2021! Next time, I will check multiple software versions.
I will continue more detailed testing next week and keep you posted.

2 Likes

I’ve been doing some more testing with the GH > Revit workflow and it’s really nice to experience the improved stability compared to V1!

There are 2 things I noticed when creating objects in GH and receiving them in Revit:

1) Revit Room unit conversion issue? When receiving a room in Revit, it is placed on the wrong location.

Sending from GH (Rhino is set to mm):

Receiving in Revit:

These are my Revit project units:
image

I believe this might be a unit conversion error because: 10 feet = 3480 mm. If in GH, I put the construct point X slider to 0 (zero instead of 10) the room is created correctly in Revit with base point 0,0,0 instead of 3480,0,0.

Are others able to replicate this error or could it be something strange on my end?

2) Changing the Structural boolean property of a wall isn’t updated in Revit.

I use the same GH script as in question 1.
The steps I take:
A) In GH, create Speckle walls with structural property set to False and send stream.
B) In Revit, receive walls.
C) In GH, set structural property to True and update stream (until this step all is going fine because the stream data online is changed).
D) In Revit, receive updated walls. This is where the issue occurs, because the structural property remains False. If I delete the existing walls in Revit and then receive the updated stream the newly generated walls do have the structural property set to True.

Could it be an hashing or id issue?
(If I remember correctly, in V1 the geometry of the object needed to be changed in order to trigger a hash update of the object. Only changing the parameters would give the same hash)

The flipped property works like a charm, when I change it in GH, it correctly updates the walls in Revit.

Thanks for the detailed report @JdB !
I’ve looked into this and fixed both bugs :bug::bug:, thanks for helping us make a better :speckle:

Updates will go into the next release (let me know if you’d like a beta before then).

1 Like