How To Create MTEXT In a Table Cell

<?xml encoding=”UTF-8″>By Madhukar
Moogala

Here is sample code to add MText when a user picks cell from Table.

You either pass RTF contents to MText or create string with Format codes.

<span>static</span> <span>public</span> <span>void</span> addMtext<span>(</span><span>)</span> <span>{</span>
Document document <span>=</span>
Application<span>.</span>DocumentManager<span>.</span>MdiActiveDocument<span>;</span>
Editor ed <span>=</span> document<span>.</span>Editor<span>;</span>
Database db <span>=</span> document<span>.</span>Database<span>;</span>
PromptNestedEntityOptions pneo
<span>=</span> <span>new</span> PromptNestedEntityOptions<span>(</span><span>"</span><span>"</span><span>)</span><span>;</span>
pneo<span>.</span>Message <span>=</span> <span>"</span><span>nSelect a table cell text : </span><span>"</span><span>;</span>
PromptNestedEntityResult pner <span>=</span> ed<span>.</span>GetNestedEntity<span>(</span>pneo<span>)</span><span>;</span>
<span>if</span> <span>(</span>pner<span>.</span>Status <span>!</span><span>=</span> PromptStatus<span>.</span>OK<span>)</span>
<span>return</span><span>;</span>
Point3d pickedPt <span>=</span> pner<span>.</span>PickedPoint<span>;</span>
ObjectId tableId <span>=</span> ObjectId<span>.</span>Null<span>;</span>
ObjectId<span>[</span><span>]</span> containers <span>=</span> pner<span>.</span>GetContainers<span>(</span><span>)</span><span>;</span>
<span>if</span> <span>(</span>containers<span>.</span>Length <span>></span> <span>0</span><span>)</span> <span>{</span>
tableId <span>=</span> containers<span>[</span><span>0</span><span>]</span><span>;</span>
<span>}</span>
<span>using</span><span>(</span>Transaction tr <span>=</span>
db<span>.</span>TransactionManager<span>.</span>StartTransaction<span>(</span><span>)</span><span>)</span> <span>{</span>
Table table <span>=</span> tr<span>.</span>GetObject<span>(</span>
tableId<span>,</span>
OpenMode<span>.</span>ForWrite
<span>)</span> <span>as</span> Table<span>;</span>
<span>if</span> <span>(</span>table <span>!</span><span>=</span> <span>null</span><span>)</span> <span>{</span>
TableHitTestInfo htinfo <span>=</span> table<span>.</span>HitTest<span>(</span>
pickedPt<span>,</span>
Vector3d<span>.</span>ZAxis
<span>)</span><span>;</span>
ed<span>.</span>WriteMessage<span>(</span>
<span>"</span><span>nRow : {0} - Column : {1}</span><span>"</span><span>,</span>
htinfo<span>.</span>Row<span>,</span>
htinfo<span>.</span>Column
<span>)</span><span>;</span>
<span>//clear any style overrirdes.</span>
table<span>.</span>Cells<span>[</span>htinfo<span>.</span>Row<span>,</span> htinfo<span>.</span>Column<span>]</span><span>.</span>ClearStyleOverrides<span>(</span><span>)</span><span>;</span>
<span>//create a Mtext and pass RTF contents </span>
MText mt <span>=</span> <span>new</span> MText<span>(</span><span>)</span><span>;</span>
mt<span>.</span>SetContentsRtf<span>(</span>@ <span>"</span><span>{pntextf0 1.tab}First Linepar{pntextf0 2.tab}Second Linepar}</span><span>"</span><span>)</span><span>;</span>
<span>//or</span>
<span>//pass contents "1.tFirst Line\P2.tSecond Line\P"</span>
table<span>.</span>Cells<span>[</span>htinfo<span>.</span>Row<span>,</span> htinfo<span>.</span>Column<span>]</span><span>.</span>TextString <span>=</span>
<span>"</span><span>1.tFirst Line\P2.tSecond Line\P</span><span>"</span><span>;</span> <span>//mt.Contents;</span>
<span>}</span>
tr<span>.</span>Commit<span>(</span><span>)</span><span>;</span>
<span>}</span>

Result:

Table_MText


Comments

2 responses to “How To Create MTEXT In a Table Cell”

  1. nice

  2. Thanks

Leave a Reply

Discover more from Autodesk Developer Blog

Subscribe now to keep reading and get access to the full archive.

Continue reading