How are cameras storing their settings?
I ran a test to see how settings of cameras were stored. I saw that the cameras "Focal Length" (blender setting) somehow survives is persistent, but I couldn't see anything obvious in the ifc file. I saved it, committed to my local git repo, then changed the focal length, and saved again. git diff showed no changes in the ifc, and yet the focal length is "remembered". Even changing the Width/Height/Depth (Bonsai settings) and doing a save shows no changes to the ifc file from git diff. Does Bonsai have a sneaky little file or database squirreled away somewhere for things that are not possible directly in the ifc schema?
I only ask because I was looking to see if Blender's Shift X and Shift Y were also stored. This is basically what a tilt shift camera lens does, and is useful for re-framing an image to maintain the verticals avoiding "lean-out/in". While focal length seems to be preserved, the shifts are not.
Comments
I think it saves it in
IFCRECTANGULARPYRAMID
.see these commits and issues: https://github.com/search?q=repo:IfcOpenShell/IfcOpenShell+PYRAMID&type=issues&s=created&o=desc
You see, I had gotten to the point of thinking that a pyramid could define the focal length, after I saw IFCRECTANGULARPYRAMID defs in the ifc file when adding a new drawing. But how come changes don't make a modification to the ifc file?!?! That's the bit I'm struggling with.
after making the changes, you need to click on one of the following, for it to save into the .ifc file.

Huh. OK. Bit surprised I didn't manage to do that even once by accident while I was testing. Alrighty then... So now I wonder if it is possible to store the X/Y shift in that jumble o' gibberish. I have a feeling not, because a rectangular pyramid is defined as the peak being over the center of the base. Shift X/Y breaks that, as shown here

I'll post it as an enhancement in github, but might be too much effort for minor gain.
Yeah, maybe, but curious what use case does 'shift' do, over just rotating the camera, which saves into the ifc file.
Picture (pun intended) a ground shot of a tall building. Rotating the camera up or down introduces a perspective vanishing point.




The vertical lines are no longer vertical in the image. We can straighten them by setting X-rot to 90 degrees, but now we're looking at the ground floor and missing half the building.
Enter Y-Shift:
And bear in mind that the leaning over of verticals gets worse the further out to the sides you go:
There are workarounds where you oversize the shot so that the top is included in the 90 degree rotated shot, then crop it. Either pull way back to include the top, or use a lower focal length. In the real world these are limited by physical constraints of the location, or the camera lenses. On a computer in the virtual world it is easier to do this, but you could end up wasting computer resources rendering unneeded parts of an image.