I am using RIR to add some breps into Revit that are meant to represent panels. The geometry comes in fine but I am having an issue with the orientation of the textures once I apply a material.
It appears that any surface normal facing the world X vector is mapped correctly where as any surface normal facing the world Y direction is rotate 90 degrees clockwise (if looking directly at the surface).
Is this something I can correct with somehow mapping textures via Rhino before I send the geometry to Revit or is this more likely a Revit related issue?
The worst case work around I can for see is adding model lines to the Revit material and using those model lines to rotate the texture manually but I’m really hoping I am overlooking something in the translation process as that would be a manual process for each face of every panel.
Another possible work around may be getting all surfaces with a normal in the World Y direction and apply a separate material to them before I send the geometry to Revit. I would then rotate that material 90 degrees and it should all show up in Revit correctly. Again I am hoping there’s an easier solution.
Thank you for your help!
Please see attached snip for a visual example of what is happening:
I’ll think I’ll need to use grasshopper to get all surface normals facing world Y and assign a different material to them so that I can rotate only those faces back to the proper orientation without using model lines to manually rotate every single panel (there’s 1000s of panels).
There isn’t any way to translate Rhino UV mapping to Revit via Rhino.Inside is there @Japhy ?
Good to know, so it may just be that I’m not choosing the best node/geometry representation to mediate between Rhino and Revit for this use case? I went ahead and uploaded the rhino file to the support link you provided as it is for an active project.
In addition to rendering, it is also being used for documentation and panels are represented by different hatches in elevations and sections and such.
Currently I am controlling the panel width, height, depth, randomization, etc. using SkinDesigner in Grasshopper.
But I am taking the skin designer generated breps and baking them to layers in the Rhino file that I then send to Revit via the directshape method.
Is there a way to convert the end result breps into curtain panels and completely ignore the grids? I’m guessing maybe not since Revit grids tend to define and subdivide curtain panels…
Looking at the SkinDesigner (I had installed at one point, but never used it) it uses blocks, we can use those to generate families pretty easily. Can you upload your Panels as Rhino blocks?
The naming has some bad characters and hopefully can be made clearer. If you need a block renamer script let me know.
There are currently 216 Families, which makes adding an instance parameter material to each not practical at this time. It also doesn’t appear materials are related to the blocks, which is fine but a different material strategy will need to be used.
These are created using a new generic model template with WorkPlane based checked. (open a generic model template, check the box and save as .rfa in the template folder then rename to .rft)
Thanks Japhy! I’m looking forward to digging into this tomorrow. I’m working on a solution to group the blocks by panel type, hoping we can then take the grouped panels and add a type parameter material to those groups?
I believe I took the blocks and added them to layers and then reference the layers to assign materials that way. I’m going to switch this method to group the blocks instead so that I’m not working with un-instanced geometry anymore. Hoping this will make it easier to assign materials to the whole swatch of grouped blocks instead of each individual.
That being said I haven’t dug into it yet so I may be over simplifying the problem there.
Another way is to create a single flexible family that has the material instance parameter on it already, then just feed the LxWxH and material to the parameters.