# Wall location curve

**URL:** https://forum.dynamobim.com/t/wall-location-curve/14056
**Category:** Revit
**Created:** [August 17, 2017, 2:57am UTC](https://forum.dynamobim.com/t/wall-location-curve/14056 "2017-08-17T02:57:22Z")
**Posts on this page:** 1
**Showing post:** 14

<div class="post-metadata">

### Author: ![jacob.small](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.dynamobim.com/jacob.small/32/161030_2.png) [@jacob.small](https://forum.dynamobim.com/u/jacob.small)
#### Post date: [August 19, 2017, 7:04pm UTC](https://forum.dynamobim.com/t/wall-location-curve/14056/14 "2017-08-19T19:04:05Z")

</div>

@john_pierson

Two Clockwork nodes, an Archilab node, and a single code block to get interior, exterior, interior core face, and exterior core face from a wall. If anyone wants to include it in a package feel free.

[get wall faces.dyn](https://forum.dynamobim.com/uploads/short-url/dHwynz3aqAKJGVw9c1pcnATKoPm.dyn) (12.3 KB)

```
{wallcurves,direction,walltypes,Widths,cores};
/* get the distance from wall location (centerline) to the
exterior face of wall*/
distance =
	walltypes.GetParameterValueByName("Width")/2;
//get the curves at the exterior face
ExtFaceCurves =
	wallcurves.Translate(direction,distance);

/*Get the number of indicies which need to be dropped*/

ExtDrop =
	-(List.Count(cores<1L>)
		-
	IndexOf(cores<1L>, true));

/* Drop the widths which are not outside the core to get the
width from the exterior face to exterior face of the core */

ExtFaceToExtCore =
	Math.Sum(
		List.DropItems(
			Widths@@-2<1L>,
			ExtDrop<1L>
		)
	);

/* Drop the widths which are not inside the core to get the
width from the exterior face to interior face of the core */

IntDrop =
	-IndexOf(
		List.Reverse(
			cores<1L>
		)@-2<1>,
		true
	);
/* Drop the widths which are not inside the core to get the
width from the exterior face to interior face of the core */
ExtFacetoIntCore =
	Math.Sum(
		List.DropItems(
			Widths@@-2<1L>,
			(IntDrop<1L>)
		)
	);

// OffsetExterior Face to Exterior of Core
ExtCore =
	ExtFaceCurves.Translate(
		Vector.Reverse(direction),
		ExtFaceToExtCore
	);

// OffsetExterior Face to Interior of Core
IntCore =
	ExtFaceCurves.Translate(
		Vector.Reverse(direction),
		ExtFacetoIntCore
	);

//Get total wall width
TotalWidth =
	walltypes.GetParameterValueByName("Width");

/*Get interior face of wall by offsetting the
exterior face by the total width*/
IntFace =
	ExtFaceCurves.Translate(
		Vector.Reverse(direction),
		TotalWidth
	);

```

Just used it in combination with a Springs.LineLoop.Merge to generate floors which align with the exterior core face in a few heartbeats. Why anyone would ever do the one billion click method when there are tools like this out there is beyond me.

---

_[View the full topic](https://forum.dynamobim.com/t/wall-location-curve/14056)._
