Manipulating Revit gbxml files so the building geometry can be imported into a load software

Manipulating Revit gbxml files so the building geometry can be imported into a load software

mbeckwithUMVQ6
Explorer Explorer
7,408 Views
30 Replies
Message 1 of 31

Manipulating Revit gbxml files so the building geometry can be imported into a load software

mbeckwithUMVQ6
Explorer
Explorer

I'm trying to learn how to use gbxml files from Revit 2022 to avoid inputting the space geometry into our load programs. I'm confused on how to format the text file in a way that will reduce as many errors as possible.

 

I've been using the Ladybug Spider tool to get rid of duplicate adjacent surfaces. I've also been using the gbxml online validator (https://gbxml.org/validator/Pages/TestPage.aspx) but every gbxml file that I export from Revit does not pass the validation tests. I'm also having issues when I import the data into Open Studio, i appears that some windows are being considered walls.

 

My main question is how do you export/manipulate a gbxml file in Revit properly? I've read the Autodesk guidance about the energy setting but I'm not seeing a difference with my exported models. I feel like it shouldn't be this hard and it would save our company countless hours. I really hate recreating the building from scratch in Trane Trace or HAP so I really want to figure this out.

 

I have used Revit for a long time and I fee like I know the program very well. But I'm pulling my hair out with this issue and I'm not sure why Revit is exporting a file with the wrong schema.

 

Any advice at all would be appreciated

Accepted solutions (1)
7,409 Views
30 Replies
Replies (30)
Message 21 of 31

LjubanL
Advocate
Advocate

Hi @iainsavage,

 

I didn't test Formit pro, I just remembered that I used open studio plugins as sketch up plugins to quickly recreate a building (because for energy analyse its enough to have a box for entire building or if you need detailed for each space).

I also doubt that open studio made plugins for Formit pro as well.

 

BR

 

Ljuban

0 Likes
Message 22 of 31

Iev60047
Advocate
Advocate

@RIPENG I am realizing that solving the space to mass conversion in dynamo is a little trickier than I thought! Did you use a DirectShape.byGeometry node to create the right masses?

Rooms to mass.png

0 Likes
Message 23 of 31

RIPENG
Enthusiast
Enthusiast

@Iev60047No worries.

 

Please see Revit-Dynamo-MEP on github. It should address most mechanics questions like the one posed. If not, let me know and I'll modify the documentation to (hopefully) clarify & ease adoption by third parties.

 

-Jake

0 Likes
Message 24 of 31

Iev60047
Advocate
Advocate

@RIPENG Amazing! Got it to work for my current project. Instructions are literally the most easy to follow for anything I've personally experienced that's Revit related.

Speckle_Masses_Windows.png

0 Likes
Message 25 of 31

Iev60047
Advocate
Advocate

Well, now that I have it in Speckle, I am not sure how to use that to make the gbXML's. I am currently testing out receiving it back using the Speckle manager and then creating the gbXML from that 'updated' model. No luck so far, however.

 

Edit: @RIPENG Okay, well now I am back a step. The dynamo code I wrote and ran, sort of worked. But your dynamo code is not working for me. I am getting "null" responses to the FamilyInstance.ByGeometry node. I think that there is a problem with creating using that node to create meshes due to some internal Autodesk changes (see very long discussion on it here.) Are you running this script in Revit 2021 or Revit 2022? Apparently this is only an issue for Revit 2022, users. Haha, just my luck. I just created some masses to run using the DirectShape.ByGeometry node, these masses are not conceptual so they don't work for creating gbXML's, sadly.

 

Edit: Ah! I see that your code has been verified to work with Revit 2021, so that answers that question.

0 Likes
Message 26 of 31

RIPENG
Enthusiast
Enthusiast

@Iev60047Sorry for the confusion. The document you followed is for a Speckle remote workflow which is not required for local gbXML production. I will post a Local workflow document within the next week that addresses local gbXML production.

 

In any event, great job pushing geometry to Speckle. With any luck the Local workflow document will help resolve compatibility with Revit 2022. Autodesk consistently removes 'any luck' with 'software improvements' >> no promises.

 

Indeed. Revit 2021 is Ripcord's development/design environment. At Ripcord Revit upgrades have been suspended to insulate engineering production from Autodesk 'software improvements'. In the meantime:

 

1. Please confirm your observed gripe is as follows: in Revit 2022 the FamilyInstance.ByGeometry node does not produce a family instance with geometry produced by the Element.Solids node with 'Spaces' being the element of interest.

 

In the Dynamo graph '04_CreateMassesWithSpaces.dyn':

2. Please confirm that 'Family Template Path' is set to a location such that '...\Conceptual Mass\Mass.rft' is available.

 

3. Please confirm that 'Material' is set to a material available in the local environment.

 

-Jake

0 Likes
Message 27 of 31

Iev60047
Advocate
Advocate

@RIPENG No,  no problem at all! It turns out it was a scaling sort of problem with the FamilyInstance.ByGeometry node. Once I fixed that issue I was able to generate masses. I am now running into problems where when I create the gbXML from masses. There are random opening that no option seems to control. I am looking into whether or not I can solve this issue.

 

To respond point by point:

 

1. I believe I was able to run this node with the following modification (it's messy, I'll clean it up later).

 

2. Yes, I was sure to modify that selection to point to my own local family template file.

 

3. The 'Material' being 'Analytical Space' was available and I don't think caused any issues.

 

Edit: I should really make sure to peruse the Revit documentation before jumping to conclusions. I figured out the openings. Has to do with target sill height, glazing options, etc. in the advanced energy settings. I feel closer than ever to producing a workable mass only gbXML. The problem is that the spaces are all being treated as unconditioned, no matter what I change the vertical void/horizontal void thresholds to. Link to the documentation I am referring to. I can manually set the rooms I want to conditioned, but this is very time-consuming.

0 Likes
Message 28 of 31

RIPENG
Enthusiast
Enthusiast

@Iev60047Glad to see you resolved the Masses problem.

 

Please see the sequenced photos for how to turn off automatic openings in Masses for Revit 2021. The sequence of steps should be similar in Revit 2022 (I would think).

 

-Jake

 

 

Message 29 of 31

Iev60047
Advocate
Advocate

@RIPENG Great, and because I'm working in Revit 2022, it seems there are some differences in the kinds of energy settings I can apply to my model. The changes you recommended resolved all of those previous problems.

 

I am still not able to figure out out to automatically resolve the fact that all my mass zones are coming in as unconditioned. This may or may not be an issue depending on the downstream workflow in Trace 3D/OpenStudio. I am attaching pictures of what I mean.

 

Edit: The error I am running into likely has to do with the fact I am trying to just model one floor of a five floor building. I am attaching a picture of the error I received. I need to add a mass floor to the mass instances that make up my model (as per the error recommendation) to resolve these errors.

0 Likes
Message 30 of 31

Iev60047
Advocate
Advocate

Okay, well I was not able to figure it out. This post seems relevant, but only to the point that the mass zones (off of which I believe the analytical spaces are created) is an automatic process once there are masses and mass floors in place.

 

The gbXML comes out error free (as reported by an online validator), but as you can tell when looking at the model, lots of gbXML seem to come out weird.  E.g. the ceilings come out as roofs, interior walls come out as exterior walls, etc. Fairly frustrating experience trying to use conceptual models for building the gbXML model, although it does feel like the best route to work around Revit's shortcomings in developing functional gbXML models. The tutorials I've seen online typically deal with masses that represent entire buildings. The one conceptual mass does not include interior partitions, but will output a functional gbXML.

 

I think the problem with the approach I am taking is that each mass is treated like a building (maybe), so each mass includes its own set of exterior walls, roof and slab. Not sure if there is a simple fix to this, or if I am approaching this the wrong way. 

 

Edit: Upon further investigation, I do not believe I can even change the conceptual mass wall type from anything other than exterior. I believe this is the data that will drive the wall assignment in the gbXML file, so unless I can change the mass zone wall type, I am stuck. I think that maybe creating a mass that represents the shell of the building and nothing else is the best I can do. However, I don't know if the script you wrote to combine the gbXML's will function will this kind of output. I'm glad I'm at least documenting my workflow somewhere, so someone else doesn't stumble through the same mistakes I did.

0 Likes
Message 31 of 31

RIPENG
Enthusiast
Enthusiast

@Iev60047  The Revit-Dynamo-MEP github repo has been updated to reflect a Revit-gbXML workflow.

 

The focus of effort to this point has been on creating gbXML that accurately captures: 1. geometry, 2. openings, 3. boundary conditions.

 

Consideration has been given to capturing other gbXML elements for consumption by analysis software. As it stands within Ripcord, TRACE700 seems to offer little advantage in capturing other gbXML elements. Papers and articles on the web explain that each analysis software package has gbXML import limitations. In short, knowing what a software package can reliably consume is more important than knowing that the gbXML contains any particular element for consumption.

 

It may be possible to capture additional data through Conceptual Mass settings. It is also possible to manipulate the gbXML programmatically. xgbxml by Dr. Steven Firth is the Python library Ripcord used to ease the burden of programmatic gbXML manipulation.

 

-Jake