Revit API Forum
Welcome to Autodesk’s Revit API Forums. Share your knowledge, ask questions, and explore popular Revit API topics.
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Difference between generic material appearance and PBR (Physically based)

11 REPLIES 11
SOLVED
Reply
Message 1 of 12
Anonymous
1802 Views, 11 Replies

Difference between generic material appearance and PBR (Physically based)

Hi all

I'm trying to undestand how can I make the difference between a generic Asset schema and a PBR one.

It seems that the schema name for opaque PBR is PrismOpaqueSchema but what about the others (

  • Metal
  • Non-Metal
  • Transparant
  • Base & Top-Coat) ?

Do you I have to parse all the 2019 PBR material and check the Asset::Name property ?

 

Any hint ?

I can give details about my question if needed.

 

Thanks

11 REPLIES 11
Message 2 of 12
Anonymous
in reply to: Anonymous

In addition to the original question: 

Among the following list (from \Common Files\Autodesk Shared\Materials\2020\assetlibrary_base.fbm\Mats), 

what schema are PBR ?

 

Ceramic
Concrete
Decal
DecalAppearance
Generic
Glazing
Hardwood
MasonryCMU
Metal
MetallicPaint
Mirror
PlasticVinyl
PrismGlazing
PrismLayered
PrismMetal
PrismOpaque
PrismTransparent
PrismWood
SolidGlass
Stone
TilingAppearance
TilingPattern
WallPaint
Water

 

Do I have to have a look at each Generic.xml in the subfolders of \Common Files\Autodesk Shared\Materials\2020\assetlibrary_base.fbm\Mats or is there a more efficient/official recommandation ?

 

What I need is to export classic PBR material settings :

Albedo (color and/or texture)

Transparency (coefficient and/or texture)

Normal (color and/or texture)

Metal (coefficient and/or texture)

roughness (coefficient and/or texture)

AO (coefficient and/or texture)

Message 3 of 12
jeremytammik
in reply to: Anonymous

Dear Geoffrey,

 

Thank you for your query.

 

Is this a Revit API issue, or an end user question?

 

Are you doing anything programmatically yourself, or just using the standard Revit user interface?

 

If you are not doing anything programmatically, please note that this discussion forum is dedicated to programming Revit using the Revit API.

 

Therefore, you cannot expect an answer to a question such as yours relating to installation, product usage or end user support issues here.

 

You should try one of the non-API Revit product support discussion forums instead for that:

 

https://forums.autodesk.com/t5/revit-api-forum/this-forum-is-for-revit-api-programming-questions-not...

 

The people there are much better equipped to answer your question than us programming nerds.

 

I hope this clarifies.

 

Thank you for your cooperation and understanding.

 

If you are doing it programmatically, then looking at the Generic.xml files sounds absolutely viable to me, if you know that they provide the information you need.

 

Best regards,

 

Jeremy

 



Jeremy Tammik
Developer Technical Services
Autodesk Developer Network, ADN Open
The Building Coder

Message 4 of 12
Anonymous
in reply to: jeremytammik

Hi Jeremy,

Thank you for your reply.

This is an API question.

What I want to do, is, for any type of Revit Material, compute close or equivalent PBR values:

Albedo

Transparency 

Normal Map (texture, if any)

Metal (coefficient and/or texture)

roughness (coefficient and/or texture)

AO (coefficient and/or texture)

 

So, for each material Schema I get, I've to "translate" the schema to PBR equivalent values.

 

How can I, programmatically,  know if a material is PBR in Revit 2019 and 2020 ?

The yellow exclamation mark in Revit UI is a nice touch but I don't find the equivalent in the Revit API.

 

With Revit 2019 moving to a dual schema (if I undestand correctly), Generic appearance and PBR appearance , may be it would be really great if the MaterialNode class could be updated to reflect the PBR approach, with adding a PRBData struct, for example.
May be I'm naive here, since I'm quite new to Revit Material API. Sorry if I'm being naive or on the wrong track here.

 

Does this suggestion make sense or is complete nonsense (I would be happy to learn something, which I'm comfortable with 🙂 ) ?

 

Meanwhile, I'll have a look at every Generic.xml file to generate PRB values that are as close as possible to the Generic schema.

 

Thanks 

 

 

 

Message 5 of 12
perry.swoboda
in reply to: Anonymous

I have been doing some research into PBR materials myself.
Autodesk U has a nice presentation on the matter that you might find useful.

https://www.autodesk.com/autodesk-university/class/New-API-Modify-Visual-Appearance-Materials-Revit-...

This video give the basics on manually converting a Substance PBR material into a Revit one.  You can use it to help understand the API.  

I believe the Prism mats use the new PBR shaders.  Can't remember where I read that.

Message 6 of 12
Message 7 of 12
jeremytammik
in reply to: Anonymous

Dear Geoffrey and Perry,

 

Thank you for your interesting updates.

 

I asked the developer team to provide more information on this for us.

 

Best regards,

 

Jeremy

 



Jeremy Tammik
Developer Technical Services
Autodesk Developer Network, ADN Open
The Building Coder

Message 8 of 12
Anonymous
in reply to: perry.swoboda

Thank you Perry

Message 9 of 12
Anonymous
in reply to: jeremytammik

Ok great. Thanks

If they need details, just let me know.

Message 10 of 12
Anonymous
in reply to: perry.swoboda

Yes, I also assumed this (the schema containing the "Prism" string are PBR) and wanted confirmation.

My online searchs for confirmation did not return anything.

Message 11 of 12
jeremytammik
in reply to: Anonymous

Dear Geoffrey and Perry,

 

The developer team replies:

 

There are six schemas which are physically-based and new in 2019/2020.   Their property names are called out in the classes Autodesk.Revit.DB.Visual.AdvancedGlazing, AdvancedLayered, AdvancedMetal, AdvancedOpaque, AdvancedTransparent, AdvancedWood.   These are unlikely to change very quickly, so, if this is important, you can probably just hardcode the schema names for those types (e.g., "PrismOpaqueSchema") into your application.

 

I hope this helps.

 

Best regards,

 

Jeremy

 



Jeremy Tammik
Developer Technical Services
Autodesk Developer Network, ADN Open
The Building Coder

Message 12 of 12
Anonymous
in reply to: jeremytammik

Hi Jeremy,

Ok great, thank you for the details.

I'll do as recommended.

Thank you again. You guys rock.

Can't find what you're looking for? Ask the community or share your knowledge.

Post to forums  

Autodesk Design & Make Report