BIMBase API的文字包括单行文字和多行文字两种,可根据需要应用于不同的场景。

7.3.1 单行文字

使用类BPTextEntity可创建单行文字,常用接口见下表。

表7-6 文字对象接口

方法 描述
Content() 获取文字内容
setContent(PStringCR) 设置文字内容
style() 获取文字样式
setStyle(PStringCR) 设置文字样式
justification() const 获取文字对正方式
setJustification(P3DTextEntityJustification) 设置文字对正方式
height() 获取文字高度
setHeight(double height) 设置文字高度
rotation() 获取文字旋转角度
setRotation(double rotation) 设置文字旋转角度
widthFactor() const 获取文字宽度因子
setWidthFactor(double) 设置文字宽度因子
pos() 获取文字位置
setPos(::p3d::GePoint3dCR pos) 设置文字位置
isUpsideDown() const 获取文字是否颠倒
setIsUpsideDown(bool isUpsideDown) 设置文字是否颠倒
isBackwards() const 获取文字是否反向
setIsBackwards(bool isBackwards) 设置文字是否反向
isVertical() const 获取文字是否垂直
setIsVertical(bool isVertical) 设置文字是否垂直
setUseFixedHeight(bool fixed) 设置文字是否使用固定高度

示例代码7-6展示了单行文字的创建,首先创建一个单行文字对象,通过接口设置文字内容、字体、字高等属性,然后将文字保存到指定model上。

BPDocument doc = BPApplication.singleton ().activeDocument;BPModel model = doc.modelManager.activeModel;
BPTextEntity text = new BPTextEntity("单行文字");text.lineColor = System. Drawing.Color.Blue;
text.style = "sans-serif";
text.rotation = 60;
text.height = 3000;
BIMBaseCS.BPStatus sta = text.addToDocument(model) ;

代码7-6 单行文字的创建


单行文字范例效果如图所示:

图7-5 单行文字范例范例效果图

7.3.2 多行文字

使用类BPMTextEntity可创建多行文字或段落,多行文字较单行文字复杂,其关联类包括多行文字属性(MTextRunPropertiesAppender ), 多行文字段落属性(MTextParagraphPropertiesAppender),多行文字内容(MTextTextLineAppender)等,主要接口见下表。

表7-7 多行文字属性常用接口

方法 描述
appendMTextPart(P3DMTextPtr mtext) 把属性附加到多行文字Part上
color 文字颜色
isBold 文字加粗
isItalic 文字斜体
isUnderlined 文字下划线
isOverlined 文字上划线
isSuperScript 文字上标
isSubScript 文字下标
overrideFont 覆盖字体
overrideBigFont 覆盖大字体
overrideFontSize 覆盖字体大小
fontSize 字体大小
font 字体
bigFont 大字体

表7-8 多行文字段落属性常用接口

方法 描述
appendMTextPart(P3DMTextPtr mtext) 把属性附加到多行文字Part上
mtext_FirstLineIndent 首行缩进
mtext_HangingIndent 悬挂缩进
isFullJustified 是否两端对齐
P3DTextEntityJustification 文字对齐方式
lineSpacingValue 行距值
textStyleName 文字样式名

表7-9 多行文字内容常用接口

方法 描述
appendMTextPart(P3DMTextPtr mtext) 把属性附加到多行文字Part上
mtextLine 文字内容

多行文字的创建步骤较多,需要设置段落属性,文字属性;附加文字内容、换行符、分段符等,可参考示例代码7-7进行创建。

BPDocument doc = BPApplication.singleton().activeDocument; BPModel model = doc.modelManager.activeModel;
List<ContextAndStyle> contexts = new List<ContextAndStyle>(); ContextAndStyle context1 = new ContextAndStyle();
context1.color = 0;
context1.content = "多行文字显示";
context1.fontsize = GePoint2d.create(10,10);
ContextAndStyle context2 = new ContextAndStyle();
context2.color = 0;
context2.content = "多行文字测试";
context2.fontsize = GePoint2d.create(20,20);
contexts.Add(context1);
contexts.Add(context2);
BPMTextEntity mtext = new BPMTextEntity(contexts);
BIMBaseCS.BPStatus sta = mtext.addToDocument(model);

代码7-7 构件符号变化事件示例(代码片段)

多行文字范例效果如图所示:

图7-6 多行文字范例范例效果图