(7)如何修改复杂对象的样式


我们首先了解一下一个对象的显示属性,随着我们使用平台(无论是二维,还是三维)以及设计模式(二维,三维,符号化)的不同,我们对“显示属性”的理解也不同。

【原理是什么?】

1)如果我们是纯粹的二维操作,显示属性包括线性,颜色,线宽等,我们用MicroStation绘制二维图纸就是这样的方式。

2)如果我们是三维操作时,显示样式分为了很多种,例如线框,着色,渲染等。这时“显示属性”就包括更多的设定,除了二维的线符显示外,还包括了,渲染材质,贴图,它在某些场合下,还包含了对光的反射特性,凹凸材质贴图等。我们使用MicroStation来做基于实体来做二维的显示和三维渲染就是这样的方式。

3)如果我们是BIM设计,使用ABD(最新名称为OBD),也就是我们采用的是信息模型,在使用场合上结合二维图符(可能是符号化的填充,中心线),三维渲染,结构分析(某些对象可能在结构分析里,是一条有分析特性的线)。在某些特定的应用场合,我们也会让其“显示更多的属性”,例如工程量。

如果解决这些“显示属性”, 在ABD中,我们将这些“显示属性,结合在一起,称之为”对象样式“, 如下图所示,在里面有非常多的属性设定。

(点击图片可放大)

所以,在ABD中,无论是三维对象,还是二维对象,都挂接了一个“对象样式。

对于复杂对象,例如门,一个对象引用了多个“对象样式”。

对于简单对象,例如墙,一个对象应用了一个“对象样式”。

下图中的绿色线表明的是“二维”对象“链接的”对象样式,红色代表“三维”对象链接的“对象样式”。每一种样式里设定了二维图符,三维渲染,填充图案,结构分析设定等。

(点击图片可放大)

如上就是原理。所以,如果你单单是修改材质,你需要明白:

对象定义 -> 对象样式库里的样式 -> 材质库的材质

在这个调用中,门窗等参数化对象,无论是用PCS还是PFB定义的对象,在定义的时候,都是引用的样式库里的名称,样式库里引用的材质,也是通过名称引用材质库的定义。

所以,你当然可以:

1,修改材质设定(材质名称不变),对象样式引用的此材质发生变化,对象材质发生变化;——改材质库

2,修改对象样式材质设定(对象样式名称不变),对象样式设定里,引用了其他的材质,对象的材质也会发生变化。——改样式对应的材质种类

3,修改了对象定义里,引用对象样式的名称,在对象样式库里,调用新的对象样式。——直接换样式

看似三种方式都是可以的。但我们需要明白的是,无论对象样式库,还是材质库。每一种对象样式和材质都是被”很多很多“对象引用的,你改了”库“,那么,所有引用此样式或者材质的对象都会发生变化。

所以,你明白了这个道理,你应该:

1, 无论是对象样式库,还是材质库,应该你想用的样式或者材质没有,你应该先去扩展。

2,在引用的场合去修改调用的样式或者材质。

这就是原理。而操作就很简单了。

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

【操作实例】

例如在OBD中修改和编辑窗户的某项材质属性,首先打开样式编辑器,在窗框的样式名称上单击右键,弹出相应的材质库编辑对话框:

我们可以通过修改窗框(window frame) 材质库中的相关内容来修改窗框的材质样式,但是这样修改的结果如上原理中介绍,会将项目中所有引用这个库文件的材质以及名为matl_Window_Frame_Metal的样式的构件都修改了,换句话说只要调用了名为matl_Window_Frame_Meta的构件材质将全部都会改变(注意材质的读取和识别是根据名称的),那么如何单独修改呢?

其实我们的门窗的原文件是一个bxf构件,是用单独的参数化构件工具Parametric Frame Builder来制作的,比如这个构件的窗框采用什么样的样式其实是在它的PFB原始工具中定义的,所以要单独修改就要到它的原bxf文件中改它的定义名称,即在引用的场合修改:

这个定义的原始xml文件可以在settings中看到,是在一个名为window _alum中设置的:

但是不建议在xml文件中来修改样式定义,原理类似,如果修改了原设置文件,那所有引用这个文件的样式都被改了,所以还是应该在set part中修改(见上面截图)

(注意settings下的样式part 只是一个包含所有各部件样式的容器,并没有实际意义,详见:https://communities.bentley.com/communities/other_communities/chinafirst/w/chinawiki/43341/page

因此,正确的修改方法应是:1.扩展——在材质样式编辑器中新建一样式(如果不想修改原文件中其它已有的样式):

2. 在新建的样式名称上单击右键,重命名为你在PFB工具的set part--part中为构件新指定的样式,比如窗框为Tubes:

3.最后在材质编辑器中编辑这个新样式的材质属性:

4. 对于其它单独定义的参数化构件,比如pcs构件原理也是类似的:

属性的类型和数值可按如下规则设定