After a couple of days work i finally found my mistakes and the answer to my question. To anyone having the same problem as i, this is how i transformed the coordinates to the right coordinates:
The values i fetch from base point are the offset from the survey point, but my mistake is me being a European :p The values i get from the basepoint used feet as unit, while my project had milimeters as unit. So i created a convert function to convert all values i get from revit api(in my case: basepoint values and the grid intersect-function) to the project unit(milimeter). This is a great blog post on the subject http://thebuildingcoder.typepad.com/blog/2011/12/unit-conversion-and-display-string-formatting.html
The second thing i had to do is transform the coordinates using the basepoint offset. But the basepoint coordinatesystem may have a rotation. So i had to first rotate the coordinate
double x = (pos.X * Math.Cos(angle)) - (pos.Y * Math.Sin(angle)); double y = (pos.X * Math.Sin(angle)) + (pos.Y * Math.Cos(angle));
And then i could transform the coordinate:
new XYZ(position.X + projectBasePoint.X, newPos.Y + projectBasePoint.Y, 0);