AutoCAD .NET :: How To Locate Text Near Block Reference
May 24, 2012
I have tried to use intersectwith to locate text (MText or DBText) near a block reference. Some times it works and some times it does not. The hard part for me is understanding why it occasionally works when most examples are just duplicates with modified text and attributes.
My block reference has 4 attributes to the left (Right Justified) of a circle and 2 attributes inside the circle. The text objects are used by some CAD operators instead of the upper 2 lines of attributtes. (Guess they dont know how to modify attributes) I want to locate these texts and insert text into the corresponding attribute.
Block Reference:
Att 1 |'''''''| <-- CAD User will insert a txt over Att 1 and Att 2,
Att 2 | | <-- both attributes are usally left blank or contain a space
Att 3 | |
Att 4 |.....|
my colleague that is on holidays right now sent some civil 3d drawings that contain data references to another office and they are having broken reference issues with the surfaces. I opened the drawing in our office and the surfaces are there and showing the data ref symbols in prospector but when i look through the data shortcuts folder below in prospector the surfaces are not there.
how do i locate the .xml files or if they have been deleted how do these surfaces appear in my drawing.
In most cases this works well. However I found a case that it not work as well. When I try to change the definition from a new block that I have created in my test DWG, it disappears from the model.
I am attempting to create my first Title Block with Attributes. I came across this online demo that suggests navigating to the "Projects" Tab - then selectign the "Title Block Setup" tab. I am using CAD 2012 and spent the last hour searching for this command. It does not appear on my navigation or tool palletes. URL....
I have a block: “Block_A”. I am trying to determine if a block reference of the block exist.
Currently I would iterate every block Reference in the Block Table, and then dig deep into each block ref . . . . .
I was wondering if I could just take “Block_A” and see if it has reference and where the references are. Perhaps this is just wishful thinking but I was hoping for a faster way to obtain the references then to iterate thousands of blocks in each table record.
Drawing contains a block with "BlkName". I want to insert blockreferences of this existing block using .Net. All shows how to insert a new block and then use the BlockID returned by the insert function. In my case I only have the block name and there is no Block id. How to get it or how to create a block reference of an existing block?
I have a weird problem with exploding block reference with vb.net as follows.
When I use BR.explode(DBObjectCollection), and append the entities in the object collection to model space,
the 3d Polylines inside the block reference do not get appended and I do not get any kind of error. The reason for this eludes me as of yet. (remember, simple polylines and lines and other objects do get appended to model space)
When I use BR.explodetoOwnerSpace(), the block reference explodes as it normally is expected to, but then I have no way to collect the objects from the exploded BR.
I'm working with two different drawings to import Layers for Lot Grading and when I'm importing the Block Reference from the origin file, it's setup as Linescale 0.5, but when I import into my regular basemap, which is setup for Linescale 1, the text size is double what it should be.
I'm trying to write a vb script to extract information from the CAD drawing. While testing, i found that for some drawing blocks, the corresponding AcadBlockReference Rotation returns 1.57, but when i look at the actual drawing, block properties, the rotation is 0.
i need to use something with similar effect to Editor's method SelectCrossingWindow, but i need it to select object in Block Reference. How can i do that?
I have a block reference in a dwg that is a like a form, for example:
Written By: Diogo Author: Diogo
Date: 13-07-2012 State: Check-in
In autocad this is a block, and on the attributes of the block reference I only can edit State and Author, and i would like to get all values. Because i want to fill those values of Written By, Author, Date and State by code. I can reach the attribute collection of the block but i only can see the State and Author.
I have a drawing with many block references on it and they have some attributes.
I know how to find the block reference witch the attribute value, and even change it but I don't know how to select it once I have the object ID of the block.
How can I do the selection without asking the user to select it?
I wonder if this can be done. i have a number of blocks which have labels to them i.e. JW1, JW2, JW3 etc. which corresponds to the block name. Is it possible to have the label automatically referenced to the block name so if i change the block name to JW10 the label within the block changes to JW10 as well.
I get a block reference (has attribute) from other drawing as code follow:
Public Sub GetBlock_Info() Dim blockName As String = "test" Try Dim doc As Document = Application.DocumentManager.MdiActiveDocument Dim doclock As DocumentLock = doc.LockDocument() Dim ed As Editor = doc.Editor Dim ofd As New OpenFileDialog("Select Drawing", Nothing, "dwg; dwt", "ATS detai drawing", Autodesk.AutoCAD.Windows.OpenFileDialog.OpenFileDialogFlags.DoNotTransferRemoteFiles) Dim dr As [code]..........
I have a nested entity block reference. In this entity I have three blocks. if I change any of the block reference attribute definition in the nested block reference then it is changing the original block itself.
Actually I am getting the handle of the selected block reference in the nested Entity. and change the attribute reference later. but it is making change in the block itself and other block reference too.
Here is my
static public void CONTACTS() { Document doc = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument; Editor ed = doc.Editor; string contactName = string.Empty;//to hold contact name, from xdata [code].......
I have text in my title block that references part properties. If I have several different part and assembly base views on a sheet, how do I control which one the title block references? It defaults to the first one that was placed. I am using 2011 Pro.
Is is possible to get the block handle from an attribute reference? I get the attribute reference from a previously stored attribute collection. I did try attref.BlockId.Handle.Value.ToString(), but it gives a different value, not the block's id.
I need to select a block in AutoCAD, and move it up or down vertically. I can get to the point where I have the user select a particular block, but after that, how do I get a reference to the block selected so I can move it up or down?
Is there a possibility to use "Dynamic Blocks" as an "External Reference" having the ability to use their features at the same time?
The thing is I have dwg1 and dwg2 files and in them I use "Dynamic Block1". Whenever I update "Dynamic Block1" in one of the dwg files I have to go to "design center" and update the "Dynamic Block1" in other dwg file.
AutoDesk 2014 . I am currently trying to design in iphone case. So I downloaded a replica iPhone from grab cad:
[URL]
I imported it and formed a solid around it, now I am trying to subtract the phone from the solid so it perfectly fits within the case. It will not let me subtract it though because the phone is a reference block and the square around it is a solid.
I create a set of points in a drawing and create each point as a block reference containing the point, text and probably something else. Also I would like to use different symbols for points and each of the symbols is defined as a block definition, and for each point I create a block reference according to the symbol type. The question is if is there any way to "combine" block definitions/references? I mean, I have common block definition for all points, whis defines somethin common for all of them. Also I have different symbols for each type of points and each symbol is defined separately as a block. But when a final point is created (containing common definitions and type-dependent symbol) I want to have it as a single block.
I'm a newbie in dotnet and want to now if is possible to iterate through items of a block reference.
My problem is the following : I explode a block reference in dotnet (it works well) and I want to change the items layer that compose the bloc reference. It's the reason why i need to browse items of this block.
I'm trying to use a Selection Filter on Block Reference XData value. But I get no hits, it works fine with Lines and Polylines that has the same kind of XData.
Is it a bug or do I have to define my Selection Filter differently when working with Block Reference?
Here is a part of the code :
TypedValue[] flt = new TypedValue[] { new TypedValue(-4, " new TypedValue(-4, " new TypedValue(8, "POLYLINE_LAYER"), new TypedValue(1001, "Object_Id"), new TypedValue(1000, "166448"), new TypedValue(-4, "AND>"), [code].......
I have a small vba sub wich changes the color and layer of all entities inside a block. It seems to work pretty well for the majority of blocks, but then if I try that on a dynamic block, the definition is correctly altered, but the references aren't updated...
I know for a fact that the definition has been correctly modified because if I type bedit, I can see the definition is modified. Then, in the block editor, if I save the block, the references are correctly updated.
How to force references to update after I made the modifications inside the definition ?
I searched for methods within the VBA Reference and I tried blockRef.Update but it doesn't seem to have any effect.
I'm using Architecture 2011, but the problem is pretty generic.
I am working with a very complex vendor drawing and using it as an xref to my working drawing. I need to be able to freeze parts of the xref and change colors (for plotting purposes) of other parts. Under ideal circumstance this would require simple layer manipulation.
My problem is that a large percentage of the vendor drawing is made up of blocks. There are nearly 1000 different blocks. Most of these blocks were created using layers other than 0 - quite often more than one layer is used. Sometimes the block is inserted on a layer that was used in it's creation, sometimes not. The only way I can omit one of these blocks from my drawing is to figure out what layer was used in it's creation and freeze that layer. You can see how this could be a pretty tedious process.
My limited CAD knowledge only gives me: edit all 1000 blocks, changing them to layer 0