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 多行文字范例范例效果图