citymaker connect 8 插件式开发之渲染对象与持久对象

citymaker connect 8 插件式开发之从渲染对象与持久对象

 

1、渲染对象与持久对象,以及设计思想:
IRenderable对象意味着只在当前会话(具体的ecp文件)下会能够起效果,新创建的场景不受到影响,一般由AxRenderControl.ObjectManager来管理。典型的类包括:ITerrainModifier、IFeatureLayer等。
与之对应的是需要持久保存的对象,需要数据库文件(FDB)的支持。
渲染对象与持久对象是不同的两套继承结构,两者没有直接关联性,但可以互相转换。

 

在Citymaker connect 8中,一般认为操作的只能是渲染对象,对于持久对象一般不可以进行编辑(在我的怂恿下,他们加了一个不伦不类的编辑按钮,对我是有用的哦)。因此,在进行使用时,需要将持久对象转换为渲染对象,并且隐藏持久对象,在Citymaker connect 8中有相应的工具可以实现。

 

2、相互转换:
在二次开发过程中,我们也需要将创建的渲染对象转换为持久对象。
1)从现有的持久对象创建渲染对象:
IObjectManager.CreateRenderModelPoint  
2)IObjectManager对资源的管理:
IObjectManager.AddModel;
IObjectManager.AddImage;
IObjectManager.CreateRenderModelPoint;
IRObject IObjectManager.GetObjectById;

3)如果能找到IModel,那么就可以将渲染对象存储入数据库中。也可以利用这些IModel进行空间运算。

如:
存储入数据库:
IResourceManager.AddModel;
IModelPoint.ModelName;
分析运算:
FdeGeometry.RayIntersect;
IGeometryConvertor.SimplifyModel;


3、创建的渲染对象,在connect二次开发时,需要使用ProjectTreeService创建到图层树上

ProjectTreeServices.CreateRenderObject(newGroupGuid, modifier);

 

欢迎批评指正,转载请注明出处和作者

---------------------------------------------------------------------------

承接CityMaker各类二次开发、数据生产、数据加工处理等服务。

有意者请联系QQ:[email protected]

 

你可能感兴趣的:(citymaker,GIS,citymaker,Connect,builder)