CityEngine中的参数和属性以及通过属性筛选Object
来源:互联网 发布:做java程序员能做多久 编辑:程序博客网 时间:2024/06/05 15:59
CityEngine数据参数类型
CityEngine中有四种不同类型的参数:
1、Block Parameter------------作用于Blocks
2、StreetParameters----------作用于Graph Segments
3、IntersectionParameters--作用于Graph Nodes
4、RuleParameters------------作用于分配了Rule的shapes
数据参数数据源类型
这几种参数都可以指定不同的属性数据源,属性数据源类型有四种:
- Default
- Object
- User
- Layer
1、Default value指的是参数值的默认值,该值后面都会有一个括号标明为Default
2、Objectattribute value指的是Object的属性表中自带的属性值,只当Object attribute中包含于parameter的名称相同的attribute时才可指定该数据源。
3、User value指的是用户修改了参数值以后的值,例如修改了Default的值以后就成为User value了(与Default value的图进行对比)SidewalkWidthLeft的值经过用户重新输入,它由原来的Default value变为user value
4、Layer value图层相关属性值
获取以及修改参数值
我们可以使用Python脚本批量的对Object参数赋值,赋与的值可以是用户指定的固定值,也可以是Objects对应的某一个属性值,这里主要用到两个函数:
ce.setAttribute()
ce.setAttributeSource()
对不同类型的某一个参数,获取的方法是不同的,具体方法如下:
Block Parameter
/ce/block/PARAMETER
Street Parameters
/ce/street/PARAMETER
Intersection Parameters
/ce/crossing/PARAMETER
Rule Parameters
/ce/rule/PARAMETER
例如:
我们首先通过ce.setAttribute(block,"lotAreaMax", 3000)给选中的Object添加一个lotAreaMax属性并赋值3000,然后再通过ce.setAttribute(block,,"/ce/block/lotAreaMax", "OBJECT")语句设置选中的Block中的lotAreaMax参数值的数据源为Object中刚添加的名称为lotAreaMax的属性值。
根据Object属性值对Object进行筛选选择
通过python的WithName方法可以按找Object的Name对Object进行过滤筛选
例如:
lot = ce.getObjectsFrom(ce.scene,ce.withName("'yyx'"))
该语句会选出所有场景中名为yyx的Objects
但在实际使用中,我们更多的是想根据Objects的某一个属性值进行筛选,这里的解决方案是:
1、首先通过CE.getAttribute()方法获取选中Object某一字段的属性值
2、再通过CE.setName()方法将Object的Name更改为获取的字段属性值
3、循环1,2步骤,直到所有选中的Objects都更改了Name
最后通过CE.withName()方法根据属性值进行筛选参考代码如下:
'''Created on 2013-1-31@author: yuyouxiang'''from scripting import *# get a CityEngine instancece = CE()sceneobjects = ce.getObjectsFrom(ce.scene)for object in sceneobjects: Newname = ce.getAttribute(object,"Type") ce.setName(object,Newname)selectedobject = ce.getObjectsFrom(ce.scene,ce.withName("'Tree'"))ce.setSelection(selectedobject)
注:Type为字段名,Tree为想要筛选的属性值
通过上面的脚本,我们就可以选出Type字段中值为Tree的所有Objects- CityEngine中的参数和属性以及通过属性筛选Object
- JQuery选择器中的属性筛选
- Object get["属性"]; java反射技术通过对象和属性名得到属性值
- JavaBean中通过自省机制拿到对应的属性和方法,以及BeanUtils工具类中的拷贝属性方法
- dop object 中的属性运用
- CityEngine关联GIS数据属性信息
- Flex动态获取Object的属性和值以及完成Object之间value的拷贝
- Validate(Object e) 参数的属性
- Java Object 属性以及常用方法
- 通过setProperty和getProperty设定和获取JavaBean中的属性
- Java 8 stream()分组,过滤筛选 List<Object> 根据Object 中的某几个属性作为条件进行分组 去重过滤
- hibernate中的属性参数详解
- java读取和设置配置文件中的属性参数
- Mybatis 中遍历map 参数中的 list 和 array 属性
- Python中的类属性和实例属性以及静态方法和类方法
- Python中的类属性和实例属性以及静态方法和类方法
- js中 object() 属性 和 实例属性方法
- FusionCharts 分类以及各个属性 参数列表
- oralcle 11g R2 安装
- 电脑端安装Android4.0模拟器使用教程
- Prefix-casting versus as-casting in C#
- Android软件安装工具-APK安装器
- POJ2187--凸包--Beauty Contest
- CityEngine中的参数和属性以及通过属性筛选Object
- 被我的Fedora 17弄的很无奈···
- 自己写的C/C++编译器Doctors[软件+文档]
- 求输入的一个整数的各位数字之和
- jsp嵌入flex后,操作flex功能时禁用鼠标在页面的点击
- POJ3348--cows--凸包
- Hadoop MapReduce进阶 使用分布式缓存进行replicated join
- SSH支持Annotation集成 (Struts2 Spring3 Hibernate3)
- android 背光设置