How to get a surface from a Planar Face

Hello people.
Does someone know how to get a Surface from a Planar Face?
Python way or Dynamo way, It would help me both.
Thanx in advance.

Python way, using .ToPrototype() if I remember correctly.

Thanx for your reply.
With the face.ToProtoType( ) Dynamo returns an error: "A managed exception was thrown by Revit or by one of its external applications:
With face.GetSurface Dynamo returns for every PlanarFace: IronPython.Runtime.Types.BuiltinFunction Somehow there should be a way to get the Surface from a PlanarFace, but how?

Regarding GetSurface - sounds like you forgot to include parentheses in you code. You are calling GetSurface as a property instead of the method GetSurface().

When i use GetSurface() for the planarFace, the same error occurs:
"A managed exception was thrown by Revit or by one of its external applications

What package is the Room.Finishes Node from, or is this what you are developing?

Room element only (finishes not extracted) rebuild workflow example…

Room.Finishes is a Clockwork package.
Your workflow returns room surfaces. Room.Finishes returns the faces from the bounding elements like Walls

1 Like

Which version of Clockwork are you running?

1 Like

Must be the latest (1.31.1) since that node got added in that version.

Ah, I had a legacy version.
Will upgrade after the weekend. :+1:t2:

So? How did you get surfaces from Autodesk.Revit.DB.PlanarFace? It gives me the same error.


You can edit the custom node and add .ToProtoType() line 40.


Ok, thank you so much! So i have the surface. I need these surfaces to use later the system node “FamilyInstance.ByFace”. But with those surfaces the FamilyInstance.ByFace node tells me that he wants an ElementFaceReference from an RevitElement. So?
(PS Walls are in a linked model XD)
why would you want to model this way?
You would lose the elements in your file when some else updates his? (when the walls get deleted)
Maybe its better to model by reference planes in your own model (eg levels that are copy/monitored from the other model)
You could still use the location of the walls comming from the other model

Hello @Alban_de_Chasteigner
In the above example, if i wanted the to calculate the material/paint surface area of the wall, if on the same wall i have used two or more paint/material ?