I am trying to create 3D points in my dgn file's 3D model. This is the code:
var connection = ConsensusConnectionEdit.GetActive();
// Approach 1 - use AlignmentEdit to create a line
// var alignmentEdit = AlignmentEdit.CreateByLinearElement(connection, line, false); //has z coord before call to PersistTransients, becomes zero right after that.
// Approach 2 - use PointEntity2dEdit to create a point
var point = PointEntity2dEdit.CreateByDPoint3d(connection, dPoint3d); //has z coord before call to PersistTransients, becomes zero right after that.
I selected 3d model in my dgn file. As a result, Session.Instance.GetActiveDgnModel() returns a dgn model with is3D set to true. However, connection.GetActiveGeometricModel().DgnModel is the default model with is3d set to false. The alignmentEdit variable has z coordinate set right before call to PersistTransients(), but z coordinate becomes zero right after. This is probably because connection's dgn model is default 2d.
My question is - even though Session's active model is 3D, when I call ConsensusConnectionEdit.GetActive(), i would expect the returned connection to point to this 3D model. Looks like it doesn't. Why? Is this a bug?
I tried using PointEntity2dEdit object as well, no luck - I lose z coordinate. The elements get added to 2D model only.
Is there a workaround or solution for this?
please be aware this is general Developers and Programming forum, where your questions sounds like related to some civil product.
At first, please read and follow general communities best practices, as well as MicroStation Programming forum. After that, I recommend to add mandatory information (product, exact version, used API/language), preferably through standardized subject format. In my opinion necessary is also to move the post to proper forum. If your question is about e.g. OpenRoads Designer, move it to Civil Programming forum.
To move existing discussion, use More > Move tool, available under your original post. Do not ask again, because it leads to duplicated posts.
SM said:I am trying to create 3D points in my dgn file's 3D model.
Do you want to create DGN point element type (line with 0 length) or some civil feature?
SM said:This is the code:
Please, always use tool, when you want to share code snippet (even one line only).
SM said:Is there a workaround or solution for this?
It is not clear what exactly you want to do and in what context: Alignment is expected to be in 2D model, as well as horizontal profile (stored in another 2D model). So why you want to create 3D points?
Bentley Accredited Developer: iTwin Platform - AssociateLabyrinth Technology | dev.notes() | cad.point
Yes, I am using OpenRoadsDesigner (ORD). The code I referenced is using ORD SDK to create 3d points. I tried it with PointEntity2dEdit as well, as shown in my code. Are you saying that ORD doesn't support points with z coordinates? Because I can manually draw points in 3D model in ORD, so I should be able to do that programmatically via SDK as well. But I don't see a way to create PointEntity3d object as there is no PointEntity3dEdit class: