AutoCAD .NET :: Editing Attributes In A Block
Mar 15, 2012
I'm trying to edit the attributes in a titleblock using VB.net. The block name is "Titleblock". It is already inserted into a drawing. My program does not need to insert it. It only needs to find the reference, for all layouts, and update a couple attributes for the titleblock on everylayout. I know some of the basics, but get confused with blocktables, and blocktablerecords.
Here is a piece of code I was experimenting with. With this code, I'm trying to get to the attributes, and read an attribute value for a drawing number. It fails when I try to assign a value to the variable blkreftitle.
Dim
doc AsDocument = Application.DocumentManager.MdiActiveDocument
Using docLoc AsDocumentLock = doc.LockDocument
Dim db AsDatabase = HostApplicationServices.WorkingDatabase
[Code]....
View 2 Replies
ADVERTISEMENT
Jan 23, 2012
From the attached image you can see what I'm talking about.
(left=original, middle=ROTATE, right=PROPERTIES)
When I rotate blocks using ROTATE command everything is fine, but when I rotate blocks using PROPERTIES my attributes get messed.
I need to rotate several blocks at once with PROPERTIES, because I don't have time to rotate each one separately.
The same thing happens when scaling blocks, but this was resolved using the command BSCALE in the command line.
View 5 Replies
View Related
Feb 14, 2013
Is there a way to create a block with attributtes that automatically complete x, y, z, lat, long for the insertion point of the block?
I am trying to complete text in paperspace that will automatically fill in the lat long of a point in model space without using a table. I have tried field insertion with reference to a cogo point, but it doesn't give options for position on a cogo point. If I pick a block with attributes, it will let me pick any attributes, and x,y position for the block.
Cogo points show all the information I need to propagate in the properties....but how do I get that to translate into the text using fields or some other method?
Dell Precision T3600 - Windows 7 64-bit
NVIDIA Quadro 600
Intel(R) Xenon(R) CPU E5-1607 0 @ 3.00GHz 3.00GHz
8 GB ram - Two 1TB raid
View 9 Replies
View Related
Oct 26, 2012
When the block is in a drawing and I click it, it takes me to block editor.
However if I go to it in block editor and test block it allows me to change the attributes.
Why does clicking the block go to block editor and not allow me to change its attributes as it does when I test block.
View 9 Replies
View Related
Oct 31, 2013
I would like to change sub block from a visibility after setting it. Here an example of code to get the right visibility, I don't really know how to update a sub block by name or by handle(seems to change inside dynamic block).
Dim Block As AcadBlock
Dim BlockRef As AcadBlockReference
Dim DynEntBlock As AcadEntity
Dim DynObjRefH As IAcadBlockReference
[Code]........
View 9 Replies
View Related
Apr 8, 2013
I can insert a block with block attributes using the Inter op very easily:
Dim theBlock AsAcadBlockReference
Dim pickScreenVBA = myDoc.Utility.GetPoint(, "insert the hydrant")
theBlock = myDoc.ModelSpace.InsertBlock(pickScreenVBA, "Hydrant", 1.0#, 1.0#, 1.0#, 0)
Dim varAttributes AsObject
varAttributes = theBlock.GetAttributes
varAttributes(0).TextString ="3 Ports"
varAttributes(1).TextString ="Salt water"
Works great, but when I try using the non-inter op, all the example insert new Attributes and not add block with existing attribute (so I end up with duplicate attributes for each block - i.e "Salt water" attribute is added to the block each time I run the code),
Are they any examples that does the same as above using the non-interop code?
View 2 Replies
View Related
Dec 12, 2013
I'm trying to add some attributes to an existing block using the block editor, but after I save and close it I cannot see any 'placeholders' despite adding a default value and the attributes work fine when I double click the block.
I've tried using the ATTSYNC and BATTMAN commands but nothing works and there are no invisibility states applied to either the attribute or block and all layers are switched on.
I just tried making a quick block from scratch and it seems to have the same affect, except the default value will show, but no 'placeholder' shown if left blank.
I swear with previous version I could see the tag when a value hadn't been applied, so is it that the version I now use (2012) does not have this feature or it's disabled?
View 9 Replies
View Related
Sep 19, 2011
I'm trying to chnage the text of the sheet number and total sheet number attributes for each layout in my drawing. I have code that adds and deletes the specified pages, now I need to edit the attributes to reflect the correct page and correct total amount of pages. Here is my code, based on my old VBA version.
I know there is a problem with the line:
For Each item In myBTR.ObjectId
I've used a number of websites and books, but I would really like to find something that teaches about block tables, block table references, block table IDs so I can get a better understanding of breaking stuff down to get the info I need.
Public Sub updatePageNumbers()
Dim myDWG As Autodesk.AutoCAD.ApplicationServices.Document
Dim myDB As Autodesk.AutoCAD.DatabaseServices.Database
Dim myTransManForPageNumbers As Autodesk.AutoCAD.DatabaseServices.TransactionManager
Dim myTransForPageNumbers As Transaction
[Code]....
View 6 Replies
View Related
Feb 3, 2012
When editing block in-place, not onely objects in the block, but also other objects (just drawn normal in modelspace), is affected by the commands.
View 6 Replies
View Related
Jul 29, 2013
There is a way to change the text in a tag to include spaces without getting the error that tags cannot be null. I've forgotten how to do this. I can't find this in my AutoCAD manuals, or on-line.
View 1 Replies
View Related
Dec 13, 2012
using AutoCAD 2009 (vanilla)
I got too smart for myself today in bringing an old drawing up to current standards...Everyone seems to want their block attributes to be zero - I have blocks where the attributes are best when they match the rotations of each blocks.
I have an old drawing that was rotated (as it should be) at approx 2deg.
I used a lisp routine to global edit all the blocks that needed to be at zero. BUT for some reason (and after hundreds of blocks were corrected), I noticed I now have two blocks that should NOT have been in the set have had their attributes rotated to zero....and the attributes should be at the same rotation as their block's rotation.
Because those two blocks have a fixed tic mark, I can click on the mark to see what the block rotation is, then rotate its attribute to that rotation, but I have hundreds of blocks! One-at-a-time sucks....
Any chance there is a GLOBAL way to edit an attribute rotation to match its own block's rotation?
View 2 Replies
View Related
Apr 30, 2013
I was in process of editing a block in "block editor" mode. I saved the dwg and exit instead of saving the block, exit block editor and then exit the dwg. When I opened again the dwg what I see on display is just the block. How to close the block and open the entire dwg?
View 2 Replies
View Related
Aug 31, 2011
I'm editing a title block using the Block Editor. Unfortunatelly after closing the block editor the linse & Polylines reflect the changes apported in nodel space, but the text did not mouve?
View 2 Replies
View Related
Aug 2, 2013
I am designing a solar field and have my solar panels laid out in a grid. I have each panel represented as a block with 4 attributes: Column, Row, Module Type, and Combiner Box. There are ~5,000 panels so it will take forever to modify the attributes of each block individually. Is there a way I can select multiple blocks (an entire column for instance) and set the "Column" attribute for ALL of those blocks to the appropriate value?
My end goal is to be able to export the information in those blocks to excel. So if there is any way to tie 4 pieces of information to an object and export it into excel not using block attributes, that would work for me as well.
I attempted to use Lee Mac's Batch Attribute Editor BAtteV1-4.lsp and it was very close to what I needed. But it will modify the specified attribute of all blocks within a drawing, whereas I only want to modify the attributes of all blocks within a selection.
View 3 Replies
View Related
Oct 10, 2013
We are starting to install AutoCAD 2014 on our machines. On one of our machines, the user can't get double click editing to work on inserts. I can open the drawing on my machine and it works fine. She is using the same profile and workspace and both machines have SP1 installed. Double click editing works for other objects (MLeaders, Text...) but not for inserts or their attributes. The only way she can edit the attribute text is through the property window.
View 9 Replies
View Related
Feb 29, 2012
Function ReadDWG(ByVal DWGName As String)
Dim AcadApp As AcadApplication
Dim AcadDoc As AcadDocument
Dim Extracted_title As String RichTextBox1.AppendText(Path.GetFileName(DWGName)) RibbonLabel1.Text = "Opening AutoCAD"
[Code]...
I am using the above code to read block attributes depending on the name. But now I need to read the active drawing (drawing will be open and should read from the active document). In the above code I have referenced interop.dll. without that can I retrieve the block attributes. How to read the block attributes from the active document.
View 2 Replies
View Related
Aug 7, 2013
Using ACAD2014LT. I want to use the first variable attribute value as a variable in subsequent attributes in the same block. This will be extracted and used for tag references in a PLC program.
Along the line, i know I can change the enclosed character ( ' ), but can I remove it?
View 3 Replies
View Related
May 22, 2013
How Can I Get All Block Attributes and change it
View 9 Replies
View Related
Apr 24, 2013
I have this one file .txt with this features:
Point North East Z Description
1 8618063,68 312415,09 75,87 T1
2 8618138,38 312428,89 70,57 B_RIO SECO
3 8618132,23 312427,75 71,90 ARENAL
4 8618126,23 312426,64 72,50 ARENAL
5 8618112,22 312424,06 73,77 ARENAL
6 8618099,78 312421,76 75,35 ARENAL
7 8618089,51 312419,86 75,84 ARENAL
8 8618132,23 312427,75 71,94 J
9 8618112,23 312424,06 73,88 J
10 8618099,82 312421,78 75,36 ARENAL
11 8618089,48 312419,87 75,85 E_1
And I generated this code for read this file and insert one block with attributes for each line of text…..
If txtPath.Text() = "" Then
MsgBox("Select DB .txt.", MsgBoxStyle.Exclamation)
End If
On Error GoTo ControlErroresBD
Dim AcadDocPt As Document =
[Code] ....
‘To the end of this line I can insert the block,,,,,,, but I don’t know how to write the attributes…… I tried with the next code but it doesn’t work…. My bloque has 3 attributes and every tag named with “PN”, “CD” and “CT”
Dim AcadObj As Entity
For Each acObjId As ObjectId In AcadBlockRef.AttributeCollection
AcadObj = AcadTransPt.GetObject(acObjId, OpenMode.ForWrite)
Dim acAttDef As AttributeDefinition = TryCast(AcadObj, AttributeDefinition)
[Code] .....
View 9 Replies
View Related
Apr 20, 2012
I have used the FDO to connect to my SHP files. I have used one data attribute to get a rotation for my blocks. I have also used a feature Label to display the text I am interested in.
When I save to DWG, the feature labels come in as Text. I would like the text to go to the correct block attribute.
Is there a way to do this? I did not see anything in the Style Editor to use my blocks' attributes, only the geometry.
I am aware of using MAPIMPORT to set attributes from the data, but they do not come in rotated, and I have more conditions on which block to use, not just one field to decide the block name.
View 2 Replies
View Related
May 10, 2011
I have 3 attribute in one block , i made 3 options for visibilty1
so i need in visibilty (1) i can show only the text 11
and i need in visibilty (2) i can show only the text 22
and i need in visibilty (3) i can show only the text 33
View 8 Replies
View Related
Nov 5, 2012
I have a autocad file displaying room layout of a floor. Each room has two blocks. One for displaying the Fixture / Fitment data and second for Room details (Room no, Area).
Is there a way we can merge the two block attributes in a single block with both attributes.
View 1 Replies
View Related
Sep 27, 2011
I need reading the values from an Mleader object that contains a block. I can get attributes from normal blocks with no problem, but I am struggling with this.
I can get all the way up to casting the attributes, but when I try getting the Attribute Reference, the code crashes. How do I get the AttributeReference from the AttributeDefinition? As it is now, if I declare the AttributeDefinition, the values return as nothing.
Dim acDoc As Document = Application.DocumentManager.MdiActiveDocument Dim acCurDb As Database = acDoc.Database Dim acEd As Editor = DocumentManager.MdiActiveDocument.Editor '' Start a transaction Using acTrans As Transaction = acCurDb.TransactionManager.StartTransaction() Try Dim acBt As BlockTable =
[code].........
View 2 Replies
View Related
Aug 11, 2011
I have this code to insert a block (the block has Attirbutes) it bring in the block but strips the attributes. Here is the C#
[CommandMethod("PUTBLK")] static public void test() { string comp = "C:\test.dwg"; Document doc = acadApp.DocumentManager.MdiActiveDocument; //Editor ed = doc.Editor; Transaction tr =
[Code].....
View 3 Replies
View Related
Dec 3, 2011
I wish to insert a title sheet dwg, which has attribute definitions, as a block in another dwg. I can insert it, and if I explode it, the attribute definitions appear. Otherwise they are not added to the database.
I am using standard code, which I can attach. it starts
Dim btr As BlockTableRecord
..
Dim blk As BlockReference = New BlockReference(ip, blkid)
' insert block
..
btr.AppendEntity(blk)
If btr.HasAttributeDefinitions Then
ForEach attID As ObjectId In btr
etc.
but btr.HasAttributeDefinitions = False
View 7 Replies
View Related
Oct 19, 2011
I'm trying to edit attributes of a block but is giving error.
private void ChangingAttibutes1(ObjectId[] objectIdList) { for (int i = 0; i < objectIdList.Length; i++) { ObjectId objectId = objectIdList[i]; BlockReference blockReference =
[Code].....
View 4 Replies
View Related
Jun 4, 2013
How can i scale a block have some attributes , with known factor ?
View 3 Replies
View Related
Feb 9, 2012
I was able to take the attributes from block references in independent .dwg files and and bring them across to a new drawing via import. At this point, there are a few attributes that I would like to be able to add to each block reference once it's created. I've designed a GUI where users can input data, and this input (string data) I'd like to add to the block reference as a tag and a corresponding value.
The basics I understand are to create an attribute reference object. Set the properties / parameters for this object (tag and value (originally as a string) and them append the attribute to the block reference. What i don't know how to do is to actually create the new tags and values in the code so that they can later be appended. I'm in C# and so far i've got this:
foreach (ObjectId id in blockBtr)
{
if (id.ObjectClass == RXClass.GetClass(typeof(AttributeDefinition)))
{
[Code]....
View 6 Replies
View Related
Jan 31, 2012
I have a client border that is attributed, however, when I open the attribute editor, some lines appear in red, while others are black. Turns out the font "FRACTION.SHX" is not on my system. So, I reset one of the problem attributes to a ROMANS. Saved, closed and reopened the drawing and still, the attribute editor displays them in red lettering, as if there is still something not right.
I've attached it. Note that drawing title texts seem fine, but "DRAWN DATE" and a few others are the ones showing up in red..
View 3 Replies
View Related
Aug 21, 2013
I'm trying to loop through all the blocks on a drawing and if the block contains a group of tagstrings (B,C,D and H) I want to then extract the textstring from all 4 attributes and place them in a ListView. I got it to work but it is not consistant. Sometimes it doesnt get all of the attributes. Basically just want to grab all of the blocks that the 4 attribute tagstrings (B,C,D and H) and extract their textstrings to a ListView. Here is the code I have so far.
For Each objEntity In objModelSpace
With objEntity
If StrComp(.EntityName, "AcDbBlockReference", 1) = 0 Then
If .HasAttributes Then
TableData = .GetAttributes
[Code] .........
View 6 Replies
View Related
Apr 21, 2013
I created one code to insert one Block and this block has 3 attributes
Dim AcadDocPt AsDocument = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument
Dim AcadCurrentDBPt AsDatabase = AcadDocPt.Database
[Code].....
View 1 Replies
View Related