Happy St. Valentine's Day!
As we all know and have known for a long time from the exploration of the wall compound layers, the Revit API wall location line is at the centre of the wall.
There is no way to change that, and it is important to note that the API location line is completely separate from the one whose location can be controlled through the user interface, and also through the built-in parameter WALL_KEY_REF_PARAM, but only after the wall has been created.
When creating a new wall, the location line you specify is always the wall centre line.
This has sometimes been an issue for people wishing to programmatically create an offset wall along an edge, e.g. on top of a given slab, so that the wall finish coincides with the slab edge.
Well, the best solutions are always the simplest, and now Simon Moreau seems to have come up with the long-awaited ultimate one for this situation in his comment on the topic pointing out how he solves this to model skirting boards:
"I just found a workaround for creating walls with the location line set to 'Finish Face' (for example) on creation. I just first create a wall two times thicker, change the location line position, and finally change my wall type to its final thickness."
Many thanks to Simon for his clever simple idea and sharing this thought!
I bet some readers wish they had thought of this themselves when needing it...
Hello Jeremy,
I made a plugin whose purpose is similar to yours. He adds layers of coating on the environment, if you care follows the link, is Portuguese because I'm Brazilian, but to give it to understand.
Posted by: Magson Leone | March 11, 2014 at 03:31
Hi Jeremy,
I have found a new solution for the Create wall offset problem using the Revit 2015 API.
I make a Curveloop of the boundarysegments of the room, and then use the new function CurveLoop.CreateViaOffset, to offset the curveloop half the width of the new wall from the room boundary.
I than use these curves for the creation of new walls.
One question with regard to this. Is it possible to make use of this revit 2015 API function for revit 2014 add ins?? For example by creating a seperate class library that uses CurveLoop.CreateViaOffset and revit 2015 References, which can be used by a 2014 command?
Best,
Jesse
Posted by: Jesse Mom | May 19, 2014 at 03:30
Dear Jesse,
Brilliant. Thank you very much for sharing that.
Yes, that is indeed a prime example of using this new functionality, which did not exist when the original discussion was published.
I think you would have some difficulty making use of this in a Revit 2014 add-in. The add-in would have to reference the Revit 2014 API assemblies to connect to Revit 2014, and the Revit 2015 ones for the new method. That sounds like a conflict to me.
You could always try to use the corresponding built-in AcGe functionality instead, if you really want:
http://thebuildingcoder.typepad.com/blog/2013/10/using-the-built-in-revit-acge-functionality.html
Probably equally difficult, but less conflict...
Cheers, Jeremy.
Posted by: Jeremy Tammik | May 27, 2014 at 07:50
This is a brilliant solution to a stupid problem.
;-)
Thanks a lot guys. Just got it to work.
Christian
Posted by: Christian | February 04, 2015 at 19:09
:-) indeed.
Posted by: Jeremy Tammik | February 05, 2015 at 01:54