In general, BMWs built from MY2008 onward are D-CAN.
E46/E39/E38/E53/E85 - Everything is K-line. Powertrain stuff on pin 7, everything else on Pin 8.
N52 E83 - DME is D-CAN, everything else is K-line
E60/E65/E90 - Pre MY2008 they're K-line with every module on pin 7. MY2008 onward they're D-CAN.
INPA... it's a little hard to explain without getting a little technical, but basically the entire suite of software (INPA, NCS Expert, WinKFP, etc) is known as the Ediabas suite. Ediabas itself is basically a set of protocols that will allow a computer to interface with BMWGroup vehicles. The real engineers actually working at BMW all have interfaces that natively speak CAN for the newer cars. But these cables are expensive, rare, and difficult to clone.
For old cars where BMW used K-line, the cables were simpler since that tech dates back to the early 90s - they basically were just modified serial cables. So the aftermarket found it easier to take a cable that converts a serial message into a CAN message rather than making a native CAN cable compatible with the ediabas suite of software. BMW made it relatively easy to do that, because the actual messages within the CAN packets are essentially identical to the serial packets - they just needed to be transmitted over the different bus type.
So IMO since you have a car that has a D-CAN DME, it's best to just get a cable that handles that communication well. And if you ever get an E90, E60 or whatever in the future, that cable will still be good there. If you skip past that to the Fxx cars... that cable isn't useless, but most people just use ethernet nowadays since it's easy to DIY a cable and it's faster.
As far as PASoft goes - it'll work with all your cars, but it won't be able to communicate with the X3's DME since PASoft does not support the CAN-bus.