private void calcOffset() { var norm = HostUtils.GetHostNormal(this.NewFI); var p0 = this.NewFI.LocationCurve().GetEndPoint(0); var pOffset = this.OffsetLocLine.GetEndPoint(0); var totalOffset = (pOffset - p0).DotProduct(norm); double symbolOffset = LineBasedFamilyUtils.GetSymbolOffset(this.fs); double profileOffset = LineBasedFamilyUtils.GetProfileOffset(this.fs); double instanceOffset = totalOffset - symbolOffset - profileOffset; this.NewFI.get_Parameter(BuiltInParameter.INSTANCE_FREE_HOST_OFFSET_PARAM).Set(instanceOffset); }