I have two rooms starting at the same mark, and bordering each other.
One ends in height before the second, and after this mark, the second room should fill the space above the first room, but it does not.
How to fix it manually or via the API?
Solved! Go to Solution.
Solved by RPTHOMAS108. Go to Solution.
I would completely forget about asking how to solve this programmatically with the API until after you have solved the much more relevant question on how to address this optimally and following best BIM practices in doing so when working manually through the end user interface. The API will follow the same approach and probably not be hard to achieve once you know the proper way to move forward.
Do you propose to create a room on each level to ensure that the internal volume of the building is fully filled?
Would that be good practice?
I don't believe your will be able to create an L-Shaped room in elevation. Although I can imagine for auditoriums etc that could be useful.
Probably you can only stack the rooms and consider them separately towards a single contribution (b.lower & b.upper). If something can't be done with the Revit UI alone manually then the likelihood is that it can't be done with the API either.
However you are best asking in Architecture forum for Revit what they would do for considering such spaces e.g. the room below auditorium or stadium seating vs the room above it. You then likely find:
Thank you for the informative answer. In this case, we are not talking about an audience, but about a large warehouse, the main storage of which is located several floors up, but there are several technical rooms on the ground floor (i.e. this is not some kind of L-shaped room, but a fairly common design).
Earlier, I tried to solve this problem through the API by automatically creating temporary rooms at all levels through which the "cropped" room passes, and then through BooleanOperationsUtils.ExecuteBooleanOperation() combined the Solid of each temporary room into a single whole. And it worked in about 9 out of 10 cases, but there was a regular exception about the inability to perform a Boolean operation. After unsuccessful questions about how to solve the problem of Boolean operations provided by Revit API (topic here: BooleanOperations on Revit-Solid ), it was decided to create its own solution based on OpenCascade, but based on labor costs, the previous project was implemented by intersecting and subtracting surfaces, and not Solid based on its own triangulation algorithm. Now it is necessary to get the full volume of the room from Revit again, and this function can no longer be solved based on my solution based on surfaces, Boolean operations are needed.
Or, just the correct volume of space provided by Revit initially.
Or, manually it is long and tedious to arrange the boundaries of the premises, manually add additional rooms over similar areas, manually set their limits, and manually link the volumes of these premises through the parameters. Not the most rational solution for an enterprise program of the world standard level for building design
Can't find what you're looking for? Ask the community or share your knowledge.