Custom properties on Blender objects


First of all, great job on the part of Speckle getting Speckle into the wild. I’m just starting Speckle workflow development and it’s an impressive concept that delivers on the project’s underlying concept of versioned geometry transfer.

Round trip workflow currently under development:
Revit - Speckle - Blender - Topologic - gbXML - Analysis - Dynamo: analysis results returned to Revit.

The general workflow concept is functional. The problem the development team has encountered is in setting custom properties on Blender objects that reflect Speckle properties.

Please see the attached image for an example of a Speckle property we would like to transfer to a custom property on Blender objects. ‘Space 2’, the ‘type’ data, would allow us to incorporate a ‘key’ value into gbXML output to facilitate analysis and results transfer by Dynamo back to Revit. Without this kind of definitive ‘key’ value the detailed workflow concept is broken in that the connection to the reference Revit element is lost.

Generally speaking, are custom properties on Blender objects supported at the moment? If so, how do we implement this capability?

Any direction the community might be able to provide would be appreciated.

Best wishes,
Jake Staub

Hey Jake, welcome to our forum!

I think that’s possible, but only from python, anyways @izzylys is our blender expert and author of the blender connector, she’ll be able to help you!

Hello Matteo,

Thanks for the welcome to the forum.

Glad to hear that setting properties on Blender objects is possible. It’s a critical path hurdle for the team to clear.

Dr. Wassim Jabi of Topologic who is working the Blender/python side of the problem has established contact with Izzy. A resolution effort is in process.

I will report the result of the resolution effort to the forum at the end of the resolution process.

Best wishes,

1 Like

I guess you need to get the glazed part out of Revit as well and also convert these to planar objects trying to keep some information. I found that part more difficult then getting the spaces out.

heya @jpstaub & @Wassim_Jabi !

so custom props are supported in blender, but the reason you were not seeing revit custom props on your blender geometry is because those props in your screenshot are on the parent Revit object while the object you see in blender is the child Mesh object. if you were to attach any custom properties to the mesh itself, then they would always come through in blender.

I have just triggered the release a new version of the blender connector (v2.4.3) that will add the parent custom properties to all the child geometry objects. it should be available to download very soon! :rocket:

note that this is a bit of a temporary fix - at the moment the parent props are attached to all child geometry objects of a revit object. i am working on a larger refactor that will combine received objects into multimaterial meshes such that you will only have 1 child geo object per revit object which will get your additional revit props. however, I thought I’d push out this intermediary fix to unblock you guys


Hi Izzy,

Thanks for the explanation as well as responsiveness in working out a better way for the community.

I’m not familiar enough with Speckle to understand how to attach a custom property to the mesh itself with Revit. However, it seems like you have made that an obsolete requirement.

In a mad dash to a solution @Wassim_Jabi built up a collection of Speckle nodes for sverchok on Blender to receive Revit custom properties. These nodes should be posted to github eventually for the Speckle community.

Again, thanks your responsiveness and the workaround.

Best wishes,


Hello MaxT,

Thanks for your comment.

Eventually we settled on sending Revit Window elements to Speckle as solid Window blocks. Topologic in Blender combines Mass geometry with Window block geometry to form a Cell Complex with Apertures that serves as the basis for forward translation by OpenStudio to gbXML format.

Best wishes,

1 Like

Thanks Jake, does this meen that you are able to determine what parts of a curtain wall that is transparent as well?

Hi MaxT,

We have not worked with curtain walls to date.

However, based on the way Topologic consumes geometry from Speckle my guess is the strategy at this stage would be to use solids to represent the transparent panels that make up a curtain wall. If your target serialization is gbXML it would probably be best to abstract curtain wall sections to a single block with an area equivalent to the transparent area of a given section of curtain wall.

Best wishes,