IBufferConstruction in PRO Sdk

64
3
05-07-2018 01:20 PM
Highlighted
by
Occasional Contributor II

I am wondering if there is an equivalent to IBufferConstruction in the PRO SDK.  It is necessary that for a given line for one of my tools, that the user be allowed to buffer left/right/full and to have round/flat endpoints.  I am essentially getting drawing line from user and then prompting them with how they want it buffered?

Does this exist in PRO like in ArcObjects Below? 

//Setup the Buffer Constructor and its Properties
            IBufferConstruction BufferConstructor = new BufferConstruction();
            try
            {
                //Buffer Properties
                IBufferConstructionProperties bcProps = BufferConstructor as IBufferConstructionProperties2;
                bcProps.EndOption = esriBufferConstructionEndEnum.esriBufferRound;
                bcProps.SideOption = esriBufferConstructionSideEnum.esriBufferFull;

                if (string.Equals(endType, "Square", StringComparison.OrdinalIgnoreCase))
                {
                    bcProps.EndOption = esriBufferConstructionEndEnum.esriBufferFlat;
                }

                if (string.Equals(sideType, "1-Sided", StringComparison.OrdinalIgnoreCase))
                {
                    bcProps.SideOption = esriBufferConstructionSideEnum.esriBufferRight;
                    if (string.Equals(directionType, "Left", StringComparison.OrdinalIgnoreCase))
                    {
                        bcProps.SideOption = esriBufferConstructionSideEnum.esriBufferLeft;
                    }
                }

                //Type factoryType = Type.GetTypeFromProgID("esriGeometry.SpatialReferenceEnvironment");
                //System.Object obj = Activator.CreateInstance(factoryType);
                //ISpatialReferenceFactory3 spatialReferenceFactory = obj as ISpatialReferenceFactory3;
                //IUnit meterUnit = spatialReferenceFactory.CreateUnit((int)esriSRUnitType.esriSRUnit_Meter);
                //bcProps.Unit = meterUnit;
            }
Reply
0 Kudos
3 Replies
Highlighted
New Contributor III

Hi,

In the upcoming release, ArcGIS Pro 2.2, the SDK will have a method in the GeometryEngine class that will accomplish what you want to do. It is called SideBuffer, and you will be able to specify round or flat endpoints. 

Thank you for your interest,

Annette 

Reply
0 Kudos
Highlighted
by
Occasional Contributor II

Is this the release that is not scheduled until August?

In the meantime, could a solution be to use the offset line geometry engine tool and create a line left/right/both, then somehow create a polygon by filling in the distance between the two lines

Reply
0 Kudos
Highlighted
New Contributor III

ArcGIS Pro 2.2 is scheduled to be released in June.

Your workaround sounds good. 

Reply
0 Kudos