在CIM系统中,目前提供了两种方式建立对象间的隶属关系:
使用CimRoot::AddReference建立隶属关系: 它主要用于建立对象间通用的隶属关系,这种关系本身并不具备任何约束力,取而代之的是,其所确立的内在约束逻辑需要通过在对象上实现对应的回调函数CimRoot::OnReferenceChanged来表达。正因为如此,它是一种通用的隶属关系,而且这种隶属关系的实际约束力可由用户代码来动态确定;
使用CimGraphicObject::SetTransformParent (C++) 或者TransformParent (C#)建立对象间的变换关系: 这是基于上述通用隶属关系定制而成的、专用于图形化对象的一种变换约束关系。通过建立这种关系,当前对象的变换将始终表达为相对于其父对象的变换。也就是说,当前对象的变换始终是个相对的变换,若当前变换依次叠加上其所有父对象的变换就能得到绝对变换(当然,CimGraphicObject中已经提供了对应的方法)。