How to reassign a material on a direct shape


I have previously passed in some geometry using a direct shape.

I gave this both a sub category and assigned a material.

Is it possible to reassign the material or sub category to this element? without deleting the redoing the process (or the new tracking objects).

I dont have any options in the properties box and the best I can see, is that potentially the material has been assigned through the object styles from the sub category I set it to (but that would also be problematic as what if I used the sub category for multiple elements that did not necessary hold the same material attribute)


Hi @ssw1,

DirectShapes have no material attribute, but are “painted” using a material per face.

You can use the Revit Paint command to change that material on each face, about reasigning category is something Revit does not allow.


Is there a better alternative than direct shape?

Obvioulsy if I model a wall native in revit, I can then go into its properties and change its material etc, this is not possible with rhino inside? or- can I change the sub category it is assigned to etc etc.

Thankyou for your quick response. I just want to avoid having to rerun the script if we decide to change a material name etc or update it. Additionally, if the material was to change within revit, would the element update with that change, if it has the same name applied to it?


If you are in a phase were you just need to see geometry on the model a DirectShape is nice and performs better than families, but DirectShapes have some limitations on Revit UI as the one you mention about the material.

If you create a wall or any other element using Rhino.Inside it will be a regular Revit wall, no advange or drawback besides you are doing it in an automated way.

If you want to apply materials using subcategories then DirectShapes can not help you since DirectShapes do not support subcategories.
To use subcategories you need a Family. The Family is better supported in Revit UI. Revit allows you to edit latter each object subcategory and material using the Family Editor.

About materials applied with Rhino.Inside is exactly same thing, those are regular materials and behave same way as you expect. If you edit a Material using Revit UI, all elements of that material will update yes.

Hi @kike ,
Did something change in Revit’s API since 2021?
If I create a 3D solid of ‘Generic Models’ category, with the Add Geometry DirectShape component, I am still not able to assign a subcategory? (the information “buble” on component says: “Using SAT”).

Essentially I am trying to apply a Material to this ‘Generic Models’ 3D solid.

Hi @Japhy , @kike ,
Is it possible to apply a material to a DirectShape for which I chose a category GenericModel Or is this Revit’s limitation, and I have to choose a different category?

You can assign any material to any category using DirectShape

1 Like

Thank you @Japhy ,
Revit shouldn’t have the ‘Material’ parameter for elements of ‘GenericModel’ category:

So in this case Add Geometry DirectShape component is not applying a material, but it is painting the faces of the DirectShape Solid?

You can add a Shared Material Parameter to the Category that the direct shape is assigned to, for scheduling the material Name purposes. It’s not going to change the painted material on the direct shape.

1 Like