Question-and-Answer Resource for the Building Energy Modeling Community
Get s tarted with the Help page

# wrong ceiling and floors when exporting revit into sketchup

I used revit to create the geometry and export gbxml model used for openstudio. I import the gbxml file into sketchup, the geometry looks good. However, when I checked the interior floor and ceiling, I found that the interior ceilings were treated as floors while interior floors were treated as ceilings. Therefore, the ground floor has no ceiling while the highest floor has no floor. This causes the "severe":

Severe * ComputeIntSolarAbsorpFactors: Solar distribution model is set to place solar gains on the zone floor, * ~~~ * but Zone ="THERMAL ZONE: SP-1001-10TH" does not appear to have any floor surfaces. * ~~~ ** Solar gains will be spread evenly on all surfaces in the zone, and the simulation continues...

I can still have the results which seem not bad. Has anyone had similar problems? Does the error affect the simulation results?

edit retag close merge delete

Sort by » oldest newest most voted

I am encountering the exact same problem and trying to solve it as well. I think I was able to find a pattern/solution by combining my observations with yours!

I've made several trials to test this issue and it seems that this Sketchup floor/ceiling error does not occur when spaces in Revit are created from the top floor to the bottom floor. Since you are encountering this error, I will guess that your 10th floor spaces were created before your 11th floor spaces. In other words, it seems that Sketchup floors belong to spaces that were created first within Revit and these spaces need to be created from top down. The reversed ceiling surfaces would then be assigned to spaces created 2nd. But don't worry! You will not have to delete spaces and re-create them in the correct order. You can write a script to change this within the GBXML, see below:

1) I noticed that the <surface id=""> Polyloop CartesianPoint order for ceilings are listed in CCW order while floors are listed in CW order. Surfaces will switch types if you simply reverse the order of your cartesian (not coordinate) points.

BUT, I just found an easier way to fix this due to your observations on how the spaces are referenced within the name (thanks! :) it was crucial to how I found this solution)

2) You noticed that the 10th floor space (181) was referenced before the 11th floor space (196). As mentioned above, this is incorrect - the 11th floor space should be referenced first because Revit likes top spaces to be named first for some reason. All you have to is change the order of the <adjacentspaceid>'s. There will be no need to change teh cartesianpoint order. Your code should look like below, referencing the top space before the bottom.

    <AdjacentSpaceId spaceIdRef="sp-196-11th">


You can write a code for this if you have a pattern in your space naming (eg. sp-160 to sp-181 is on the 10th floor sp-182 to sp-200 is on the 11th floor). I named my floors 1xxx for 1st floor spaces, 2xxx for 2nd floor spaces, etc., so it was easy for a code that reversed the AdjacentSpaceId's when the first referenced space was a lower number than the 2nd.

more

Hi @Yan, I assume you are exporting gbXML from Revit and importing into OpenStudio, is that correct? If so, which version of OpenStudio are you using? We added this code in version 1.4.0 and above to disregard the surface type specified in gbXML (which may be incorrect). However, I am not sure that we are completely handling all the possible error cases. To me this is due to a flaw in gbXML usage, more description is in this issue.

@Chienman any thoughts

Update: Here is a problem surface. The vertices given are for a floor (outward normal is down) and it is classified as InteriorFloor. However, the first adjacent space referenced is on the 10th floor and the second is on the 11th floor. OpenStudio adds the surface in the gbXML to the first adjacent space referenced and adds a reversed surface in the second adjacent space. I don't think there is any other way for us to know which space the floor belongs in and which space the reversed ceiling belongs in (other than applying some heuristics)?

      <Surface id="su-1022" surfaceType="InteriorFloor" constructionIdRef="con-c23">
<Name>T-181-196-I-F-1022</Name>
<RectangularGeometry>
<Azimuth>0.000000</Azimuth>
<CartesianPoint>
<Coordinate>114.738452</Coordinate>
<Coordinate>78.312530</Coordinate>
<Coordinate>106.833333</Coordinate>
</CartesianPoint>
<Tilt>0.000000</Tilt>
<Height>27.500000</Height>
<Width>63.500000</Width>
</RectangularGeometry>
<PlanarGeometry>
<PolyLoop>
<CartesianPoint>
<Coordinate>51.238452</Coordinate>
<Coordinate>50.812530</Coordinate>
<Coordinate>106.833333</Coordinate>
</CartesianPoint>
<CartesianPoint>
<Coordinate>51.238452</Coordinate>
<Coordinate>78.312530</Coordinate>
<Coordinate>106.833333</Coordinate>
</CartesianPoint>
<CartesianPoint>
<Coordinate>114.738452</Coordinate>
<Coordinate>78.312530</Coordinate>
<Coordinate>106.833333</Coordinate>
</CartesianPoint>
<CartesianPoint>
<Coordinate>114.738452</Coordinate>
<Coordinate>50.812530</Coordinate>
<Coordinate>106.833333</Coordinate>
</CartesianPoint>
</PolyLoop>
</PlanarGeometry>
</Surface>

more

@macumber, yes, I am exporting gbxml from revit and importing into OpenStudio, i am using openstudio1.7.0

( 2015-04-07 13:16:32 -0500 )edit

Cool, I think this is a bug in the gbXML export from Revit. If you upload a file and paste a link here I can verify that. I'm not sure the right way to file a bug with the Revit team, @Krishnan might know.

( 2015-04-07 13:31:15 -0500 )edit

@macumber, which file would you like? the revit model or gbxml or openstudio? which version do you prefer?

( 2015-04-07 13:40:41 -0500 )edit

( 2015-04-07 13:58:24 -0500 )edit

@macumber: the link is shown in the following, thanks so much for your help. https://www.dropbox.com/s/ifaipina3w0...

( 2015-04-07 14:17:58 -0500 )edit