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 (
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
Solved! Go to Solution.
Solved by jeremytammik. Go to Solution.
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)
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:
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
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
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.
Oops. Link to the video.
https://www.substance3d.com/blog/autodesk-revit-pbr-material-workflow-architecture
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
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.
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
Can't find what you're looking for? Ask the community or share your knowledge.