@@ -179,3 +179,38 @@ def named_selection(self) -> GRPCNamedSelectionService:
179179 raise ValueError (f"Unsupported version: { self .version } " )
180180
181181 return self ._named_selection
182+
183+ @property
184+ def measurement_tools (self ) -> GRPCMeasurementToolsService :
185+ """
186+ Get the measurement tools service for the specified version.
187+
188+ Returns
189+ -------
190+ MeasurementToolsServiceBase
191+ The measurement tools service for the specified version.
192+ """
193+ if not self ._measurement_tools :
194+ # Import the appropriate measurement tools service based on the version
195+ from .v0 .measurement_tools import GRPCMeasurementToolsServiceV0
196+ from .v1 .measurement_tools import GRPCMeasurementToolsServiceV1
197+
198+ if self .version == GeometryApiProtos .V0 :
199+ self ._measurement_tools = GRPCMeasurementToolsServiceV0 (self .channel )
200+ elif self .version == GeometryApiProtos .V1 : # pragma: no cover
201+ # V1 is not implemented yet
202+ self ._measurement_tools = GRPCMeasurementToolsServiceV1 (self .channel )
203+ else : # pragma: no cover
204+ # This should never happen as the version is set in the constructor
205+ raise ValueError (f"Unsupported version: { self .version } " )
206+
207+ return self ._measurement_tools
208+
209+ @property
210+ def repair_tools (self ) -> GRPCRepairToolsService :
211+ if not self ._repair_tools :
212+ from .v0 .repair_tools import GRPCRepairToolsServiceV0
213+
214+ # TODO: Add V1 later
215+ self ._repair_tools = GRPCRepairToolsServiceV0 (self .channel )
216+ return self ._repair_tools
0 commit comments