Difference between generic material appearance and PBR (Physically based)

Anonymous

Difference between generic material appearance and PBR (Physically based)

Anonymous
Not applicable

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

0 Likes
Reply
Accepted solutions (1)
1,806 Views
11 Replies
Replies (11)

Anonymous
Not applicable

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)

0 Likes

jeremytammik
Autodesk
Autodesk

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

Anonymous
Not applicable

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 

 

 

 

0 Likes

perry.swoboda
Advocate
Advocate

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.

0 Likes

perry.swoboda
Advocate
Advocate
0 Likes

jeremytammik
Autodesk
Autodesk

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

Anonymous
Not applicable

Thank you Perry

0 Likes

Anonymous
Not applicable

Ok great. Thanks

If they need details, just let me know.

0 Likes

Anonymous
Not applicable

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.

0 Likes

jeremytammik
Autodesk
Autodesk
Accepted solution

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

Anonymous
Not applicable

Hi Jeremy,

Ok great, thank you for the details.

I'll do as recommended.

Thank you again. You guys rock.

0 Likes